
An experiment in integrating video showreels with photorealistic 3D environments. The audience doesn’t just watch the reel—they step inside it, cross a stone bridge recreated using Unreal Engine rendering, and find the reel projected at the far end, like a drive-in theater.
The Idea
The showreel is a closed format: a video, a timeline, a door that opens and closes. I wanted to try opening it up. To transform it into a space where the viewer decides when to approach and from which angle to watch.
The idea relies on a recent technology, 3D Gaussian Splatting, which allows frames rendered by Unreal Engine to be transformed into realistic 3D scenes light enough to run in a browser. Once inside the scene, the reel becomes part of the world: a projection suspended against the wall of the bridge, which activates when you approach.
The process
Five pipeline steps, from rendering to the browser. Each step served to remove something: weight, noise, constraints.
- Unreal Engine 5 scene rendering
The starting scene is the stone bridge from Dark Ruins, a Quixel Megascans demo. Path Tracing was used to ensure stable shadows and indirect lighting, which are essential for training the splat. A slow camera path with multiple passes was used to provide the algorithm with multiple viewpoints. - Gaussian Splat Training
Unreal frames are processed by the Gaussian Splatting algorithm, which transforms them into a cloud of 3D Gaussians. Raw result: several hundred MB, with residual artifacts around areas with ambiguous lighting. - Cleanup and Compression
Surgical removal of floaters, cropping of the usable volume, and reduction of spherical harmonic coefficients to the minimum necessary degrees. The file size is reduced from ~500 MB raw to 50 MB in the final file, while maintaining visual quality. - Video Plane Positioning
To anchor the reel’s screen exactly on the correct wall of the bridge, the splat was imported into a 3D editor (Houdini). There, a reference plane was positioned in view, and its coordinates were transferred to the web code. - Browser rendering
A single Three.js scene hosts the splat (rendered by Mark Kellogg’s gaussian-splats-3d library) and the video plane with its texture. First-person navigation using WASD on desktop, virtual joystick on mobile. An invisible collision cube ensures the user does not exit the playable volume.
Technical notes
A single Three.js scene hosts the splat (rendered by Mark Kellogg’s gaussian-splats-3d library) and the video plane with its texture. First-person navigation using WASD on desktop, virtual joystick on mobile. Invisible collision cube to prevent exiting the usable volume.
