Rust Wayland App Renders Games and Video Through a 3D CRT Tube
An open-source Rust/Wayland app captures screens and libretro cores, rendering them through a 3D CRT model and exporting to video via ffmpeg.
Crtulum is an open-source Rust application that captures another program's output via Wayland screencast (similar to OBS window capture) and projects it onto an orbitable, zoomable 3D Trinitron-style CRT model rendered in the compositor. Rather than a flat fullscreen filter, the tube is modeled as an actual object in 3D space.
The tool runs libretro cores in-process, headless, via Vulkan, OpenGL, or a software framebuffer, letting systems like NES, SNES, Game Boy, Mega Drive, N64, and PlayStation run at their native emulated clock rate independent of the display's refresh rate. A custom scripting format lets developers choreograph camera moves, preset/tube swaps, power and degauss effects on a timeline, and author frame-exact, TAS-style input sequences for scripted playthroughs.
Beyond live capture, the app can export video files, streaming URLs (via yt-dlp), image sequences, or scripted ROM runs through the same phosphor/shader pipeline using ffmpeg, reportedly hitting around 500 fps at 640x480 on an RX 9070 GPU. It's a notable reference for engineers working on graphics pipelines, media tooling, or retro emulation who want a concrete example of Rust, Wayland, and Vulkan integration.