Skip to content

Latest commit

 

History

History
173 lines (109 loc) · 3.56 KB

ProjStruct.md

File metadata and controls

173 lines (109 loc) · 3.56 KB

1. How it should look (visual language)

Overall scene

  • A dark-space canvas (black / deep blue)
  • Thousands of glowing nodes floating in 3-D
  • Smooth camera movement (orbit, pan, zoom)
  • Subtle motion (slow drift, gravity pull)

Visual encoding

  • Videos → small glowing spheres
  • Channels → medium nodes with soft halo
  • Playlists → large, heavy nodes (gravity centers)
  • Searches → translucent, fading nodes

Color

  • Color = content cluster (music, tech, comedy, misc)
  • Brightness = engagement (repeat watch / playlisted)
  • Edge glow = strength of relationship

When zoomed out → clusters + structure When zoomed in → titles, thumbnails, metadata


2. How it should work (interaction model)

Navigation

  • Mouse drag → rotate universe
  • Scroll → zoom (macro → micro)
  • Right-click / gesture → re-center on node

Click behavior

Click a video

  • Side panel opens:

    • Title, channel, watch time
    • When you watched it
    • Connected nodes highlighted

Click a playlist

  • It becomes a gravity well
  • Its videos tighten around it
  • Other content slightly pushed away

Click a channel

  • Shows its timeline arc
  • Early vs recent content separates in space

Modes (same data, different layouts)

  • Time Mode (default): X-axis = time
  • Semantic Mode: layout by similarity
  • Intent Mode: animate search → watch → playlist flows

3. Core spatial logic (important)

Axes meaning

  • X-axis → Time (linear or spiral)

  • Y-axis → Content similarity

  • Z-axis → Intent / engagement

    • searched + playlisted = high
    • autoplay = low

This makes every movement interpretable, not random.


4. What the graph is actually showing

Nodes

  • Videos (from watch history)
  • Channels (from watch + subscriptions)
  • Playlists (explicit intent)
  • Searches (raw curiosity)

Edges

  • Watched-after (session edges)
  • Same playlist
  • Same channel
  • Search → watch
  • Close in time

Edges are weighted and fade when weak.


5. Where ML / DL fits (only where it adds value)

Use ML for:

  • Embeddings: video titles + channels → similarity
  • Clustering: emergent interests (not YouTube genres)
  • Session detection: meaningful watch chunks

Do NOT use ML for:

  • Recommendations
  • Prediction gimmicks
  • “Next video” features

This keeps the project analytical and reflective, not commercial.


6. Tech stack (conceptual, no code)

Frontend

  • Three.js / WebGL → 3-D rendering
  • Force-directed physics → layout + gravity
  • React → UI panels & controls
  • GPU instancing → performance for 30k+ nodes

Data & ML

  • Python for preprocessing
  • Sentence embeddings for titles
  • Graph construction offline
  • Export graph as optimized JSON / binary

Performance principles

  • Progressive loading
  • Level-of-detail (LOD)
  • Edge thinning when zoomed out

7. What the user learns by exploring

Without charts or stats, they discover:

  • Core habits vs passing interests
  • When playlists reshaped behavior
  • Which searches turned into routines
  • How attention shifted over months

This is self-reflection through structure, not analytics.


8. Final framing (important)

You are not building:

a YouTube analytics tool

You are building:

a 3-D cognitive map of personal attention over time

That framing is what makes this project strong, memorable, and future-proof.

If you want next:

  • MVP feature cutoff
  • Visual hierarchy mock (verbal)
  • Or how to present this as a portfolio / research artifact