A Matrix digital rain effect with two renderers: a GPU-accelerated version with cinematic depth-of-field, and a classic terminal version.
By John Zheng (with Gemini & Claude)
Real-time 3D rain with bloom, bokeh depth-of-field, and tone mapping.
- Instanced glyph rendering with texture atlas
- Multi-pass Gaussian depth-of-field blur (f/2.8 bokeh)
- Bloom with bright extraction and separable blur
- Reinhard tone mapping and vignette
- Katakana + digit character set
- Multiple depth layers with parallax
- Rust toolchain
- macOS, Linux, or Windows with Vulkan/Metal/DX12 support
cargo run --bin matrix-rain-gpu --releaseOr download a pre-built binary from Releases.
| Key | Action |
|---|---|
+ / - |
Zoom in / out |
ESC / q |
Quit |
Classic terminal rain using crossterm with 256-color RGB gradients.
- Smooth falling character streams with multi-shade gradient tails
- Katakana, digits, and symbol character sets
- Glitch mutations and white sparkle flashes
- Randomized stream speeds, lengths, and burst spawns
- In-app options menu (press
ESC) to configure color theme, speed, and density - 8 color themes: Green, Amber, Cyan, Red, Blue, Purple, Pink, White
- Handles terminal resizing on the fly
cargo run --bin matrix-rain --release| Key | Action |
|---|---|
ESC |
Open / close options menu |
q / Q |
Quit |
↑ ↓ |
Navigate menu |
← → |
Cycle menu values |
Enter |
Select menu item |
Classic terminal rain using curses with 256-color gradients.
- Smooth falling character streams with multi-shade gradient tails
- Glitch mutations and white sparkle flashes
- Randomized stream speeds, lengths, and burst spawns
- In-app options menu (press
ESC) to configure color theme, speed, and density - Handles terminal resizing on the fly
- Python 3
- A terminal with color support (256-color recommended)
python3 python/matrix_rain.py| Key | Action |
|---|---|
ESC |
Open / close options menu |
q / Q |
Quit |
↑ ↓ |
Navigate menu |
← → |
Cycle menu values |
Enter |
Select menu item |