Make the room the sound crew for a twenty-second film. One person directs with the TV remote while friends contribute footsteps, weather and a creature voice from their phones. Save two soundtracks, change one role and hear how the same scene changes.
Inspiration
A footstep, rustling paper or a strange little hum can change how a scene feels. I wanted a small group around a TV to try that part of filmmaking without learning a video editor. Foley provides an original short film and three sound roles, leaving the creative choices to the room.
What it does
The director starts a studio on the TV. Contributors join through a browser using its pairing code, with no account or phone app. They can record or upload a short sound, listen, try again and send the take. Microphone access starts only after an explicit action.
The director casts the takes as footsteps, weather and creature, adjusts their volumes and starts the premiere. The film follows a small creature through a storm toward a cabin; its credits name the contributors whose takes were used.
Save the soundtrack as Cut A, change a role and save Cut B. Each cut retains its own sound choices and volumes. The comparison names the changed roles, and either cut can play without replacing the current edit.
The TV interface supports D-pad focus, Back and studio resume. A lightweight 2D picture is the default, with an optional 3D view. Recordings and saved cuts stay within the studio and expire together.
How I built it
An Android WebView launcher opens the React and TypeScript TV interface. MediaRecorder handles contributor recording, and Web Audio schedules the film and soundtrack together. Node.js, Express and SQLite store studios and cast choices; FFmpeg validates and normalizes uploaded audio. Three.js supplies the optional 3D scene.
Amazon Lightsail hosts the service in Mumbai, with Docker Compose and Caddy providing persistent storage and HTTPS so the TV and phones can share a studio. This is the AWS Builder integration; the app does not use AI inference.
Codex supported implementation, Claude provided independent source review, and Deepgram supplied narration and caption timing. Test execution and runtime recordings provide separate verification.
Challenges
A microphone permission request can finish after someone leaves the screen. Foley stops late streams, rejects interrupted recordings and retains failed uploads for retry.
Native testing also exposed focus moving away from the film during playback. The fixes preserve deliberate remote navigation and keep the picture visible. Slow software-rendered 3D performance led to the lighter 2D default.
Accomplishments
The 11 October release passed 31 unit/API tests, TV and saved-cut browser checks, 14 hosted acceptance checks and the public-server APK emulator workflow. Native verification checked the installed APK, D-pad controls, Back/resume and saved A/B replay with the current edit preserved. Replacing the application container also preserved studio data and normalized audio.
The 138-second demonstration includes two complete saved-cut premieres with captured Android TV emulator picture and audio. Only Creature changes in Cut B. Original synthetic inputs are labeled; the contributor segment uses separately labeled, edited app states from 9 October. Deepgram Aura 2 Thalia provides narration, with Nova 3 caption timing.
Android Chrome microphone recording and playback were reported successful by the owner. That result is self-reported, without an independent recording or latency measurement. The video does not show physical phone capture or Fire TV hardware.
What I learned
A moving playback clock cannot establish that a soundtrack is audible or enjoyable. Controls, audio output and group experience need separate checks. Focus is also part of the film experience: playback loses its purpose if navigation scrolls the picture away.
What's next
Run a small-group playtest to observe whether people recognize their sounds and choose another cut. Physical Fire TV behavior and group enjoyment remain unverified. Wider use also needs backup and recovery work for the single-instance service.
Try it
Live app · Tested TV APK · MIT-licensed source and setup · Friction log
The repository includes the native launcher and local instructions for Node.js 22.13+, FFmpeg and ffprobe. New studios start empty; demonstration sounds are not preloaded. A desktop preview is separate from the native Android TV emulator demonstration.
Built With
- amazon-lightsail
- android
- android-webview
- caddy
- claude
- codex
- deepgram
- docker-compose
- express.js
- ffmpeg
- github-actions
- mediarecorder
- node.js
- playwright
- react
- sqlite
- three.js
- typescript
- vite
- web-audio-api
Log in or sign up for Devpost to join the conversation.