Ratty: emulador de terminal con soporte para gráficos 3D en línea
(ratty-term.org)- Ratty es un emulador de terminal con renderizado por GPU que admite gráficos 3D en línea
- Incluye un cursor de ratón giratorio
- En el sitio se puede leer una entrada de blog
- En el sitio se puede ir a Descargar Ratty
- En el sitio se puede ir a Ver código fuente
2 comentarios
Comentarios de Hacker News
Veo que algunos aquí mencionaban usos de VR; hace tiempo experimenté un poco con una UI 3D superficial para desarrollo de software
La profundidad era superficial, de apenas unos cm hacia adentro de la pantalla de la laptop, para que incluso usándola todo el día hubiera menos fatiga visual por VAC, y se parecía más a dibujar agregando color y capas en 3D que a andar agitando los brazos por la habitación
El 3D se puede lograr con 3D tipo wobble, perspectiva creada con seguimiento de cabeza/ojos por webcam, estéreo con gafas de obturación, XR HMD, etc. El método wobble es el más fácil, pero se ve simpático y distrae; la perspectiva es más sutil y molesta menos
El par estéreo de una app puede ser algo como “proveer dos ventanas para ojo izquierdo/derecho” o “mostrar alternadamente las vistas izquierda y derecha con etiquetado/sincronización/polling”, y buena parte de esto requiere soporte del sistema de ventanas/gestor/escritorio. Conseguí bastante ventaja apilando Electron y X
Empujar texto al 3D es más divertido que solo colorearlo, y si aceptas una apariencia recargada, también puedes meter capas de información auxiliar separadas por profundidad. Si Emacs tuviera profundidad por carácter, sería algo que ni siquiera LispM tenía
Aun así, al explorar posibilidades para algo que en esencia no es 3D, como el texto de código, es mucho más fácil prototipar la UX con colores de primer plano/fondo, tipografías, Unicode y animación; y en el navegador basta con usar
divsuperpuestos y canvas 2D/3D transparentesCada carácter es un quad colocado en 3D y renderizado por instancias, así que puede manejar decenas de millones o más. Cada carácter se puede direccionar y modificar individualmente como si fuera un polígono distinto
Lo estoy usando para renderizar un repositorio completo de GitHub de una sola vez, y tengo tanto una versión nativa para Apple como una versión web. La versión web incluye los elementos básicos de una configuración tipo IDE, y me gustaría escuchar ideas u opiniones
https://ivanlugo.dev/ide
Parece que UNIX todavía sigue tratando de alcanzar la experiencia REPL de las workstations de Xerox o de una máquina Lisp típica
Ya había gráficos en línea en 1981
https://youtu.be/o4-YnLpLgtk?t=376
Para quien aún no la haya visto: https://www.youtube.com/watch?v=yJDv-zdhzMY
Me gusta esto. No hay razón para que una terminal deba soportar solo texto
Los notebooks de ciencia de datos muestran una dirección en la que la terminal podría evolucionar, y están pasando muchas cosas interesantes en este espacio. Kitty probablemente sea el innovador más agresivo aquí [1]
Aunque no estoy seguro de que exista una visión general
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
pyvistalogró usar los gráficos de Kitty para renderizar formas 3D arbitrarias directamente en la terminalEs un hack enorme, y no había otra manera de sacar rendimiento más que usar shm
https://git.theresno.cloud/panki/kglobe
Incluso podría superar el “mashup de haiku+macOS” que yo imaginaba como el futuro ideal de la computación
Normalmente prefiero recorrer el sistema de archivos desde la terminal en vez de usar un gestor de archivos a clics, y un
lsen cuadrícula que mostrara modelos 3D dentro de un directorio (STL/STEP, impresión 3D) con renderizado basado en terminal sería realmente útilPuntos extra si permitiera previsualizar el modelo y rotarlo para inspeccionarlo
No sé muy bien para qué lo usaría, pero el efecto visual fue divertido y también me gustó el diseño brutalista del sitio web. Me hizo recordar los buenos viejos tiempos
¿Esto se ve bastante bien, no?
Tengo una pregunta. Por capacidad de renderizado, parece que también podría manejar bien 2D; ¿lo entendí mal? Las soluciones existentes para obtener imágenes 2D de alta calidad o rasterización en la terminal por lo general han sido bastante malas. Me pregunto si esto podría ser mejor que otras soluciones, o si termina chocando con alguna limitación fundamental en algún punto
También me pregunto cómo funcionaría por ssh si hay aceleración por GPU
La terminal se está convirtiendo lentamente en un navegador web con todas las funciones
Sinceramente aún no lo sé, pero pienso averiguarlo pronto por mí mismo :D
https://github.com/fathyb/carbonyl
https://hyper.is/
Que Terry descanse en paz. Ojalá nunca sea olvidado
Y además, viendo este proyecto, parece que su espíritu sigue vivo :D
Esto me recordó cuando salió compiz y todos decían cosas como “mis ventanas están sobre un cubo” o “necesito ventanas gelatinosas”
Así que, como la clase de persona que soy, lo instalé de inmediato
Cambiar entre Windows y Ubuntu con todos esos efectos de animación de compiz se sentía como magia
El post del blog enlazado me hizo conocer el nuevo protocolo de glifos [1], y me pareció muy interesante
Justamente me había lamentado hace unos 6 meses de que no existiera algo así [2]
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
https://github.com/tikimcfee/glyph3d-js
Esto ya es posible hasta cierto punto con el protocolo gráfico de Kitty. Hice una demo de renderizado de gráficos 3D en Kitty [1]
En realidad, la parte importante que falta es vsync, y parece que ratty tampoco lo tiene
Si el renderizado no está sincronizado, el emulador de terminal puede leer el framebuffer mientras la aplicación está escribiendo en él, lo que puede producir artefactos visuales
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Opiniones en Lobste.rs
La landing page tenía olor a LLM, así que fui a revisar la entrada del blog y, efectivamente, así era
Si vamos a etiquetar el simple uso, habría que ponérsela al 90% de los proyectos, y la conversación además se desviaría del resultado en sí. No me gustaría que un hilo sobre una persona hackeando un emulador de terminal que muestra un ratón 3D terminara convertido en un debate ético
Metí algo de 3D para lograr un efecto wow rápido, pero creo que la meta debería ser repensar los fundamentos con cuidado. Aunque mi experimento fracase, me enorgullece haber hecho un producto con una perspectiva humana y para seres humanos
Claro, si ellos lo están haciendo puramente por diversión, eso en sí no tiene nada de malo
Por más veces que lo lea, sigo estando tremendamente confundido
Por un lado, como cuando veo sixel o kitty, no dejo de pensar “¿por qué?”. Montarle gráficos a una interfaz fundamentalmente orientada a texto se ve padre, pero no parece práctico. Claro, la misma objeción podría hacerse a curses o slang
Por otro lado, me da curiosidad si sería posible meter de alguna forma un protocolo/pantalla de renderizado 3D dentro de Emacs. No tengo idea de qué haría con eso, pero como este proyecto, suena realmente genial
Antes la gente hacía programas porque era divertido. ¿Ya no se acuerdan?
Me pasé una tarde/noche haciendo que mi framework CAD en Haskell emitiera objetos de una forma que Ratty pudiera leer
Para el tiempo que le metí, se veía con bastante potencial, pero sí me habría gustado que el comando de “colocación de objetos” fuera un poco más configurable. Esperaba que también se encargara por sí mismo de hacer espacio dentro de la salida del REPL y hasta del escalado de objetos
Además, está medio feo que Ratty no pueda cargar archivos fuera de la carpeta
assets. El scroll también parecía algo roto; seguido veía que los objetos desaparecían antes de lo debido. Aunque también pudo haber sido error mío