ASTROFOX
Plugins

Creación de plugins

Crea y sirve un plugin externo de elemento visual o efecto para Astrofox.

Un plugin externo es un pequeño directorio que contiene un manifiesto astrofox.plugin.json y un shader de fragmentos o módulo JavaScript. Astrofox admite tres combinaciones:

TipoEntorno de ejecuciónFunción
DisplayShaderCapa 2D generativa mediante un shader de fragmentos
EffectShaderPaso de posprocesamiento sobre la escena actual
DisplayWorkerCapa de canvas JavaScript o Three.js en un entorno aislado

Los plugins de efectos solo admiten el entorno shader. Los efectos worker se rechazan.

Empieza con un ejemplo#

El repositorio de Astrofox incluye ejemplos completos en examples/plugins:

EjemploQué muestra
bass-glowEfecto shader con uniforms de propiedades
plasmaElemento shader con datos FFT
pulse-barsDibujo en canvas 2D dentro de un worker aislado
audio-orbThree.js mediante la biblioteca y el renderizador proporcionados por el anfitrión
cubesInstancias de Three.js con controles de cámara gestionados por el anfitrión

Copia el ejemplo más parecido a lo que necesitas, cambia su identificador con espacio de nombres, su etiqueta y su implementación, y ejecútalo localmente.

Elemento shader mínimo#

Crea esta estructura:

astrofox.plugin.json
display.frag

Astrofox añade automáticamente posición, rotación, escala, opacidad y soporte de reactores a los elementos visuales externos. Los elementos sin cámara también reciben la superposición de transformación del escenario. Los elementos worker con cámara usan el control de cámara.

Desarrolla localmente#

1
Instala las dependencias del código fuente de Astrofox

Clona el repositorio de Astrofox y ejecuta pnpm install una vez.

2
Inicia el servidor de plugins

Ejecuta pnpm dev:plugins desde el repositorio de Astrofox. Sirve todos los plugins de ejemplo con CORS habilitado en un puerto local disponible y muestra las URL de sus manifiestos.

3
Instala el manifiesto local

En Astrofox, selecciona Manage plugins en la barra de acciones e instala la URL http://localhost:…/astrofox.plugin.json que se ha mostrado.

4
Itera

Edita los archivos del plugin y usa Reload en Manage Plugins. Los plugins de localhost se marcan como instalaciones de desarrollo.

Publica#

Aloja el manifiesto y todos los archivos referenciados en el mismo origen accesible por HTTPS. Las referencias relativas se resuelven desde la URL del manifiesto. El servidor debe permitir que Astrofox obtenga los archivos mediante CORS.

Incrementa version en el manifiesto cuando publiques cambios. Las versiones instaladas se guardan en caché y su integridad queda fijada, por lo que los usuarios eligen cuándo actualizar.

Mantén estables las URL de los plugins y usa versionado semántico en el manifiesto. Los proyectos conservan la URL de origen y la versión del plugin, lo que facilita identificar dependencias que falten más adelante.

Continúa con Entornos de ejecución de plugins o usa la referencia del manifiesto.