大家好,我是何三,独立开发者

每天对着黑底白字写代码,你有没有想过——终端的另一边是什么?

Ratty 说,是3D世界。

这不是科幻。GitHub 上一个叫 Ratty 的开源项目,做出了一个能渲染3D图形的终端模拟器。按下 Ctrl+Alt+Enter,你的终端瞬间从平面变成三维空间,连光标都是一只在转圈的3D老鼠。

近500 Star,Rust 写的,二进制不到20MB。在终端里显示3D模型——这件事本身,就足够离谱。

Ratty

Orhun Parmaksız 这个名字你可能不熟。但在 Rust 社区,这家伙是个狠人。

他是 Ratatui(Rust 最火的 TUI 框架,20.3k Star)的核心维护者,还搞了 git-cliff(11.8k Star)、binsider(4.2k Star)一大堆项目。用他自己的话说——"I don't have a rat under my hat"(我帽子里没有老鼠),然后他写了一个叫 Ratty(小老鼠)的终端。

切换模式

挺会玩梗的。

按他的说法,Ratty 的灵感来自 TempleOS——Terry Davis 那个疯子和天才并存的操作系统。TempleOS 的终端可以直接渲染图形,Orhun 觉得"凭什么现代终端不行?"

于是他用 Rust 造了一个。

Demo

技术细节听起来有点绕,我给你拆开说。

一般的终端模拟器怎么工作的?接收字符流,渲染成文本,黑底白字,完事。

Ratty 不一样。它内部搭了三层结构。

图片描述

第一层,还是用 Ratatui 处理传统的 TUI 界面,也就是你熟悉的那些命令行 UI 组件。

第二层,它用 Parley/Vello 这套 GPU 渲染管线来处理文本——对,文本渲染走 GPU,不是 CPU。这意味着你在终端里敲代码的时候,每帧画面都是显卡在画,CPU 闲得很。

第三层,最骚的部分。它嵌入了 Bevy 引擎——一个 Rust 写的游戏引擎来做3D场景渲染。当你按下 Ctrl+Alt+Enter,Bevy 接管屏幕,把你刚才的终端文本"贴"到一个三维曲面上,然后在旁边渲染3D模型。

说白了,你在终端里敲了个 ls,然后切到3D模式一看,这行 ls 漂浮在3D空间里。

嗯。

说实话,这块我也没完全搞懂具体怎么实现的——尤其是 CPU 读回那一步的优化策略,细节上可能有出入。但大概意思就是:Ratty 在终端和游戏引擎之间架了一座桥,让两个世界能通信。

说到 Bevy 引擎,我突然想起来。之前有个哥们用 Bevy 写了一个"在终端里玩贪吃蛇"的项目,结果 Bevy 启动就要加载一堆 shader,光初始化就好几秒。我当时想,这不扯吗,贪吃蛇初始化要3秒?

但 Orhun 这厮居然把 Bevy 塞进终端模拟器里,还做到了实时响应——怎么做到的?

为什么这么设计?别问我,问作者去。

安装非常简单,一条命令就行:

cargo install ratty

如果你是 Arch Linux 用户:

pacman -S ratty

装完直接运行 ratty 就能打开一个终端窗口。默认情况下你看到的还是正常终端,直到你按下那些神奇的组合键:

  • Ctrl+Alt+Enter:切换2D/3D模式
  • Ctrl+Alt+M:切换莫比乌斯模式(对,就是那个只有一个面的环)
  • Ctrl+Alt+Up/Down:调整曲面的扭曲程度

那个3D光标——默认是一只会旋转的卡通老鼠——是 Ratty 最吸睛的功能。你可以在配置里换模型,支持 .obj.glb 格式。我换成了一个甜甜圈模型,看着它在终端里转圈,愣是笑了五分钟。

# ~/.config/ratty/ratty.toml
[cursor.model]
path = "CairoSpinyMouse.obj"  # 换成你自己的模型
scale_factor = 6.0
brightness = 0.5

更离谱的是,Ratty 还搞了一个叫 RGP(Ratty Graphics Protocol)的协议,可以让终端应用程序直接在终端里嵌入3D对象。已经有开发者用这个协议在 Ratty 里跑 Tetris 了——每个方块都是3D的。

就是这个感觉:你以为是2D游戏,结果它真的是3D的。

Ratty 不是唯一的"激进终端"。如果你对这类项目感兴趣,还可以看看:

  • kermit:同样是 Orhun 写的终端,基于 VTE,简单易用,适合日常用。Ratty 更多是实验性质
  • Ghostty:另一个用 Zig 写的 GPU 加速终端,启动速度极快
  • Rio:Rust 写的 GPU 加速终端,已经开始在生产环境用了

项目地址: https://github.com/orhun/ratty

Ratty 不是一个"日常用"的终端模拟器。它太激进、太实验性,显卡不好的机器跑起来可能还会掉帧。

但它给终端世界开了一扇窗——原来命令行界面不止能看文本,还能是一个3D游乐场。

Orhun 用 Ratty 证明了:有时候最疯狂的想法,恰恰来自于对一个旧事物说一句"为什么不能"。

装不装都行,看你自己。但如果你装了,记得按一下 Ctrl+Alt+Enter

本文使用 MGO 编辑并发布

关注“何三笔记”,回复“mgo” 免费下载使用