Here's your DevPost project story, ready to paste:

What Inspired Us The brief said turn a dataset into a film. Most teams would treat that as a constraint. We wanted to treat it as a question: what does 44,500 dream reports actually feel like, as cinema? When we opened the Sleep and Dream Database and searched for recurring grief dreams — people dreaming of deceased siblings, parents, partners — we found the same emotional structure repeating across thousands of unrelated dreamers. Different people, different decades, different countries. Same porch. Same person who shouldn't be there anymore. Same impossible warmth of finding them waiting. That pattern was the film. We didn't adapt one dream. We made the pattern visible.

What We Built The Porch is a 2.5-minute AI short film following Elena across four ages — 9, 16, 35, and 70 — returning in recurring dreams to the same childhood porch where her deceased brother Sam, forever seven years old, always waits. The film's structure mirrors the dataset itself: the same motif repeating across time, slightly different each visit, accumulating emotional weight. The final shot pulls back to reveal dozens of glowing porches scattered across a dusk landscape — one collective dream, shared by everyone who has ever lost someone and kept returning to find them. Tools used:

🎬 Runway Gen-4 — all video generation (18 individual shots across 5 scenes) 🖼️ Google Gemini — character reference sheet generation (Elena at 4 ages, Sam, porch, props) 🎙️ ElevenLabs — voiceover narration (Bella voice) 🎵 Suno — original piano score 🔧 FFmpeg — final assembly, audio mixing, scene timing sync

How We Built It We approached this like a real film production, just with AI as every department. Pre-production first. Before generating a single frame, we locked a full script (v3, after two rounds of revision against the hackathon rubric), a complete shot list with 18 individually specified shots, and a character reference sheet for all 6 character instances — Elena at ages 9, 16, 35, and 70, Sam at 7, the porch itself. Every identity trait (the mole above Elena's left eyebrow, Sam's chipped front tooth, the porch lantern at house 142) was documented before generation began. References drove consistency. The hardest problem in AI filmmaking isn't generating beautiful images — it's keeping the same face across 18 shots generated days apart. We solved this by generating clean neutral reference portraits first, then feeding those references into every subsequent generation as base images rather than prompting from text alone. Scene by scene, not all at once. Each of the 5 scenes was generated, reviewed, and locked before moving to the next. We kept a live status tracker flagging every unconfirmed or flagged shot. Assembly in FFmpeg. All 18 clips were assembled in script order, each scene extended to match the voiceover narration timing, with music mixed at 15% volume under the full-volume narration track.

Challenges We Faced Character consistency across ages was the single hardest technical problem. Elena needs to read as the same person at 9, 16, 35, and 70 — with the same mole, same eye color, same face structure — despite being generated in separate sessions. We solved this with locked reference sheets and image-to-video instead of text-to-video wherever possible, but it required careful validation at every shot. Dream logic without looking broken. The script called for subtle wrongness — a door opening onto snow in summer, a shadow that lags half a beat behind its owner. AI video models render unintentional glitches constantly; rendering intentional glitches that feel eerie rather than buggy required specific framing choices (keep characters oblivious, hold the camera static, never draw attention to the wrongness). The wide reveal shot (Scene 5D) — a continuous pull-back from two figures on a porch to a landscape of dozens of glowing porches — was flagged as the highest-risk shot in the film. We generated a target end-frame still first, then used image-to-video between the two known states rather than prompting blind. It worked on the first real attempt. Voiceover timing. With 145 seconds of narration and 87 seconds of raw footage, we mapped the silence gaps in the audio file programmatically using FFmpeg's silencedetect filter, then extended each scene's last frame to hold exactly long enough for the narration above it to land over the right visuals.

What We Learned AI filmmaking isn't faster than traditional filmmaking — it's differently difficult. The speed gains in image and video generation are real. The losses in control, consistency, and predictability are equally real. The teams that will win with these tools aren't the ones who prompt the most aggressively — they're the ones who do the most rigorous pre-production. The dataset didn't just inspire the story. It was the story. The grief dream pattern in 44,500 reports is the same pattern Elena keeps living. That's not metaphor — that's what the data actually shows.

Built on data from the Sleep and Dream Database (SDDb), specifically the 2012 Demographic Survey dream reports. Dataset citation: Bulkeley, K. (2012). Sleep and Dream Database.

Built With

Share this project:

Updates

Submission history