# Immersive AI Time Machine — Hackathon-Aligned Plan This document filters the [full immersive experience research](immersive_experience_research.md) through the lens of the **Build Small Hackathon** constraints and judging criteria, identifying what to build, what to skip, and what earns bonus points. --- ## Hackathon Constraints Summary | Constraint | Requirement | Impact on Plan | |------------|-------------|----------------| | **Small models** | ≤ 32B parameters **per model** | ✅ No blocker. Image gen models (Flux ~12B, SDXL ~6.6B) are well under. LLM (Qwen3-8B), STT (Nemotron 0.6B), TTS (Chatterbox) all individually under 32B | | **Must be Gradio** | App must be a Gradio application | ⚠️ **Cannot switch to a custom frontend.** Must work within Gradio's `gr.HTML()`, `gr.Image()`, `gr.Audio()` injection approach. This limits Tier 2/3 complexity | | **Hugging Face Space** | Must be deployable as an HF Space | ✅ Already compatible. Need to ensure any new assets (ambient audio, GSAP CDN) work in HF Space environment | | **Working product** | Functional, polished, usable by non-technical users | ✅ Focus on reliable, delightful experience over bleeding-edge tech | --- ## Track Alignment: **Track 2 — An Adventure in Thousand Token Wood** ⭐ The AI Time Machine is a natural fit for Track 2. Here's how each judging criterion maps: ### Delight ✅ > *"Genuinely fun, memorable experiences, worth sharing"* | Criterion | How We Score | What to Build | |-----------|-------------|---------------| | Genuinely fun | Transporting to another era and talking to someone from that time is inherently fun | AI-generated scene + character portrait make it *visually* fun, not just text-fun | | Memorable | The "Launch" moment — screen transforms from cockpit to destination — is the memory | Cinematic fade-in transition, ambient sounds starting, character appearing | | Worth sharing | "Look at this person I met in 1920s jazz-age Harlem" + screenshot/souvenir | The generated scene + portrait + souvenir are inherently shareable | ### AI Is Essential ✅ > *"Require AI to function, AI as core mechanic, not bolted on"* | AI Component | Role | Essential? | |-------------|------|-----------| | LLM (Qwen3-8B) | Generates destinations, personas, conversations, souvenirs | ✅ Core — the entire experience is AI-generated | | TTS (Chatterbox) | Character speaks with a unique voice | ✅ Core — voice is how you "meet" the person | | STT (Nemotron) | You speak to the character naturally | ✅ Core — enables voice conversation | | **Image Gen (Flux/Imagen)** | Generates scene + character portrait | ✅ Core — **this is the new "wow" layer** that makes AI create the entire world, not just the text | > [!TIP] > Adding AI-generated visuals actually **strengthens the AI-essential score** — now AI creates the *entire sensory experience*: the world you see, the person you see, the voice you hear, and the conversation you have. Every sense is AI-generated. ### Originality ✅ > *"Unusual ideas, novel interactions, avoid common chatbot wrappers"* | What Makes It Original | Why | |----------------------|-----| | Time travel as interaction paradigm | Not a chatbot — it's a **portal** to another era | | Ordinary people, not famous figures | You don't talk to "Einstein" — you talk to a baker in 1920s Paris | | Multi-modal AI synthesis | Scene + portrait + voice + conversation all generated together from one destination | | Souvenir system | You bring back an artifact from your trip — a tangible memento of an AI experience | ### Gradio App Polish ✅ > *"Feel complete, thoughtful UX, cohesive experience"* This is where the immersive upgrades pay off most for judging: | Current State | After Tier 1 | Judge Impact | |---------------|-------------|-------------| | Text-only destination description | Full-screen AI-generated scene background | Night and day difference | | No character visual | AI-generated character portrait in aperture | "You're actually meeting someone" | | Silent between voice clips | Ambient soundscape matching the era | Cohesive world-building | | Standard Gradio form layout | Steampunk cockpit with particles, film grain, glow effects | **Off-Brand bonus badge** | --- ## Bonus Merit Badges — What We Can Earn ### ✅ Off-Brand (Custom UI) — **Already Partially Earned, Tier 1 Maxes It Out** > *"Go beyond default Gradio styling. Custom layouts, advanced theming, branded UI systems, rich interaction patterns."* We already have custom CSS (steampunk cockpit, brass theme, custom fonts). Tier 1 additions (scene backgrounds, particles, film grain, cinematic transitions) would make this an **exceptional** Off-Brand submission. ### ✅ Sharing Is Caring — **Already Earned** > *"Publish and share agent traces."* The app already has `JsonlTraceSink` that records all events. Just need to expose/publish the traces. ### ✅ Field Notes — **Easy to Earn** > *"Document discoveries, experiments, lessons learned."* This research document and the implementation decisions are themselves field notes. Write up a blog-style doc about the build process. ### ❌ Off the Grid — **Cannot Earn (We Use Cloud APIs)** Requires no cloud AI APIs. We use Together AI for LLM and Modal for STT/TTS. ### ❓ Well-Tuned — **Possible But Not Planned** Would require publishing a fine-tuned model on HF. Not in scope for immersive upgrades. ### ❓ Llama Champion — **Not Currently Applicable** Would require switching to llama.cpp runtime. Not relevant to visual immersion work. --- ## What to Build (Hackathon-Optimized) ### ✅ BUILD — Tier 1 Features (All Hackathon-Compatible) Everything in Tier 1 works within Gradio and strengthens hackathon scores: | Feature | Hackathon Value | Implementation Constraint | |---------|----------------|--------------------------| | **AI scene background** (Flux via Together AI) | Massive visual wow, strengthens AI-essential + delight | Use `gr.Image()` or base64 in `gr.HTML()`. Per-model ≤32B: Flux is ~12B ✅ | | **AI character portrait** (Flux via Together AI) | Character feels real, strengthens originality | Same approach as scene. Displayed in existing aperture | | **Cinematic launch transition** (CSS/JS) | Memorable "Launch" moment, strengthens delight + polish | Pure CSS/JS in `gr.HTML()` injection. No dependencies | | **Atmospheric particles** (Canvas JS) | Living world feel, strengthens Off-Brand badge | Canvas element in `gr.HTML()`. Lightweight | | **Film grain + era color grading** (CSS) | Era authenticity, strengthens polish | CSS filters + overlay in existing cockpit.css | | **Ambient soundscapes** (pre-built library) | Immersive audio, strengthens delight | `