[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1400":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},1400,"ratty","orhun\u002Fratty","orhun","A GPU-rendered terminal emulator with inline 3D graphics 🐀🧀 ","",null,"Rust",2900,79,10,33,0,62,172,1874,186,27.71,"MIT License",false,"main",[26,27,28,29,30,31,32,5,33,34,35,36,37,38],"3d","3d-graphics","command","gpu","gpu-rendering","graphics","ratatui","rust","templeos","terminal","terminal-emulator","terminal-emulators","terminal-graphics","2026-06-12 02:00:27","\u003Cp align=\"center\">\n\u003Cimg width=\"300\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Forhun\u002Fratty\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fimg\u002Fratty-logo.gif\" \u002F>\n\u003Cbr>\n\u003Cbr>\n\u003Cb>Ratty: A GPU-rendered terminal emulator that supports inline 3D graphics\u003C\u002Fb> 🧀\n\u003Cbr>\n\u003Csup>\nInspired by TempleOS | Built with Rust & Ratatui\n\u003C\u002Fsup>\n\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt_with-Ratatui-000?logo=ratatui&amp;logoColor=fff&amp;labelColor=201a16&amp;color=ffd970\" alt=\"Built with Ratatui badge\">\n\u003C\u002Fp>\n\n\u003Cdiv>\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Febe4dc54-ec60-4399-a63e-0d04b3013433\" alt=\"Ratty Demo\"\u002F>\n\u003C\u002Fdiv>\n\n## Features\n\n- Spinning rat cursor ([customizable](#changing-the-cursor))\n- Traditional 2D and [new 3D mode](#3d-mode)!\n- [Inline 3D objects](#inline-3d-objects)\n- [GPU-backed text rendering](#rendering-pipeline)\n- Image support (via Kitty Graphics Protocol >:\\()\n\n### 3D mode\n\nEver wondered what's _behind_ the terminal? Press \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>Enter\u003C\u002Fkbd>!\n\n\u003Cdiv>\n  \u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F173971cc-b6bb-4897-857a-5db8e3c9e161\"\u002F>\n\u003C\u002Fdiv>\n\n## Installation\n\nRequirements:\n\n- Rust toolchain with Cargo\n- A GPU \u002F graphics stack supported by Bevy and wgpu\n\n### From source\n\n```bash\ncargo install --git https:\u002F\u002Fgithub.com\u002Forhun\u002Fratty\n```\n\n## Configuration\n\nThe default configuration file is available in [`config\u002Fratty.toml`](config\u002Fratty.toml).\n\nYou can copy this file to `$HOME\u002F.config\u002Fratty\u002Fratty.toml` and customize it.\n\n### Changing the cursor\n\n```toml\n[cursor.model]\npath = \"CairoSpinyMouse.obj\"\nscale_factor = 6.0\nbrightness = 0.5\nx_offset = 0.5\nplane_offset = 18.0\nvisible = true\n\n[cursor.animation]\nspin_speed = 1.4\nbob_speed = 2.2\nbob_amplitude = 0.08\n```\n\nFor [`cursor.model.path`](config\u002Fratty.toml), Ratty supports both `.obj` and `.glb` assets.\n\nOther useful cursor fields are:\n\n- `scale_factor`: scales the model relative to the terminal cell size\n- `brightness`: adjusts the cursor material brightness\n- `x_offset`: shifts the cursor model horizontally inside the cell\n- `plane_offset`: pushes the cursor away from the warped terminal surface in 3D mode\n- `visible`: show the custom 3D cursor model instead of only the terminal cursor\n\n## Key Bindings\n\n| Key                                             | Action              |\n| ----------------------------------------------- | ------------------- |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>C\u003C\u002Fkbd>     | Copy selection      |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>V\u003C\u002Fkbd>     | Paste clipboard     |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>=\u003C\u002Fkbd>                    | Increase font size  |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>-\u003C\u002Fkbd>                    | Decrease font size  |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>0\u003C\u002Fkbd>     | Reset font size     |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>Enter\u003C\u002Fkbd> | Toggle 2D \u002F 3D mode |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>Up\u003C\u002Fkbd>    | Increase warp       |\n| \u003Ckbd>Ctrl\u003C\u002Fkbd>+\u003Ckbd>Alt\u003C\u002Fkbd>+\u003Ckbd>Down\u003C\u002Fkbd>  | Decrease warp       |\n\n## Inline 3D objects\n\nRatty uses its own protocol, the [Ratty Graphics Protocol](protocols\u002Fgraphics.md),\nto place inline 3D objects in terminal space.\n\nRGP supports:\n\n- registering `.obj` and `.glb` assets by path\n- placing them at terminal cell anchors\n- animation, scale, color, depth and other attributes\n\nThere is a Ratatui widget called `ratatui-rgp` available in\n[`widget\u002F`](widget\u002F) if you want to build your own terminal applications that involve inline 3D objects.\n\n### Examples\n\n#### [Big rat](widget\u002Fexamples\u002Fbig_rat.rs)\n\nPlaces a single oversized rat directly in your terminal:\n\n\u003Cdiv>\n  \u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fe955d09a-d0eb-4bad-b3b2-fc1331f49646\"\u002F>\n\u003C\u002Fdiv>\n\n#### [Document](widget\u002Fexamples\u002Fdocument.rs)\n\nTempleOS-inspired document demo with editable text and embedded inline 3D objects:\n\n\u003Cdiv>\n  \u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff3a085b0-9e34-4b6f-92fb-90eff9f11776\"\u002F>\n\u003C\u002Fdiv>\n\n#### [Draw](widget\u002Fexamples\u002Fdraw.rs)\n\nSplit-pane drawing demo with a 2D canvas on the left and a live 3D preview on the right:\n\n\u003Cdiv>\n  \u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8b53515b-b887-4d03-a54c-7e7aa7ea128c\"\u002F>\n\u003C\u002Fdiv>\n\n## Architecture\n\n### Rendering pipeline\n\nThe terminal surface currently uses [`ratatui`](https:\u002F\u002Fgithub.com\u002Fratatui\u002Fratatui) for the UI buffer,\n[`parley_ratatui`](https:\u002F\u002Fgithub.com\u002Fgold-silver-copper\u002Fparley_ratatui) for text shaping\u002Frendering\nand [Bevy](https:\u002F\u002Fbevyengine.org\u002F) for scene presentation.\n\nCurrent workflow:\n\n1. Ratatui buffer on CPU\n2. Parley\u002FVello renders on GPU\n3. Read back RGBA to CPU\n4. Copy into Bevy image\n5. Bevy presents that image in 2D and 3D\n\nTerminal drawing is GPU-rendered through Parley\u002FVello, but the main terminal\nimage still crosses back through CPU memory before Bevy presents it. This is a\nGPU-powered bridge, not a fully GPU-resident shared-texture path.\n\nIf the project later moves to a fully GPU-resident path, that will require a\ndedicated Bevy render integration that renders into a Bevy-owned texture on\nBevy's render-world device instead of using the current readback bridge.\n\n## Endorsements\n\n- _\"This is like a legitimately cool project but also I just spent like 20 minutes adjusting the config for the rat spinning to see him spin faster and more erratically and it cracked me up\"_ - [@vimlena.com](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fvimlena.com\u002Fpost\u002F3mkoshbzpvs2y)\n\n\u003Cdiv>\n\n\u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F76446086-0432-4b67-b768-1fe31134a2c1\">\n\n\u003C\u002Fdiv>\n\n- _\"These kinds of experiments are where creativity is born.\"_ - [@Coko7](https:\u002F\u002Fgithub.com\u002FCoko7)\n\n- _\"No comments. Just support.\"_ - [@Raphamorim](https:\u002F\u002Fgithub.com\u002Fraphamorim\u002F) (creator of Rio terminal)\n\n- _\"[tetro-tui](https:\u002F\u002Fgithub.com\u002FStrophox\u002Ftetro-tui) running in Ratty\"_ - [@Strophox](https:\u002F\u002Fgithub.com\u002FStrophox)\n\n\u003Cdiv>\n\n\u003Cvideo width=\"80%\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fbdc55f35-64eb-4a14-8bb1-4f8719f14644\">\n\n\u003C\u002Fdiv>\n\n## License\n\nAll code is licensed under \u003Ca href=\"LICENSE\">The MIT License\u003C\u002Fa>.\n\n\u003Csup>\n🦀 ノ( º \\_ º ノ) - respect crables!\n\u003C\u002Fsup>\n\n## Credits\n\nRatty logo designed by [@Strophox](https:\u002F\u002Fgithub.com\u002FStrophox) & [@Harunocaksiz](https:\u002F\u002Fgithub.com\u002Fharunocaksiz)\n\n## Copyright\n\nCopyright © 2025, [Orhun Parmaksız](mailto:orhunparmaksiz@gmail.com)\n\n\u003Csup>\nThe author does not have a rat under the hat!\n\u003C\u002Fsup>\n","Ratty 是一个支持内联3D图形的GPU渲染终端模拟器。它利用Rust语言和Ratatui库构建，提供传统2D视图及创新的3D模式切换功能，允许用户在终端中直接查看和操作三维对象。该项目还具备GPU加速的文字渲染能力，支持自定义旋转鼠标指针模型，并兼容Kitty图形协议以实现图像显示。适用于需要在命令行环境中集成或展示3D内容的场景，如开发人员演示、教学工具或创意编码项目等。",2,"2026-06-11 02:43:30","CREATED_QUERY"]