CASE STUDY · FILM SERIES · 2026
PATAY GUTOM
Security-camera horror at real Philippine places: the EDSA busway at 2 AM, a last MRT carriage, the NAIA jet bridge, a Megamall after closing, the Araneta floor on a finals night. Every frame is rendered from code. There is no camera, no crew, and no shoot day.
- Role
- Creator and executive producer
- Where
- TikTok, @vibecodersph
- Engine
- Three.js, Python, ffmpeg
- Running since
- October 2026
A format was already working on TikTok: a what-if question answered by a simulated camera at a real place. Every version of it was set somewhere else. The brief was to put it in the Philippines, where the audience lives, and to make the place the protagonist rather than the backdrop. The second decision was cost: a series on a daily clock cannot have a shoot day, so the whole thing had to be built in code.
The films
Six films with public numbers, as of 18 October 2026. The count changes every time one goes out.
NAIA Terminal 3
Zombies on the jet bridge, the plane door closing, and one decision.
371.7K views
MRT-3, last train
The doors open at Ortigas and the carriage has to decide what it is.
125.5K views
EDSA busway
Paano kung may aswang sa EDSA? A city camera that counts people, at 2 AM.
81.4K views
Megamall, Night 1
Locked inside a mall on an ordinary October night, with a Christmas tree up.
77.6K views
Araneta, finals night
A sold-out arena, the dead at the gates, and a crowd that does not move.
22.3K views
Metro Manila
A month of working from home, measured in cars on EDSA.
15.2K views
How one film gets made
01
Research the place
Every film starts with real numbers about a real place: how many vehicles EDSA carries against what it was designed for, which buildings make up Megamall, which shops sit on the NAIA concourse. The audience lives there, so a wrong detail ends the film.
02
Build the set in code
The location is a Three.js scene: geometry, signs, lighting, the geometry of the crowd. Nothing is filmed, so every detail has to be placed. A sign audit checks which signs are in frame and which the edge cuts.
03
Choose the camera as a character
The security camera is not a viewpoint, it is a role. It sees the corridor when nobody is there, it misses the thing behind the pillar, and its timestamp is the clock the story runs on.
04
Render, then cut
Every frame is a pure function of time, so a film renders identically on any machine and a bad shot is a code fix rather than a lost take. A cut list assembles the shots, ffmpeg overlays the camera chrome, and a flicker check counts frames that jump against their neighbours.
05
Publish as a question
The caption asks something with no right answer and no letters to pick, because the comments are the next script. The best answer in the thread shapes the next film.
What broke
The outside camera cost a pass
On the NAIA film the brief called for the outside of the terminal, and that shot does not show the one person the ending is about. A full render pass went to a camera that could not carry the final beat. The lesson is now a rule: when the ending asks about one person, choose the camera that shows that person.
A second film in the same evening starts weak
The MRT film went out 80 minutes after the BGC film and landed second lowest of the week. The audience that watched the first one is not waiting for a second. One film an evening, and the next evening gets the new idea.
One film can eat 2.87 GiB of frames
Deterministic rendering means the frames are reproducible, but they are still frames. A housekeeping pass deleted 2.87 GiB from one film alone. Render output needs a schedule, not good intentions.
The serial runs on two decisions: the place is real and the camera is a character. Everything else is production, and production is code.