Skip to content

AlgoriThai07/the-cutting-room

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

image image

SPARKHACKS 2026

PROJECT: THE CUTTING ROOM

WEEKLY PERSONALIZED PORTFOLIO UPLOAD where random moments strike into untold narrative masterpieces ...

Track 02: Narrative & Interactive Experience

A reflective storytelling system that converts weekly user activity into structured narrative insight using embeddings, similarity matching, and generative AI.

One Sentence Pitch

The Cutting Room transforms weekly digital activity into a structured narrative using embeddings and generative AI, helping users understand the story hidden inside their everyday behavior.

Operation logic

image image
Click to open demo screenshots
Login
image
Navigation Bar
image
Pic Upload Pipeline
image
Add Pic & Text Pop up
image
Finishing Pipeline - Reflection & Generative Narrative
image
Top 4 Similar Narratives
image
Friend List
image
Account Owner Profile Layout
image
Friend/Other Users' Profile Layout
image
Track Detailed View Layout
image

Team

Viet Thai Nguyen - vnguy87@uic.edu
Han Dang - ldang7@uic.edu
Minh Khoa Cao - mcao@uic.edu
Hoang Minh Nguyen - mngu@uic.edu

Tech Stack

react, express.js, node.js, venv, python, python-package-index, mongodb, figma, canva, aedify.ai

Live Demo Instruction

Deployed on Aedify.ai

πŸ”— [Insert Aedify deployment link here]

To run locally:

git clone <repo-link>
cd server && npm install && npm run dev
cd ../frontend && npm install && npm run dev
source venv/bin/activate && cd server/services/ml && python3 server.py

Problem

Modern social platforms document events but do not interpret patterns.

Users post isolated content:

  • Photos
  • Short text
  • Captions

But platforms rarely answer:

  • What themes defined your week?
  • Did your mood shift?
  • How does your experience compare to others?

We wanted to build a system that transforms small moments into structured narrative reflection.


Solution

The Cutting Room introduces Weekly Tracks. Instead of a feed, users build a connected chain of posts called a track.

Each post (Node) contains:

  • One photo OR one text entry
  • Optional caption
  • AI-generated one-sentence recap

Users are limited to:

  • 3 posts per day
  • 20 friends max

This enforces intentional interaction and reduces performance-driven behavior

At the end of each week, the system generates:

  1. A Personal Story (5–8 sentence behavioral summary)
  2. A Community Reflection (comparative trend analysis)

The result is an interactive narrative shaped by user behavior.


Key Features

1. Intentional Posting Constraints

  • 3 posts per day
  • 20 friend limit
  • Weekly reset cycle

These constraints improve narrative pacing and reduce content overload.


2. Node Linking via Embeddings

Each upload generates a semantic embedding:

node β†’ embedding β†’ nearest neighbors (kNN)

The system links:

  • Current node β†’ previous node (personal continuity)
  • Current node β†’ semantically similar posts (community parallel)

This creates a structured narrative graph rather than a flat feed.


3. AI-Generated Recap Per Node

Each node receives a reflective one-sentence recap generated from:

  • Node content
  • Previous-node similarity distance
  • Neighbor context

This creates narrative continuity between moments.


4. Weekly Narrative Engine

Weekly batch process:

1. Collect all nodes in track
2. Order chronologically
3. Cluster embeddings
4. Extract recurring motifs
5. Compare to global embedding clusters
6. Generate:

   Personal story
   Community reflection

Narrative is generated from structural patterns β€” not just summaries.


Technical Implementation

Frontend

  • React (Vite)
  • TailwindCSS
  • Framer Motion (node linking animation)
  • Zustand / Redux Toolkit
  • React Query

Responsibilities:

  • Upload flow
  • Track visualization
  • Friend visibility controls
  • Story display

Backend

  • Node.js
  • Express
  • Google OAuth 2.0
  • REST architecture

Services:

  • Node creation
  • Track management
  • Async AI job scheduling
  • Permission management

Database

  • MongoDB Atlas

Stores:

  • Users
  • Nodes (with embedding vectors)
  • Tracks (weekly narrative state)

Storage

  • AWS S3 or Cloudflare R2 for media
  • Database stores URL references + embeddings

AI Model Service (External Worker)

Separate Python FastAPI service handles:

  • Embedding generation
  • Cosine similarity matching
  • kNN neighbor selection
  • LLM recap generation
  • Weekly narrative generation

Architecture:

React Client
   ↓
Express API (Hosted on Aedify.ai)
   ↓
Model Service (Python / FastAPI)
   ↓
MongoDB Update

This separation improves modularity and scalability.


Deployment

The backend API is deployed on Aedify.ai for scalable hosting and rapid hackathon deployment.


Challenges

  1. Balancing AI ambition with hackathon time constraints
  2. Ensuring embedding consistency between text and image inputs
  3. Designing constraints (3/day, 20 friends) that improved narrative quality
  4. Coordinating frontend, backend, and model service asynchronously

We prioritized stable end-to-end functionality over experimental features.


Innovation

Unlike journaling apps or social feeds, our system:

  • Uses embeddings to structure narrative relationships
  • Generates stories from behavioral patterns
  • Connects personal activity with anonymous community parallels
  • Applies intentional design constraints to shape user experience

We are not generating stories from single posts. We are generating stories from structural change over time.


Impact

This project explores:

  Reflective digital storytelling
  AI-assisted behavioral insight
  Reduced-performance social interaction
  Intentional posting design

Potential use cases:

  Student reflection
  Creative journaling
  Mental pattern awareness
  Weekly behavioral insight tracking

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.


Future Improvements

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors