A GPU-rendered terminal emulator with inline 3D graphics 🐀🧀
See the code
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
Inspired by TempleOS | Built with Rust & Ratatui
"Rodent-obsessed developer creates Ratty to bring 3D graphics to the command line" - The Register
"This New Terminal is Absurd (But Totally Fun)" - It's FOSS
"10 weird OSS projects you need right now... " - Fireship
"Your terminal can render in 3D now, and Rust made it surprisingly usable" - MakeUseOf
▶️ Watch the demo video here!
📚 Read the behind the scenes blog post here!
Ever wondered what's behind the terminal? Press Ctrl+Alt+Enter!
Requirements:
cargo install ratty
sudo pacman -S ratty
See the Nix packaging docs for flake, NixOS, and Home Manager usage.
nix run github:orhun/ratty
Prebuilt binaries are available on the GitHub releases page for direct download.
Requirements:
sudo rpm-ostree install gcc fontconfig-devel wayland-devel (then reboot)sudo apt-get update ; sudo apt-get install gcc pkgconf libfontconfig-dev libwayland-devsudo dnf install gcc fontconfig-devel wayland-develcargo install --git https://github.com/orhun/ratty
The default configuration file is available in config/ratty.toml.
You can copy this file to $HOME/.config/ratty/ratty.toml and customize it.
[cursor.model]
path = "CairoSpinyMouse.obj"
scale_factor = 6.0
brightness = 0.5
x_offset = 0.5
plane_offset = 18.0
visible = true
[cursor.animation]
spin_speed = 1.4
bob_speed = 2.2
bob_amplitude = 0.08
For cursor.model.path, Ratty supports both .obj, .glb, and .stl assets.
Other useful cursor fields are:
scale_factor: scales the model relative to the terminal cell sizebrightness: adjusts the cursor material brightnessx_offset: shifts the cursor model horizontally inside the cellplane_offset: pushes the cursor away from the warped terminal surface in 3D modevisible: show the custom 3D cursor model instead of only the terminal cursor| Key | Action |
|---|---|
| Ctrl+Shift+C | Copy selection |
| Ctrl+Shift+V | Paste clipboard |
| Ctrl+Alt+Enter | Toggle 2D / ortho 3D |
| Ctrl+Alt+P | Toggle perspective |
| Ctrl+Alt+M | Toggle Mobius mode |
| Ctrl+Alt+Shift+0-9 | Activate camera slot |
| Ctrl+Alt+Up | Increase warp |
| Ctrl+Alt+Down | Decrease warp |
| Alt+PageUp | Scroll one page up |
| Alt+PageDown | Scroll one page down |
| Alt+Up | Scroll one line up |
| Alt+Down | Scroll one line down |
| Ctrl+= | Increase font size |
| Ctrl+- | Decrease font size |
| Ctrl+Alt+0 | Reset font size |
In custom configs, ToggleOrtho3DMode is the current action name for the
orthographic 3D toggle. The old Toggle3DMode action remains supported as a
backward-compatible alias.
Camera slot actions are named ActivateCameraSlot0 through
ActivateCameraSlot9. The extra Shift modifier keeps slot 0 distinct
from the existing Ctrl+Alt+0 font reset.
Ratty uses its own protocol, the Ratty Graphics Protocol, to place inline 3D objects in terminal space.
RGP supports:
.obj, .glb, and .stl assets by pathThere is a Ratatui widget called ratatui-rgp available in
widget/ if you want to build your own terminal applications that involve inline 3D objects.
Places a single oversized rat directly in your terminal. Press v in the demo
to cycle the Ratty camera protocol through flat, orthographic, perspective and
Mobius views.
TempleOS-inspired document demo with editable text and embedded inline 3D objects:
Split-pane drawing demo with a 2D canvas on the left and a live 3D preview on the right:
Interactive 3D Rubik's cube demo:
A Mobius-strip chess demo:
Here are some applications explicitly built around Ratty's Graphics Protocol:
Terminal CAD:
Endless runner built for Ratty:
A blazingly fast serial monitor with plotter TUI and 3D telemetry
The terminal surface currently uses ratatui for the UI buffer,
bevy_terminal_ratatui for text shaping/rendering
and Bevy for scene presentation.
Current workflow:
fux-vt, a bounded terminal engine shared with the fux multiplexer, and drawn into a Ratatui buffer on CPUbevy_terminal_ratatui translates Ratatui's changed cells into a retained terminal surfacebevy_terminal shapes text with Bevy's font system and incrementally builds compact background,
decoration, cursor, and glyph quadsRgba8UnormSrgb textureThe terminal image is fully GPU-resident: the only data crossing from the main world to the render world each frame is compact scene data, not pixels.
The Cargo workspace contains the Ratty application. The widget remains a
separate package under widget/ with its own lockfile.
cargo test --workspace --locked # Application tests and doctests
In 3D mode, drag with one finger to rotate the terminal. Move two fingers together to pan, and pinch them to zoom. Swipe diagonally from the bottom-left toward the top-right to enter Mobius mode.
"These kinds of experiments are where creativity is born." - @Coko7
"No comments. Just support." - @Raphamorim (creator of Rio terminal)
All code is licensed under The MIT License.
🦀 ノ( º \_ º ノ) - respect crables!Ratty logo designed by @Strophox & @Harunocaksiz
Copyright © 2026, Orhun Parmaksız
The author does not have a rat under the hat!(top 24 of 105)
931 followers · starred May 2026
349 followers · starred May 2026
744 followers · starred May 2026
694 followers · starred May 2026
A GPU-rendered terminal emulator with inline 3D graphics 🐀🧀
See the code
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
Inspired by TempleOS | Built with Rust & Ratatui
"Rodent-obsessed developer creates Ratty to bring 3D graphics to the command line" - The Register
"This New Terminal is Absurd (But Totally Fun)" - It's FOSS
"10 weird OSS projects you need right now... " - Fireship
"Your terminal can render in 3D now, and Rust made it surprisingly usable" - MakeUseOf
▶️ Watch the demo video here!
📚 Read the behind the scenes blog post here!
Ever wondered what's behind the terminal? Press Ctrl+Alt+Enter!
Requirements:
cargo install ratty
sudo pacman -S ratty
See the Nix packaging docs for flake, NixOS, and Home Manager usage.
nix run github:orhun/ratty
Prebuilt binaries are available on the GitHub releases page for direct download.
Requirements:
sudo rpm-ostree install gcc fontconfig-devel wayland-devel (then reboot)sudo apt-get update ; sudo apt-get install gcc pkgconf libfontconfig-dev libwayland-devsudo dnf install gcc fontconfig-devel wayland-develcargo install --git https://github.com/orhun/ratty
The default configuration file is available in config/ratty.toml.
You can copy this file to $HOME/.config/ratty/ratty.toml and customize it.
[cursor.model]
path = "CairoSpinyMouse.obj"
scale_factor = 6.0
brightness = 0.5
x_offset = 0.5
plane_offset = 18.0
visible = true
[cursor.animation]
spin_speed = 1.4
bob_speed = 2.2
bob_amplitude = 0.08
For cursor.model.path, Ratty supports both .obj, .glb, and .stl assets.
Other useful cursor fields are:
scale_factor: scales the model relative to the terminal cell sizebrightness: adjusts the cursor material brightnessx_offset: shifts the cursor model horizontally inside the cellplane_offset: pushes the cursor away from the warped terminal surface in 3D modevisible: show the custom 3D cursor model instead of only the terminal cursor| Key | Action |
|---|---|
| Ctrl+Shift+C | Copy selection |
| Ctrl+Shift+V | Paste clipboard |
| Ctrl+Alt+Enter | Toggle 2D / ortho 3D |
| Ctrl+Alt+P | Toggle perspective |
| Ctrl+Alt+M | Toggle Mobius mode |
| Ctrl+Alt+Shift+0-9 | Activate camera slot |
| Ctrl+Alt+Up | Increase warp |
| Ctrl+Alt+Down | Decrease warp |
| Alt+PageUp | Scroll one page up |
| Alt+PageDown | Scroll one page down |
| Alt+Up | Scroll one line up |
| Alt+Down | Scroll one line down |
| Ctrl+= | Increase font size |
| Ctrl+- | Decrease font size |
| Ctrl+Alt+0 | Reset font size |
In custom configs, ToggleOrtho3DMode is the current action name for the
orthographic 3D toggle. The old Toggle3DMode action remains supported as a
backward-compatible alias.
Camera slot actions are named ActivateCameraSlot0 through
ActivateCameraSlot9. The extra Shift modifier keeps slot 0 distinct
from the existing Ctrl+Alt+0 font reset.
Ratty uses its own protocol, the Ratty Graphics Protocol, to place inline 3D objects in terminal space.
RGP supports:
.obj, .glb, and .stl assets by pathThere is a Ratatui widget called ratatui-rgp available in
widget/ if you want to build your own terminal applications that involve inline 3D objects.
Places a single oversized rat directly in your terminal. Press v in the demo
to cycle the Ratty camera protocol through flat, orthographic, perspective and
Mobius views.
TempleOS-inspired document demo with editable text and embedded inline 3D objects:
Split-pane drawing demo with a 2D canvas on the left and a live 3D preview on the right:
Interactive 3D Rubik's cube demo:
A Mobius-strip chess demo:
Here are some applications explicitly built around Ratty's Graphics Protocol:
Terminal CAD:
Endless runner built for Ratty:
A blazingly fast serial monitor with plotter TUI and 3D telemetry
The terminal surface currently uses ratatui for the UI buffer,
bevy_terminal_ratatui for text shaping/rendering
and Bevy for scene presentation.
Current workflow:
fux-vt, a bounded terminal engine shared with the fux multiplexer, and drawn into a Ratatui buffer on CPUbevy_terminal_ratatui translates Ratatui's changed cells into a retained terminal surfacebevy_terminal shapes text with Bevy's font system and incrementally builds compact background,
decoration, cursor, and glyph quadsRgba8UnormSrgb textureThe terminal image is fully GPU-resident: the only data crossing from the main world to the render world each frame is compact scene data, not pixels.
The Cargo workspace contains the Ratty application. The widget remains a
separate package under widget/ with its own lockfile.
cargo test --workspace --locked # Application tests and doctests
In 3D mode, drag with one finger to rotate the terminal. Move two fingers together to pan, and pinch them to zoom. Swipe diagonally from the bottom-left toward the top-right to enter Mobius mode.
"These kinds of experiments are where creativity is born." - @Coko7
"No comments. Just support." - @Raphamorim (creator of Rio terminal)
All code is licensed under The MIT License.
🦀 ノ( º \_ º ノ) - respect crables!Ratty logo designed by @Strophox & @Harunocaksiz
Copyright © 2026, Orhun Parmaksız
The author does not have a rat under the hat!(top 24 of 105)
931 followers · starred May 2026
349 followers · starred May 2026
744 followers · starred May 2026
694 followers · starred May 2026