Inspiration

Most social platforms document moments but don't interpret patterns...

We noticed that while people constantly elaborate their photos and thoughts online, very few tools help them to understand what those posts collectively say about their behavior, mood shifts or recurring themes...

As group of CS students navigating fast-paced weeks without noticing our emotional pattern or why something happens in certain way in daily lives, we wanted to explore a simple question:

What if your weekly digital activity could be transformed into a structured story about you, your identity?

This Cutting Room platform was built to turn everyday fragments of users into reflective narrative insights, that they could pin on their digital walls, share with their friends or just reflect deeply on. Our embedding models and AI support would surprise users by generating a collective, authentic story based on 10 photos you uploaded onto the Cutting Studio.

What it does

The Cutting Room converts weekly user posts into structured narrative tracks where users can:

  • Upload up to 3 posts per day (photo and/or caption text)
  • Add optional captions
  • Connect with up to 20 friends. Each node becomes a "node" in a weekly track.

For every node, they system:

  • Generates an embedding
  • Links it to similar posts
  • Creates a one-sentence AI recap

So, at the end of the week, users are done with a track and the system generates: 1) A Personalized Story (5-8 sentences behavioral summary) 2) A Community Reflection (how your week compares to others) Instead of a feed, users get a narrative.

How we built it

Frontend:

React (Vite)
TailwindCSS
Framer Motion for animated node linking
Zustand / Redux Toolkit
React Query for async state

Backend:

Node.js
Express
Google OAuth 2.0
REST API architecture

Database & Storage:

MongoDB Atlas
AWS S3 / Cloudflare R2 for image storage

AI Pipeline:

Separate Python FastAPI worker service
Embedding generation for text and images
Cosine similarity + kNN neighbor matching
LLM-based recap generation
Weekly narrative synthesis

Architecture:

React Client
↓
Express API (hosted on Aedify.ai)
↓
AI Model Service
↓
MongoDB Update

We modularized AI processing to keep the system scalable and clean ~~

Challenges we ran into

  • Balancing ambition with hackathon time constraints
  • Ensuring embedding consistency between text and image content
  • Coordinating asynchronous communication between frontend, backend, AI services and getting used to Aedify.AI cloud deployment services partaking in their ongoing challenge.
  • Designing constraints (3 posts/day, 20 friends) that actually improved the narrative instead of limiting users

Accomplishments that we're proud of

This project explores: Reflective digital storytelling, AI-assisted behavioral insight, Reduced-performance social interaction, Intentional posting design.... With Potential use cases: Student reflection, Creative journaling, Mental pattern awareness, Weekly behavioral insight tracking! Within such a short time in SparkHacks this year, we are extremely delightful to get this project done and delivered to the public, hopefully will give some interesting insights about utilizing a platform to find out more interesting patterns about yourself, your identity with your Generative AI companion giving deep, thoughtful narrative that are profound to read!

What we learned

Technically

Narrative can emerge from embedding structure; Modular AI services improve system reliability.

Interpersonally

Through out this experience, each team member took delight in acquiring the ability to adapt and improvise, even in the face of limited resources, limited time constraints in a Hackathon context. We learnt how to collaborate effectively with each other in which each member know how to maximize given time and effectively apply our strengths towards the common final goal.

What's next for The Cutting Room

Monthly and semester-level narrative arcs Mood trajectory visualization More advanced clustering (hierarchical / dynamic K) Personalized long-term trend detection

Share this project:

Updates