Et si votre terminal passait à la 3D ? Découvrez Ratty !
Et si l’écran noir et plat de votre terminal prenait soudainement du volume, de la profondeur et laissait place à des modèles en trois dimensions ? C’est exactement le défi un peu fou qu’un développeur a décidé de relever.
En essayant de répondre à la question “Que se passerait-il si le terminal était en 3D ?”, ce créateur a donné naissance à Ratty. En quelques mots, il s’agit d’un émulateur de terminal accéléré par la carte graphique, capable d’afficher des objets 3D directement au milieu de vos lignes de commande. Construit avec les technologies Rust et Ratatui, ce projet puise sa source dans l’un des systèmes d’exploitation les plus mystiques de l’histoire informatique.
L’héritage fascinant de TempleOS
Pour comprendre Ratty, il faut d’abord se tourner vers le passé, et plus précisément vers TempleOS. Si vous n’avez jamais vu ce système d’exploitation atypique créé par Terry Davis, sachez qu’il ressemble à un véritable voyage psychédélique. La façon dont sa ligne de commande gère les ressources graphiques a marqué profondément le créateur de Ratty.
Contrairement à nos systèmes modernes où le terminal n’est que du texte, Terry Davis avait conçu un environnement où des sprites (images) et des modèles 3D pouvaient être insérés directement dans le code source ou la console, au même titre qu’un simple mot. La ligne de commande devenait ainsi l’interface visuelle absolue pour tout le système. L’idée de ramener cette magie a doucement fait son chemin.
De l’idée à la réalité
L’étincelle s’est produite lors de la préparation d’un podcast appelé “Terminal Tuesdays”. Pour illustrer l’émission, l’équipe cherchait une animation de terminal tournant en boucle. Un membre de la communauté a alors eu une idée de génie, utiliser la bibliothèque Rust Ratatui pour générer une interface de terminal en 2D, puis projeter cette image en temps réel sur un écran 3D animé grâce au moteur de jeu Bevy.
En voyant ce résultat bluffant, le développeur a eu un déclic. S’il était possible de rendre une interface 2D dans un espace 3D, l’inverse devait l’être aussi. Le but était de rendre des graphismes 3D directement dans un terminal 2D, fidèle à l’esprit de TempleOS. Le projet Ratty était né.
Plongée dans Ratty, un rongeur tridimensionnel
Dans l’univers de Ratty, l’expérience utilisateur est totalement réinventée. Le curseur clignotant classique cède sa place à un rat en 3D qui tourne sur lui-même en temps réel ! Et ce n’est que le début. Le terminal tout entier est en réalité une toile tridimensionnelle.
Il devient possible d’insérer des modèles 3D dans le texte. Pour prouver son concept, le développeur est allé jusqu’à extraire manuellement et avec une certaine pénibilité les objets 3D originaux enfouis dans le code source de TempleOS pour les afficher dans Ratty. En prime, l’émulateur supporte même le Kitty Image Protocol, permettant d’afficher des images 2D classiques de manière très ironique au milieu de toute cette 3D.
Comment ça marche sous le capot ?
L’architecture technique repose sur une séparation intelligente entre la logique pure du terminal et l’affichage visuel, découpée en trois étapes clés. Premièrement, l’application tourne dans un environnement classique (un pseudo-terminal) où les séquences d’échappement habituelles sont lues pour comprendre l’état de l’écran. Deuxièmement, la bibliothèque Ratatui prend ces données et génère une image textuelle plate, qui est ensuite transformée en texture par la carte graphique.
Troisièmement (c’est là que la magie opère), le moteur de jeu Bevy récupère cette texture et la place dans une véritable scène 3D. Le rat qui vous sert de curseur, par exemple, n’est qu’un objet 3D ordinaire placé dans cette scène, dont les coordonnées sont calquées sur l’emplacement actuel de votre texte. Vous préférez avoir un chien en 3D comme curseur ? Il suffit de modifier un fichier de configuration pour lui attribuer un nouveau modèle et ajuster sa vitesse de rotation.
Le protocole graphique Ratty (RGP)
Pour intégrer ces éléments 3D sans casser l’écosystème actuel, le créateur a dû concevoir un langage spécifique nommé Ratty Graphics Protocol. Ce système permet à une application de communiquer avec l’émulateur via des commandes cachées.
Le fonctionnement est d’une logique redoutable. L’application prévient le terminal qu’elle souhaite utiliser un objet 3D spécifique, puis elle le “fixe” à une ligne et une colonne précises de l’écran. Si le texte bouge, l’objet 3D se déplace avec lui. Pour rendre cela accessible aux autres devs, un module appelé ratatui-ratty a même été publié, permettant d’ajouter des rats tournoyants ou d’autres modèles 3D dans n’importe quelle application Rust en quelques lignes de code seulement.
Une expérience créative avant tout
Évidemment, faire tourner un moteur de jeu complet pour afficher un terminal demande beaucoup plus de ressources mémoire (environ 300 Mo de RAM) qu’un émulateur classique. Ratty n’a pas pour ambition de remplacer votre outil de travail quotidien de manière ultra-optimisée.
C’est avant tout une formidable preuve de concept, une déclaration d’amour à la créativité technique et à l’esprit décalé des pionniers de l’informatique. En bousculant les codes et en transformant la ligne de commande en un espace ludique et immersif, ce projet nous invite à repenser nos outils de tous les jours. Une belle démonstration qui prouve que l’innovation peut parfois naître d’une simple envie, avoir un rat en 3D comme curseur.



