- docs/mapping.md: guia del projection mapping (activar, superficies con malla
para curvar, mascaras, editar arrastrando desde el panel, dónde se guarda,
limitaciones). Enlazada desde docs/README.md y el README principal.
- .gitignore: ignora data/pm-fijado/ (runtime de projectM).
El mapper funcional (esquinas + malla + mascaras, para Butterchurn/Hydra/
Shaders/Mezclador) ya estaba en main (Fase 1 y 2). La via de captura para
projectM nativo se retira por ahora; se retoma mas adelante.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Superficies con rejilla n x n (hasta 6x6): arrastra cualquier punto para
curvar, no solo las esquinas. Render perspectiva-correcto por celda
(homografia cuadrado->celda).
- Mascaras: cuadrilateros negros que tapan zonas / recortan derrames de luz.
- Editable desde la previsualizacion del panel (raton/tactil) y el escenario:
arrastrar puntos, +/- malla para subdividir, borrar por lista.
- set_mapping acepta "masks"; persiste en data/mapping.json (ignorado en git).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Projection mapping editable desde el navegador, sin herramientas externas:
- web/stage/mapper.js (nuevo): compositor WebGL que texturiza el motor activo
sobre superficies deformables (homografia por vertice: keystone correcto).
- Editor con raton en el escenario (crear, arrastrar esquinas, mover, borrar)
y previsualizacion arrastrable en el panel (raton/tactil) para editar desde
el movil sin tocar la ventana de visuales.
- Backend: estado "mapping" + evento set_mapping, persistido en data/mapping.json
(ignorado en git). Seccion "Mapping" en el panel + texto de ayuda.
- Solo motores web (butterchurn/hydra/shaders/mixer); projectM no se mapea.
- .gitignore: excluye config de runtime (mapping.json, pm-favoritos.json).
Incluye ademas trabajo en curso previo sin commitear (server.py, stage.js,
panel.js/css, ayuda.json, hydra-sketches.json, problemas.md,
start-projectm.sh), subido junto a peticion del autor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fosfeno-launcher.sh: arranca el servidor desacoplado, abre las visuales
(ventana Chromium --app) y el panel, pensado para lanzarse con un icono
(.desktop) sin terminal. `--stop` cierra servidor y ventana. Complementa a
./fosfeno (que sigue siendo el modo terminal, en primer plano con Ctrl+C).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Anade docs/assets/panel.png (captura del panel de control) al README y a uso.md como ejemplo del panel, y docs/assets/demo.mp4 (video corto de FOSFENO en marcha) al README. El video se recomprimio de 80 MB a 4,7 MB para no inflar el repositorio.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mueve la imagen de visuales (MilkDrop) justo debajo del titulo y la agranda. Todas las imagenes del README van centradas con div align=center y a mayor tamano (banner, visuales, Hydra y Raspberry Pi 5).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Coloca las imagenes de Hydra, MilkDrop y Raspberry Pi 5 dentro del README, que es lo que Forgejo muestra como descripcion bajo el listado de archivos. Actualiza el subtitulo del banner: 'para raspberry pi y linux'.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Anade tres imagenes a docs/assets/ y las enlaza en la documentacion: raspberry-pi-5.jpg en requisitos.md, y milkdrop.jpg e hydra.png en uso.md, junto a la descripcion de los motores. Actualiza docs/assets/README.md con la lista de imagenes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
install.sh --laptop ahora detecta el gestor de paquetes (apt, dnf, pacman o zypper) e instala las dependencias en Debian/Ubuntu/Mint, Fedora, Arch/Manjaro y openSUSE; en el resto avisa de los 5 paquetes a instalar a mano. En portatil no se compila projectM (opcional). Panel: titulo superior mas grande y cada titulo de tarjeta mas grande y en fuente Xirod; en pantalla ancha el panel ocupa el 94% (hasta 1600px) para aprovechar el portatil. Audio: nuevo boton 'Aplicar microfono' que reconecta la captura desde el panel (evento reacquire_audio); el microfono integrado del portatil se capta como entrada por defecto.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Anade la fuente Xirod (web/panel/fonts/xirod.otf, de 1001fonts) para el titulo del panel, tanto en Raspberry como en portatil. Titulos centrados en la cabecera y en cada tarjeta. En pantalla ancha el panel pasa a dos columnas para aprovechar el espacio del portatil (Visuales/Audio/Sensibilidad a la izquierda, Motor y controles a la derecha); en movil sigue en una sola columna, igual que antes. El README explica el uso en ordenador con diagrama, comandos y tabla de diferencias, recalcando que en ordenador no se usa el modo kiosko.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Butterchurn publica sus builds en lib/ (butterchurn.min.js y butterchurnPresets.min.js), no en dist/base.min.js. El instalador ahora busca los ficheros por nombre con find_copy, robusto a cambios de carpeta entre versiones. Ademas el escenario inicia cada motor por separado: si una libreria falta, los demas siguen funcionando (antes un fallo de Butterchurn impedia que Hydra se inicializara, de ahi el error 'src is not defined').
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
El paquete 'npm' de Debian entra en conflicto con el 'nodejs' de NodeSource, lo que hacia fallar toda la instalacion apt. Ahora, si 'node' y 'npm' ya existen, se respetan; solo se instalan desde apt cuando faltan.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
En Debian/Ubuntu/Mint actuales el paquete se llama 'chromium'; en Raspberry Pi OS 'chromium-browser'. Antes 'apt install' fallaba entero en distros con el nombre nuevo. Ahora se instala el que exista. El servidor y el lanzador ya manejaban ambos nombres en tiempo de ejecucion.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Anade 'bash install.sh --laptop' y el lanzador './fosfeno' para correr FOSFENO en portatiles Debian/Ubuntu/Mint sin Raspberry Pi: puerto 8080, sin arranque automatico ni cambios en el sistema. El servidor admite las variables FOSFENO_PORT y FOSFENO_NO_KIOSK. Nueva documentacion en docs/portatil.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Primera version. Cinco motores (projectM, Butterchurn, Hydra, Shaders GLSL y mezclador VJ con camara y video), panel de control web, deteccion de BPM propia, pantalla de conexion con codigo QR, instalador robusto para Raspberry Pi 4 y 5 y documentacion completa en docs/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>