Pngine: WebGPU declarativo empaquetable en un PNG

Fuentes: Pngine: declarative WebGPU you can ship inside a PNG

Pngine es un formato declarativo y un entorno de ejecución para WebGPU basado en S-expressions, desarrollado durante dos años y medio por Hugo Daniel. Su objetivo es resolver un problema clásico: compartir configuraciones de WebGPU —shaders, pipelines, buffers y passes— en un único archivo portable, sin depender del lenguaje de programación de turno (TypeScript, JavaScript o Rust) ni de convenciones ad hoc.

El sistema ofrece tres capacidades principales. Primero, permite declarar y distribuir cableado de WebGPU (incluidos los módulos de shaders y la inicialización CPU/WASM) de forma multiplataforma: funciona en navegadores, en Rust con wgpu, y dispone de reproductores para Android e iOS. Segundo, valida la configuración declarada mediante reflexión sobre WGSL y comprobaciones contra la especificación, generando errores y avisos sin necesidad de un contexto WebGPU activo, e incluye un servidor LSP para ofrecer esa validación en tiempo real mientras se escribe. Tercero, exporta el conjunto a un único .html, un .zip o incluso un .png: el binario se embebe en un chunk extra del PNG mientras la imagen propiamente dicha sirve como vista previa visual.

La pieza clave es SJON, una herramienta previa del mismo autor para construir DSL validados automáticamente y entregados como datos estructurados. Pngine hereda de SJON la idea de que la representación del programa sea en sí misma dato legible y estructurado, lo que permite validar, reproducir, inspeccionar, minificar, serializar y generar código de forma homogénea y anticipada. Los shaders en WGSL se mantienen intactos, sin extensiones.

El código está liberado bajo CC0 y el proyecto se aloja en un repositorio self-hosted del autor, con seguimiento de issues en GitHub.