# A Rust, Wayland, Vulkan 3D CRT and Screencast Application

RetroArch cores with Wayland and Vulkan support.

- **Source:** [Hacker News: Show HN](https://news.ycombinator.com)
- **Published:** 2026-07-27
- **Topic:** [Software & Engineering](https://brifing.si/c/engineering)
- **Original article:** <https://github.com/andrewfader/crtulum>
- **On Brifing:** https://brifing.si/s/be38eb0f-6402-4426-9a48-8819c09e8984

## Introduction

This application captures the output of programs like RetroArch, terminal, browser, or video player and projects it onto a 3D Trinitron tube. It offers a real CRT experience using Wayland and Vulkan technologies.

## Installation and Running

To run the application, the current Rust toolchain is required. The 'cargo run -- --capture' command opens the screencast picker and allows selecting the window to capture.

## Taking Screenshots

If window capture is not possible, the 'cargo run -- --shot out.png 1000x800' command can be used to take a screenshot. This feature is useful when tools like wlr-screencopy and grim fail.

## Gaming Experience

The application allows playing games on the CRT tube using RetroArch cores. Games can be started with the 'cargo run --release -- --play game.sfc' command and controlled with a keyboard or gamepad.

## CRT Controls

CRT controls remain active during gameplay. You can rotate the tube with the mouse, change presets with number keys, and cut power with the P key.

## Audio and Performance Monitoring

Audio is provided by the core and resampled according to your audio device. The CRTULUM_PLAY_STATS=1 command allows monitoring the emulated rate and audio buffer amount.

## Video Export

The application can process sources through the CRT tube and export them as video files. The 'cargo run --release -- --render clip.mp4 out.mp4' command processes video files.

## Script Usage

Scripts automate processes like camera movements, tube swaps, and power cycles on a timeline. The 'cargo run --release -- --render out.mp4 --script run.crts' command runs scripts.

## ROM and Emulator Recordings

Scripts can also work on ROMs. The emulator core is loaded, and exactly which buttons are pressed in each frame is controlled. This provides frame-exact and deterministic experience.

## Debugging

The CRTULUM_DEBUG_INPUT=1 command prints a line for each change during the run. This is particularly useful for understanding why jumps were missed.

## Pre-authored Recordings

Pre-authored recordings can be handed over to RetroArch with the '--movie run.bsv' command. This allows executing the entire run with a single command.

## Conclusion

This application offers a real CRT experience using Rust, Wayland, and Vulkan technologies. It stands out as a unique tool for both gamers and developers.

## Sources covering this story

- https://github.com/andrewfader/crtulum — 

---

_Summary written by Brifing from the original reporting. Copyright in the original article belongs to its publisher; read the full piece at the link above._
