| --- |
| title: AI Time Machine |
| sdk: gradio |
| sdk_version: 6.17.3 |
| python_version: 3.12 |
| app_file: app.py |
| fullWidth: true |
| tags: |
| - track:wood |
| - sponsor:openai |
| - sponsor:nvidia |
| - sponsor:modal |
| - achievement:offbrand |
| - achievement:fieldnotes |
| --- |
| |
| # AI Time Machine |
|
|
| AI Time Machine is an immersive Gradio experience for the Build Small Hackathon. The user launches a time machine, arrives in a generated scene, meets an ordinary person from that time and place, talks with them by text or voice, and brings back a souvenir from the encounter. |
|
|
| This is built for the **Thousand Token Wood** track: the product is a playful, AI-native encounter rather than a conventional chatbot. The custom cockpit interface, portal sequence, voice loop, scene reveal, generated portrait, narration, and souvenir flow are designed to make the app feel like a small interactive ride. |
|
|
| ## Live Submission Links |
|
|
| - Space: https://huggingface.co/spaces/build-small-hackathon/ai-time-machine |
| - Demo video: PLACEHOLDER - replace with a public YouTube, Space, or hosted video link before final judging. |
| - Social post: PLACEHOLDER - replace with the public social-media post URL before final judging. |
| - README validator: https://build-small-hackathon-field-guide.hf.space/submit |
|
|
| ## Team |
|
|
| - Hugging Face: `manikandanj` |
|
|
| ## How It Works |
|
|
| 1. Pick a launch mode: surprise, past, or future. |
| 2. Start the portal sequence while the app creates the destination, persona, visual scene, narration, and character context. |
| 3. Interact with the person you meet through text or live voice. |
| 4. Ask for a souvenir and reveal a generated artifact from the encounter. |
|
|
| The app keeps a fixture profile for deterministic local development and a Modal-backed profile for the live hackathon experience. |
|
|
| ## Models And 32B Rule |
|
|
| Every enabled model is below the Build Small 32B per-model parameter cap. |
|
|
| | Role | Model | Parameters | Runtime | |
| | --- | --- | ---: | --- | |
| | Language | `Qwen/Qwen3-8B` | 8B | Together AI / OpenAI-compatible API | |
| | Speech recognition | `nvidia/nemotron-3.5-asr-streaming-0.6b` | 0.6B | Modal | |
| | Speech synthesis | `ResembleAI/chatterbox-turbo` | about 0.5B | Modal | |
| | Image generation | `black-forest-labs/FLUX.1-schnell` | 12B | Together AI image API | |
| | Emergency local TTS | `hexgrad/Kokoro-82M` | 0.082B | local/dev fallback | |
|
|
| The app enforces the cap from `config/models.yaml` during startup. |
|
|
| ## Prize And Badge Fit |
|
|
| - **Best Use of Codex:** Codex was used throughout implementation, review, packaging, and deployment preparation. |
| - **Nemotron Hardware Prize:** live speech recognition uses NVIDIA Nemotron ASR. |
| - **Best Use of Modal:** Modal serves the ASR and TTS runtime endpoints used by the Hugging Face Space. |
| - **Off-Brand / Custom UI:** the Space uses a custom time-machine cockpit instead of default Gradio styling. |
| - **Field Notes:** see `docs/field_notes.md` for the development write-up. |
|
|
| ## Runtime Profiles |
|
|
| The default repo config uses `fixture` so local checks and the Space can start without private credentials. For the live hackathon Space, set these Space variables/secrets: |
|
|
| ```text |
| GRADIO_ROOT_PATH=https://build-small-hackathon-ai-time-machine.hf.space |
| TIME_MACHINE_ADAPTER_PROFILE=modal |
| TIME_MACHINE_LLM_API_KEY=<Together/OpenAI-compatible API key> |
| TOGETHER_API_KEY=<optional Together fallback key> |
| TIME_MACHINE_IMAGE_API_KEY=<optional image API key> |
| TIME_MACHINE_MODAL_STT_URL=<Modal Nemotron STT endpoint> |
| TIME_MACHINE_MODAL_TTS_URL=<Modal Chatterbox TTS endpoint> |
| TIME_MACHINE_MODAL_BEARER_TOKEN=<optional Modal endpoint bearer token> |
| TIME_MACHINE_MODAL_TTS_MODEL_FAMILY=chatterbox_turbo |
| TIME_MACHINE_MODAL_TTS_LATENCY_PROFILE=turbo |
| ``` |
|
|
| The Modal runtime is served from `scripts/modal_audio.py`. |
|
|
| ## Local Development |
|
|
| ```powershell |
| .\.venv\Scripts\python.exe -m pip install -e . |
| $env:TIME_MACHINE_ADAPTER_PROFILE="fixture" |
| .\.venv\Scripts\python.exe app.py |
| ``` |
|
|
| For the live Modal-backed profile: |
|
|
| ```powershell |
| $env:MODAL_PROFILE="manikandanj" |
| $env:PYTHONUTF8="1" |
| $env:PYTHONIOENCODING="utf-8" |
| $env:TTY_COMPATIBLE="0" |
| .\.venv\Scripts\modal.exe serve scripts\modal_audio.py |
| ``` |
|
|
| Copy the printed Modal endpoint URLs into the Space secrets/variables above, then restart the Space. |
|
|