
Разработчик Орхун Пармаксиз представил открытый проект под названием Ratty. Это эмулятор терминала с отрисовкой на GPU и встроенной 3D-графикой и курсором в виде крысы. Исходный код решения написан на Rust и опубликован на GitHub под лицензией MIT.
«Я попытался ответить на один простой вопрос: что, если бы терминал был трёхмерным? Проект вдохновлён TempleOS, создан на Rust и Ratatui», — пояснил в своём блоге автор решения.
Решение имеет вращающийся курсор в виде крысы (настраиваемый), поддерживает 2D и 3D режим, имеет встроенные 3D-объекты и выполняет рендеринг текста с использованием графического процессора.
Сборки проекта доступны для Linux (crates.io) и macOS.

Ratty также поддерживает протокол Kitty Image Protocol, поэтому проект может отображать изображения (например, логотип TempleOS в правом верхнем углу).
В настоящее время для буфера пользовательского интерфейса терминал Ratty использует ratatui, parley_ratatui для формирования/рендеринга текста и Bevy для сценарного отображения (scene presentation).
Текущий рабочий процесс: буфер Ratatui на CPU, рендеринг Parley/Vello на GPU, чтение RGBA в ЦП, копирование в изображение Bevy Bevy отображает это изображение в 2D и 3D, рисование на терминале выполняется с помощью GPU через Parley/Vello, но основное изображение терминала всё ещё проходит через память CPU, прежде чем Bevy его отобразит. Это мост, работающий на GPU, а не полностью резидентный путь к общей текстуре на GPU. Если проект позже перейдёт к полностью резидентному пути на GPU, это потребует специальной интеграции рендеринга Bevy, которая будет выполнять рендеринг в текстуру, принадлежащую Bevy, на устройстве рендеринга Bevy, вместо использования текущего моста обратного чтения.

«Всё, чего я хотел, — это создать эмулятор терминала с вращающейся крысой в качестве курсора. Вместо этого я, кажется, откусил кусок сыра побольше. Забавно, что это происходит не в первый раз, так что, похоже, я так и не усвоил урок в отношении своей одержимости терминалами. Должен сказать, создание эмулятора терминала (и его поддержка как проекта с открытым исходным кодом) — это сложно. Ratty — это просто забавный эксперимент, который я провёл, чтобы посмотреть, смогу ли я сделать терминал более мощным и удобным в использовании, а не чем‑то, что, как я ожидаю, люди будут использовать каждый день. Моя конечная цель с Ratty — исследовать возможности того, чем может быть терминал, и вдохновить на новые идеи и проекты в области терминалов. Я верю, что именно в таких экспериментах рождается творчество, и я надеюсь подтолкнуть к появлению новых идей для будущего терминалов», — подытожил автор решения.
