1 points par GN⁺ 3 시간 전 | 2 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2 시간 전
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 div superposées et des canvas 2D/3D transparents

    • Il existe un système de rendu de texte 3D basé sur des glyphes entièrement fonctionnel, mais c’est difficile d’amener les gens à y jeter un œil
      Chaque 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

    • J’ai parfois l’impression qu’on continue à courir après une UX déjà résolue dès la Mother of all Demos de 1968
      Pour ceux qui ne l’ont pas encore vue : https://www.youtube.com/watch?v=yJDv-zdhzMY
    • Ce n’est pas de la 3D
    • Ou alors il y a aussi TempleOS
  • 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/

    • Il n’y a pas vraiment besoin d’évolution. Avec mon projet euporie [1], on peut déjà utiliser des notebooks de data science entièrement dans le terminal, avec sortie d’images graphiques, HTML, LaTeX, etc.
      [1] https://github.com/joouha/euporie
    • pyvista a réussi à utiliser les graphiques de Kitty pour rendre directement des formes 3D arbitraires dans le terminal
      C’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
    • Terry A Davis l’avait déjà fait. C’était aussi fou à l’époque que ça l’est aujourd’hui
    • Si on mélange ces graphiques 3D avec des notebooks de data science, des LLM locaux, un harnais de codage intégré et de la visibilité sur ses données personnelles, on pourrait obtenir quelque chose d’absurdement formidable
      Cela pourrait même dépasser le futur de l’informatique que j’imaginais idéalement comme un « mashup haiku+macOS »
    • Je me demande si ce genre de chose pourrait aussi fonctionner pour les vignettes dans le terminal
      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 ls en grille qui afficherait les modèles 3D (STL/STEP, impression 3D) d’un répertoire via un rendu dans le terminal serait vraiment utile
      Bonus 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 protocole graphique de Kitty est plutôt bon, et Ghostty l’implémente entièrement
    • Il existe déjà pas mal d’émulateurs de terminal basés sur le GPU. C’est ce que tu cherches ?
  • Le terminal est lentement en train de devenir un navigateur web complet

    • Le mème « ça l’a toujours été » ne va pas tarder à sortir. Plus sérieusement, le but d’un outil est de faire avancer le travail, donc au final la question est de savoir si cet outil peut être utile
      Honnêtement je ne sais pas encore, mais je compte bien le découvrir moi-même bientôt :D
    • C’est pourtant ce que tu voulais…
      https://github.com/fathyb/carbonyl
    • Ou alors le terminal est peut-être déjà un navigateur web complet
      https://hyper.is/
    • C’est effectivement l’impression que ça donne
  • 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

    • On peut toujours faire ça dans KDE Plasma. J’active encore les fenêtres qui tremblent parce que c’est cool
    • Je me souviens de cette belle époque. J’avais une face du cube compiz dédiée à un Windows XP lancé dans VirtualBox
      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

    • D’accord. Les glyphes sont la clé
      https://github.com/tikimcfee/glyph3d-js
    • C’est une bonne idée. Contrairement à certains projets de terminal vus récemment, cela traite le problème sans réinventer complètement la notion de ce qu’un terminal peut faire
  • 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

 
GN⁺ 3 시간 전
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

    🐁 : « Dans quelle mesure l’IA a-t-elle participé à ce travail ? »

    Pour ma position sur la programmation assistée par IA, voir cet article de blog
    En bref, oui, elle est intervenue, mais certainement pas au point que je considère cela comme un travail « bricolé à l’arrache »
    C’est bien, mais cette réponse ne résout pas la tendance de l’IA générative à plagier des travaux existants sans attribution, ni d’autres problèmes éthiques

    • À mon avis, ce tag conviendrait mieux aux discussions sur le vibe coding qu’à l’usage de l’IA lui-même
      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
    • Vous pensez qu’il faudrait créditer Terry Davis (Temple OS) ainsi que Jeff Reeder, Jim Bergman et Mark Hayton (RIPscript) comme source d’inspiration de l’idée ?
    • Au début, je me suis dit : « Sympa, on dirait qu’une concurrence amicale se met en place », mais plus j’ai creusé, plus mon sourire s’est transformé en déception
      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
    • Je me demande quelle partie de la landing page donne cette impression de LLM. À mes yeux, à part le fond noir, elle ressemble presque à toutes les landing pages qu’on voit depuis 5 à 10 ans
  • 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

  • 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