Documentación
Essentia es un framework GPU-first para construir aplicaciones, no páginas ni juegos, cuya interfaz se renderiza íntegramente en la GPU. El DOM no es la superficie de render: es una capa de soporte para accesibilidad y eventos nativos.
Instalación
Los paquetes todavía no se publican a npm: se usan como workspaces de este monorepo, que resuelve npm.
"dependencies": {
"essentia-core": "*",
"essentia-styles": "*",
"essentia-ui": "*"
} Capas
Hay tres paquetes, y cada uno depende solo de los de abajo:
essentia-ui: layout y componentes de alto nivel, como GlassButton o Input.essentia-styles: primitivas visuales con shader, como Glass, Rect o Text.essentia-core: runtime, con EssentiaRoot, el engine y la cámara.
Coordenadas
La cámara es ortográfica y 1:1: una unidad de mundo es un píxel CSS. El origen está en el centro del canvas y la y crece hacia arriba.
Render on-demand
La escena se redibuja solo cuando algo cambia. En reposo cuesta 0 draws por frame.
Niveles de captura
Cada z distinta de un Glass es un nivel de captura: un render de escena más por frame, y una pirámide de blur si ese nivel tiene un vidrio con blur mayor que 0. El tope es de tres niveles en pantalla, porque un vidrio fuera de cámara no cuenta. Conviene poner a la misma z los vidrios que no se superponen.