π Protected via Cloudflare Access
Daily Video Series β Concept Doc
Format
YouTube Shorts (vertical 9:16, 30-90 seconds)
- Primary: YouTube Shorts on @justinvinai
- Cross-post: TikTok, Instagram Reels, X
- Why Shorts: algorithm-friendly, low production bar, high discoverability, fits procedural content perfectly
Content Pillars (Rotating)
All procedurally generated, all watchable, all satisfying:
1. π Marble Races (already built)
- 100 country-flag marbles, elimination physics courses
- Variation levers: course layout (seed), number of stages, terrain type
- Existing:
render_v6.pyβ parameterize with random seed for new course daily - Hook: "Which country wins today?"
2. πΊοΈ Territory Capture (already built)
- Game of Life style factions competing for territory
- Variation levers: faction count, grid size, starting positions, rule tweaks
- Existing:
render_territory_v2.py - Hook: "Who conquers the board?"
3. π€ Word Reveal (already built)
- GoL cells converging to spell a word/name
- Variation levers: different words, color schemes, grid density
- Hook: Daily word reveal (trending topics, viewer suggestions)
4. π Tournament Brackets (NEW β easy to build)
- 32/64 entries, head-to-head sim battles
- Each matchup is a mini marble race or territory battle
- Hook: "Who wins the tournament?"
5. π Fluid/Particle Sims (NEW β stretch goal)
- Satisfying fluid dynamics, sand simulation, particle collisions
- Pure visual ASMR content
Production Pipeline
Fully Automated Daily Flow
[Cron: 2 AM PDT] β Generate β Render β Compose β Upload β Cross-post
- Generate β Pick content type (rotating schedule), random parameters
- Render β Python renderers produce frames β ffmpeg composites
- Audio β Pre-generated lo-fi library (Waymo-style ambient)
- Compose β ffmpeg merges video + audio, title card + end card
- Upload β
publish_youtube.shvia YouTube Data API - Cross-post β TikTok/IG APIs (future)
Automated vs Creative
| Component | Automated | Creative Input |
|---|---|---|
| Course/grid layout | β Random seed | β |
| Physics simulation | β Parameterized | β |
| Audio | β Pre-generated library | One-time curation |
| Title/description | β Template-based | β |
| Upload + publish | β API pipeline | β |
| New content types | β | Monthly |
| Thumbnail | β οΈ Auto-extract key frame | Optional polish |
Key Principle: Seed-Based Reproducibility
Every video = one seed number. Same seed = same video. Enables reruns, "viewer picks the seed", easy debugging.
Keeping It Fresh
- Rotate types β Mon=marble, Tue=territory, Wed=word, Thu=tournament, Fri=wildcard
- Parameterize everything β same renderer, infinite variations via seeds
- Monthly new type β one new simulation type per month
- Viewer interaction β "Pick tomorrow's seed", country polls
- Pre-generated audio library β 20-30 tracks, rotate randomly
Vertical Format Adaptation
Current renderers output landscape. Need:
- 9:16 output mode (1080x1920) per renderer
- Camera/viewport adjustment for vertical framing
- Title overlay at top, standings at bottom
First Episode Plan
- Marble race renderer (most polished, V6) β add vertical mode
- Generate Episode 1 with a specific seed
- Title card: "Day 1 β π 100 Countries Race"
- Layer lo-fi audio
- Upload to @justinvinai as a Short
Estimate to MVP
- Vertical mode for marble renderer: 2-3h
- Title card + end card overlay: 1-2h
- Audio library (pre-generate 10 tracks): 1h
- Daily orchestrator script: 2-3h
- First episode render + upload: 30min
- Cron for daily automation: 30min
- Total: ~1 day
Open Questions
- Series name / branding?
- Schedule preference (daily rotation vs random)?
- Start with Shorts only, or also longer-form?
- Cross-posting priority (TikTok, IG, X)?
- Viewer interaction features β now or later?