Saltar al contenido
gioser
EN

tawasuyu · Llimphi

¿Qt, GTK, Flutter, Electron? No: un motor gráfico de cero, enteramente en Rust

Llimphi dibuja cada píxel de tawasuyu, incluso dentro de un sistema operativo que arranca sin Linux debajo. Por qué existe, cómo funciona y qué tan cierto es eso de «de cero».

5 min de lecturaPor Redacción Gioser

Cada vez que abres una aplicación, algo tiene que dibujar en tu pantalla cada botón, cada letra y cada ventana, decenas de veces por segundo. Ese algo es un motor gráfico, y casi nadie hace el suyo: la mayor parte del software del mundo se pinta con Qt, GTK, Flutter o Electron. Tawasuyu, la suite de software con nombres en quechua que se escribe en el taller de Gioser, decidió no pedir prestado.

Su motor se llama Llimphi, que en quechua quiere decir color, brillo, pigmento. Con él se dibuja la suite entera: el escritorio, el editor, el reproductor de video, los paneles de control y la interfaz del sistema operativo propio del proyecto. Hoy son 276 piezas de la suite las que se pintan con Llimphi.

Quince segundos y medio de Llimphi. Todo lo que se ve lo dibuja el motor, cuadro a cuadro: los controles, el cielo de cosmos, el pasillo de supay, el mundo voxel infinito y la mano.

Por qué no usar uno que ya existe

Hasta mayo de 2026, tawasuyu se dibujaba con GPUI, el motor del editor Zed. El 26 de mayo lo retiraron por completo, y la razón no fue capricho: el proyecto tiene su propio sistema operativo, wawa, que arranca directamente sobre el hardware, sin Linux debajo. Ningún motor existente sabe dibujar ahí.

Qt, GTK y Flutter dan por hecho que hay un sistema operativo convencional, con su gestor de ventanas, sus fuentes instaladas y su manejo de memoria. Llimphi se diseñó desde el primer día para pintar tanto en una ventana de escritorio como en la memoria de video de un kernel recién encendido. Esa exigencia obligó a escribirlo desde cero.

Qué quiere decir «de cero»

Conviene ser precisos, porque es la pregunta que hace todo programador. Llimphi no reinventó cada pieza. Igual que Flutter se apoya en Skia y GTK en Cairo, Llimphi usa cuatro proyectos libres de la comunidad de Rust para los trabajos más especializados. Lo que es propio es todo lo demás: la forma en que una aplicación describe su pantalla, cómo reacciona a cada clic, los componentes y los caminos para llegar a los píxeles.

TrabajoQuién lo hace
Hablar con la tarjeta de videowgpu · comunidad
Trazar curvas y rellenos con suavizadovello · comunidad
Calcular dónde va cada caja (flexbox y grid)taffy · comunidad
Componer texto: árabe, chino, emoji, ligadurasparley · comunidad
El ciclo de vida de cada aplicaciónLlimphi
Componentes, temas, animación, accesibilidadLlimphi
Pintar sin tarjeta de video, dentro del kernelLlimphi
Aislar una aplicación y pintar su dibujo desde afueraLlimphi

Las cuatro piezas de la comunidad también están escritas en Rust. Por eso el titular dice «enteramente en Rust» y lo sostiene.

Cómo piensa una aplicación de Llimphi

Llimphi sigue la arquitectura de Elm, un lenguaje conocido por sus aplicaciones que casi no fallan. La idea es simple: la aplicación no modifica la pantalla, sino que la describe. Cada vez que pasa algo, el motor recorre seis pasos:

  1. inputLlega un clic, una tecla o un gesto.
  2. updateLa aplicación calcula su nuevo estado.
  3. viewDescribe cómo debería verse con ese estado.
  4. layoutEl motor calcula la posición de cada caja.
  5. rasterConvierte esa descripción en píxeles.
  6. presentMuestra el cuadro terminado.

Como nadie toca la pantalla directamente, no hay dos partes del programa peleándose por el mismo botón. Es la misma razón por la que este estilo se volvió popular en la web con React, solo que acá corre nativo y sin navegador en el medio.

Un pincel, cuatro caminos hasta tu pantalla

La parte más inusual de Llimphi es que el mismo dibujo puede llegar a la pantalla por caminos completamente distintos, según dónde corra la aplicación. El equipo no se conformó con que «se vea parecido»: puso cada camino lado a lado y contó los píxeles.

Con tarjeta de video

El camino de todos los días en el escritorio.

Es la referencia contra la que se mide el resto.

Solo con el procesador

El que usa el kernel de wawa, que no tiene controlador de video.

Rellenos y capas idénticos bit a bit. El texto con acentos puede variar, porque el kernel solo trae tres fuentes.

Por mensaje

Una aplicación aislada no toca la pantalla: manda su dibujo como mensaje y el sistema lo pinta por ella.

0 píxeles de diferencia en las cuatro escenas de prueba.

Para teléfonos

Un camino que funciona en chips gráficos móviles sin cómputo general, como el Mali-G57.

Ningún píxel difiere en más de 1/255 sobre 19.200.

Que el camino «por mensaje» dé cero diferencia tiene una consecuencia práctica: una aplicación puede vivir encerrada, sin ningún permiso para tocar la pantalla, y aun así verse exactamente igual. Es seguridad que no se paga en apariencia.

Lo que ya trae

Lo que todavía no

Un motor que promete demasiado pierde la confianza de quien lo prueba, así que vale decir también lo que falta:

Cómo probarlo

Para quien programa en Rust, la entrada es un solo paquete:

cargo add llimphi

El paquete reúne el núcleo, los temas y el motor 3D. Para el resto, la mejor demostración es tawasuyu mismo: cada ventana de la suite es una aplicación de Llimphi.

Fondo