3Dグラフィックスが走るターミナル「Ratty」
ターミナルは「文字を並べる箱」だと、多くの人が思い込んでいる。その常識を、回転するネズミのカーソルで揺さぶる男が現れた。
ターミナルは「文字を並べる箱」だと、多くの人が思い込んでいる。その常識を、回転するネズミのカーソルで揺さぶる男が現れた。
回転するネズミがカーソルになる日
Rust製ターミナル UI ライブラリ Ratatui のメインメンテナとして知られるオルフン・パルマクスズ(Orhun Parmaksız)が、ターミナルエミュレータ「Ratty」を発表した。コマンドラインの中で 3D オブジェクトが回り、ターミナル画面そのものを 3D 空間で歪められる。
Rattyという名前は、カーソルが回転する 3D のネズミであることに由来する。ふざけているように見えて、しかしその下で動いているのは Rust製ゲームエンジン Bevy と Ratatui の組み合わせだ。
これは「便利な道具」ではない。ターミナルとは何かを問い直す、技術的な実験である。
TempleOSという、忘れがたい原典
オルフン・パルマクスズが Ratty を作るきっかけを与えたのは、テリー・A・デイビス(Terry A. Davis)が一人で書き上げたTempleOSだ。デイビスは1969年生まれの米国のプログラマで、統合失調症と共に生きながら、カーネル・コンパイラ・独自言語 HolyC・エディタを全て自分の手で実装した。2018年に48歳で亡くなっている。
TempleOS の真の革新は、640×480の16色という制約ではなく、「コマンドラインにスプライトを差し込めること」だった。テキストと画像、3D メッシュ、クリック可能なリンクが、ドキュメントの中で並列に並ぶ。
オルフン・パルマクスズはこのアイデアに惹かれた。「ターミナルエミュレータは開発者の日常の大きな部分を占めているのに、この領域では十分なイノベーションが起きていない」と彼は The Register に語っている。
ターミナルにスプライトを置く。たったそれだけの発想が、四半世紀近く誰にも実装されないまま漂っていた。それを今、Rust と Bevy で組み上げ直したのが Ratty だ。
Rattyができること
Rattyの機能は、ざっと見るだけでも普通のターミナルではない。
回転する 3D ネズミカーソル。設定ファイルで好きな .obj/.glb モデルに差し替えられる。フェリス(Rust のマスコットのカニ)にも、自分の飼い犬のパグにもできる。
3D モード。Ctrl + Alt + Enter を押すと、ターミナル画面そのものが 3D 平面として浮かび、自由に歪められる。メビウスの輪のように曲げることもできる。
インライン 3D オブジェクト。本文中の任意のセル位置に、3D モデルを「アンカー」できる。テキストの中に 3D の絵が埋め込まれ、テキストが動けばオブジェクトも一緒に動く。
そして画像表示。Kitty Graphics Protocol によるインライン画像にも対応する。皮肉なことに、競合の Kitty が定めたプロトコルにそのまま乗っている。
「ターミナルでメビウスの輪を回す」という機能に、実用的な意味はほぼない。それでも作者は「2026年なんだから、ターミナルでメビウスの輪くらいできてもいいでしょう」と動画の中で言い切る。実用性ではなく、可能性の宣言である。
2D の Ratatui が 3D を支える皮肉
Rattyの内部構造は、Ratatui を知る人にとっては逆説的に見える。
Ratatui は本来「ターミナルの中で動く TUI(テキストベース UI)を作るためのライブラリ」だ。それを使ってターミナルエミュレータ「自体」を作るというのは、一見すると階層が逆である。
しかし作者の説明はこうだ。PTY 経由でシェルを動かし、エスケープシーケンスを解析してターミナルの状態を取り出す。その状態を Ratatui がバッファとして再構築し、GPU 上のテクスチャに描画する。そのテクスチャを Bevy が 3D シーンの中で表示する。
一方の側がターミナルのエミュレーション、もう一方の側が表示──Ratty はこの2つを完全に分離する。だからこそ画面全体をワープさせるような、突飛な表示にも対応できる。
ターミナルの「描画」と「内容」を切り離した結果、内容は普通のシェル操作のまま、描画だけがゲームエンジンの自由度を持つ。技術的にはシンプルな分離だが、その分離こそが Ratty の表現力を生んでいる。
RGPという「もう一つの」ターミナルプロトコル
Rattyは独自のRGP(Ratty Graphics Protocol)と呼ばれるプロトコルを持つ。これがあるからこそ、ターミナルアプリケーションが「ここに 3D モデルを置いてほしい」とRattyに指示できる。
RGP の仕組みは、既存のターミナルの仕組みの上に乗っている。ANSI エスケープシーケンスの一種である APC(Application Program Command) を使い、ESC _ ratty;g;<操作>;<key=value>... ESC \ という形式でメッセージを送る。
操作は4種類だけ。「サポート照会」「アセット登録」「セルへの配置」「削除」。シンプルだが、これだけで .obj や .glb の 3D モデルをターミナル空間の任意のセル(行・列)にアンカーできる。
RGP は Ratty のアーキテクチャに合わせて設計されているので、他のターミナルが完全に実装するのは現実的ではない。ただ、これが「ターミナルとは何か」を問い直すきっかけになれば、それで十分だと作者は語る。
アプリケーション側からは、Ratatui のウィジェット ratatui-rgp を Cargo の依存に加えるだけで RGP が使える。書くべきコードは数行だけだ。テキストエディタに 3D スプライトを埋め込むデモや、左で 2D の絵を描くと右でリアルタイムに 3D 化されるデモが既に公開されている。
300 MBのメモリと、それでも作る理由
Rattyを起動すると、メモリを 300MB ほど食う。ゲームエンジン Bevy がバックグラウンドで動いているので、これは避けられない。普通のターミナルが数十 MB で済むことを考えれば、明らかに重い。
作者自身がこの代償を隠していない。「ターミナルエミュレータのために300MBのRAMを犠牲にするのは多すぎる。でも、何事にもコストはある。とくに回転するネズミのカーソルにはね」と書いている。
これは「軽くて速いターミナル」を目指す流れに対する、明確な逆張りだ。Alacritty も WezTerm も Ghostty も、全員が「軽量」「高速」「省メモリ」を競い合っている。そんな中でRattyは、ゲームエンジンを丸ごと積んで「ネズミを回す」と宣言する。
Rattyは、デイリードライバとして使うものではない。作者もそう明言している。だからこそ、この実験は意味を持つ。生産性ではなく可能性のために作られたターミナルだからだ。
ターミナルの「次」を考えるきっかけとして
オルフン・パルマクスズはこのプロジェクトを「単なる楽しい実験」と呼ぶ。実際、彼が個人の時間を割いてメンテナンスを続けられるかも分からないと正直に書いている。RGP は仕様としてもまだ流動的で、いつ変わるかも分からない。
それでも、こうした「壊れていてもいい」実験こそが、ターミナルというカテゴリの停滞を揺さぶる力を持つ。The Register もこのプロジェクトを「inspired by TempleOS, this terminal emulator is just about as bonkers(TempleOSにインスパイアされた、ほぼ同じくらいクレイジーなターミナルエミュレータ)」と評している。
Rattyの YouTube 動画には、こんなコメントがついていた。
90's movies are jealous of this... "it's a Unix system... I know this!"(90年代の映画が嫉妬しそうだ。「これは Unix システムだ……俺は知ってる!」)
映画『ジュラシック・パーク』で少女が UNIX を操って侵入者を撃退する、あのシーンの引用だ。SF映画が見せていた「未来のターミナル」の姿に、Rattyは半分本気で追いついてしまった。
Rattyを使って何か実用的なものを作るのは、おそらく難しい。CADプログラムをターミナルで動かしたいという作者の夢も、現時点では夢のままだ。
しかしターミナルは、テキストの箱でなければならない理由はない。それを、GitHub のスター数と数千の YouTube 視聴回数が、静かに示している。
実用と無関係に、人は時々、無駄に美しいものを作る。それを許す土壌が、オープンソースの世界にはまだ残っている。
参照元
他参照
関連記事
- Rust製bash互換シェルbrush v0.4が示す本気度
- Ubuntu 26.04 LTS公開、Linux 7.0搭載
- Rust Coreutils 0.8が登場、dd 45%高速化とブラウザ実行環境
- 正体不明のAMD GPU「GFX1156」がドライバに出現。RDNA 3.5は終わらない
- RustとAIで1からX11サーバーを書き直す。yserverが問いかけるもの
- AIが20年前のGPUドライバーを延命させている
- RustベースOS「Redox OS」に5月の大型進捗、Xfce移植とファイルシステム高速化が同時到達
- ZigでVulkanドライバを一から書いた開発者が現れた
- Phoronix22周年が映すLinuxの22年間
- WindowsでLinuxコマンドがネイティブに動く時代