- Ratty est un émulateur de terminal avec rendu GPU prenant en charge les graphiques 3D en ligne
- Il inclut un curseur de souris rotatif
- Sur le site, vous pouvez lire un article de blog
- Sur le site, vous pouvez accéder à Télécharger Ratty
- Sur le site, vous pouvez accéder à Voir le code source
2 commentaires
Réactions sur Hacker News
Certains parlaient ici d’usages en VR, et j’ai déjà un peu bricolé des interfaces 3D peu profondes pour le développement logiciel
La profondeur restait faible, de l’ordre de quelques centimètres à l’intérieur de l’écran du portable, afin de limiter la fatigue visuelle VAC même après une journée entière d’utilisation, et cela ressemblait davantage à dessiner avec des couleurs et des couches en 3D qu’à agiter les bras dans une pièce
La 3D peut se faire via wobble 3D, perspective créée par suivi de la tête/des yeux à la webcam, stéréo avec lunettes à obturateur, XR HMD, etc. La méthode wobble est la plus simple, mais elle est mignonne et distraite, tandis que la perspective est plus subtile et moins gênante
La paire stéréo de l’application peut consister soit à « fournir deux fenêtres œil gauche/œil droit », soit à « afficher alternativement les vues gauche/droite avec étiquetage/synchronisation/polling », et une bonne partie de cela nécessite le support du système de fenêtres/gestionnaire/bureau. J’ai obtenu pas mal de levier avec une pile Electron + X
Faire sortir le texte en 3D est plus amusant que la simple colorisation, et, si on accepte un aspect chargé, on peut aussi ajouter des couches d’informations auxiliaires séparées en profondeur. Si Emacs avait une profondeur par caractère, ce serait quelque chose que même la LispM n’avait pas
Cela dit, quand on explore les possibilités d’éléments qui ne sont pas intrinsèquement 3D, comme le texte de code, il est bien plus simple de prototyper l’UX avec des couleurs de premier plan/arrière-plan, des polices, de l’Unicode et des animations ; et dans un navigateur, il suffit d’utiliser des
divsuperposées et des canvas 2D/3D transparentsChaque caractère est un quad placé en 3D et rendu par instanciation, ce qui permet d’en gérer des dizaines de millions ou plus. Chaque caractère peut être adressé et modifié individuellement comme n’importe quel autre polygone
Je l’utilise pour rendre un dépôt GitHub entier d’un seul coup, et il existe en deux versions, une version Apple native et une version web. La version web contient les éléments de base d’une configuration IDE, et j’aimerais avoir des retours ou des idées
https://ivanlugo.dev/ide
UNIX semble encore essayer de rattraper les stations de travail Xerox ou les machines Lisp classiques en matière d’expérience REPL
Il y avait déjà des graphiques inline en 1981
https://youtu.be/o4-YnLpLgtk?t=376
Pour ceux qui ne l’ont pas encore vue : https://www.youtube.com/watch?v=yJDv-zdhzMY
J’aime bien. Il n’y a aucune raison pour qu’un terminal ne doive prendre en charge que du texte
Les notebooks de data science montrent une direction possible de l’évolution du terminal, et il se passe beaucoup de choses intéressantes dans ce domaine. Kitty est probablement l’innovateur le plus agressif ici [1]
En revanche, je ne sais pas s’il existe une vision d’ensemble
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
pyvistaa réussi à utiliser les graphiques de Kitty pour rendre directement des formes 3D arbitraires dans le terminalC’est un énorme hack, et il n’y avait pas d’autre moyen d’obtenir des performances correctes qu’en utilisant shm
https://git.theresno.cloud/panki/kglobe
Cela pourrait même dépasser le futur de l’informatique que j’imaginais idéalement comme un « mashup haiku+macOS »
Je préfère généralement parcourir le système de fichiers dans le terminal plutôt que cliquer dans un gestionnaire de fichiers, donc un
lsen grille qui afficherait les modèles 3D (STL/STEP, impression 3D) d’un répertoire via un rendu dans le terminal serait vraiment utileBonus si on peut prévisualiser et faire pivoter les modèles
Je ne sais pas trop à quoi ça servirait, mais l’effet visuel était plaisant et j’ai aussi aimé le design brutaliste du site web. Ça m’a rappelé de bons vieux souvenirs
Ça a l’air plutôt bien, non ?
J’ai une question. Vu ses capacités de rendu, il semble aussi pouvoir bien gérer la 2D, sauf erreur de ma part. Les solutions existantes pour obtenir des images 2D de haute qualité ou de la rasterisation dans un terminal ont en général laissé à désirer. Je me demande si ça pourrait être meilleur que les autres approches, ou si ça finit par buter sur une limite fondamentale quelque part
Et si c’est accéléré par GPU, je me demande aussi comment ça se passe via ssh
Le terminal est lentement en train de devenir un navigateur web complet
Honnêtement je ne sais pas encore, mais je compte bien le découvrir moi-même bientôt :D
https://github.com/fathyb/carbonyl
https://hyper.is/
Repose en paix, Terry. Qu’on ne l’oublie jamais
Cela dit, à voir ce projet, on dirait que son esprit continue de vivre :D
En voyant ça, j’ai repensé à l’époque où compiz venait de sortir et où tout le monde disait « mes fenêtres sont sur un cube » ou qu’il fallait absolument des fenêtres qui tremblent
Donc, fidèle au personnage, je l’ai installé immédiatement
Basculer entre Windows et Ubuntu avec tous les effets d’animation de compiz avait quelque chose de magique
Le billet de blog lié m’a fait découvrir le nouveau protocole de glyphes [1], ce que j’ai trouvé très intéressant
Il y a environ six mois, je regrettais justement qu’il n’existe rien de ce genre [2]
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
https://github.com/tikimcfee/glyph3d-js
C’est déjà possible dans une certaine mesure avec le protocole graphique de Kitty. J’ai créé une démo de rendu graphique 3D dans Kitty [1]
En pratique, la grosse pièce manquante est la vsync, et il semble que ratty ne l’ait pas non plus
Si le rendu n’est pas synchronisé, l’émulateur de terminal peut lire le framebuffer pendant que l’application y écrit, ce qui peut produire des artefacts visuels
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Avis sur Lobste.rs
La landing page avait une odeur de LLM, donc je suis allé vérifier l’article de blog, et sans surprise, c’était bien le cas
Si on devait taguer le simple fait d’en utiliser, il faudrait le mettre sur 90 % des projets, et la discussion s’éloignerait du résultat en lui-même. Je n’ai pas envie que le fil sur une personne qui a bricolé un émulateur de terminal affichant une souris 3D dérive vers un débat éthique
J’ai moi-même ajouté un peu de 3D pour un effet waouh rapide, mais je pense que l’objectif devrait être de repenser les fondamentaux avec soin. Même si mon expérience échoue, je suis fier d’avoir créé un produit pensé par des humains, avec un point de vue humain
Bien sûr, s’ils font simplement ça pour le plaisir, ce n’est pas un problème en soi
J’ai beau le relire plusieurs fois, je reste extrêmement perplexe
D’un côté, comme avec sixel ou kitty, je n’arrête pas de me demander « pourquoi ? ». Ajouter des graphismes à une interface fondamentalement orientée texte, c’est cool, mais ça ne me paraît pas très pratique. Cela dit, on pourrait faire la même objection à curses ou slang
D’un autre côté, je me demande s’il y aurait moyen d’intégrer d’une façon ou d’une autre un protocole / affichage de rendu 3D dans Emacs. Je n’ai absolument aucune idée de ce qu’on en ferait, mais comme ce projet, ça aurait l’air vraiment cool
À une époque, on écrivait des programmes parce que c’était amusant. Tu te souviens ?
J’ai passé une soirée à faire en sorte que mon framework CAD en Haskell produise des objets dans un format que Ratty peut lire
Pour le temps investi, ça semblait assez prometteur, mais j’aurais aimé que la commande de « placement d’objet » soit un peu plus configurable. J’aurais voulu qu’elle gère elle-même la création d’espace dans la sortie du REPL et même le redimensionnement des objets
Je trouve aussi un peu dommage que Ratty ne puisse pas charger des fichiers en dehors du dossier assets. Le défilement semblait aussi légèrement cassé : j’ai souvent vu des objets disparaître alors qu’il était encore trop tôt pour qu’ils disparaissent. Cela dit, c’est peut-être moi qui faisais quelque chose de travers