# ROADMAP - ViBe3 Physics ## Estado Actual ✅ ### Figuras 3D (8/8 Completadas) - ✅ Q - SPHERE (Esfera Fibonacci) - ✅ W - WAVE_GRID (Malla ondeante) - ✅ E - HELIX (Espiral helicoidal) - ✅ R - TORUS (Toroide/donut) - ✅ T - CUBE (Cubo rotante) - ✅ Y - CYLINDER (Cilindro) - ✅ U - ICOSAHEDRON (Icosaedro D20) - ✅ I - ATOM (Núcleo + órbitas) ### Temas Visuales (5/6) - ✅ SUNSET (Atardecer) - ✅ OCEAN (Océano) - ✅ NEON (Neón vibrante) - ✅ FOREST (Bosque) - ✅ RGB (Círculo cromático matemático) - ⏳ MONOCHROME (Monocromo - próximo) --- ## Mejoras de Presentación 🎨 ### 1. ⏳ Tema MONOCHROME **Descripción:** Tema monocromo con fondo negro degradado y sprites blancos sin colorear **Prioridad:** Alta **Estimación:** 30 minutos **Detalles:** - Fondo negro degradado (similar a NEON) - Sprites base color blanco (255, 255, 255) - Solo modulación de depth (brillo), sin cambio de hue - Tecla KP_6 para selección directa ### 2. ⏳ Cambio de Tema con LERP **Descripción:** Transición suave entre temas sin reiniciar escenario **Prioridad:** Alta **Estimación:** 1 hora **Detalles:** - Interpolación lineal (LERP) de colores RGB - Transición gradual de 0.5-1.0 segundos - Mantener pelotas existentes, solo cambiar colores - Fondo degradado también con LERP - No llamar a `initBalls()`, solo actualizar colores ### 3. ⏳ Cambio de Textura en Caliente **Descripción:** Cambiar sprite/textura sin resetear física **Prioridad:** Media **Estimación:** 1 hora **Detalles:** - Sistema de gestión de múltiples texturas - Cargar texturas al inicio (ball.png, ball_small.png, etc.) - Actualizar collision box dinámicamente según tamaño - Tecla dedicada (ej: `N`) para ciclar texturas - Mantener física actual, solo cambiar render ### 4. ⏳ Modo DEMO (Auto-play) **Descripción:** Modo demostración automática con acciones aleatorias **Prioridad:** Alta **Estimación:** 1.5 horas **Detalles:** - Toggle con tecla `D` - Timer que ejecuta acciones cada 3-8 segundos - Acciones: cambiar gravedad, activar figura, cambiar tema, impulso - Secuencia pseudo-aleatoria pero visualmente coherente - Pausable con cualquier tecla de usuario - Indicador visual "DEMO MODE" en pantalla ### 5. ⏳ Sistema de Release **Descripción:** Empaquetado para distribución standalone **Prioridad:** Media **Estimación:** 30 minutos **Detalles:** - Crear carpeta `release/` - Script Python `pack_resources.py` para empaquetar - Incluir SDL3.dll - Incluir icon.png (si existe) - Empaquetar `data/` en archivo .dat o .zip - Target `make release` en Makefile - README.txt con instrucciones --- ## Futuras Mejoras (Ideas) ### Performance - [ ] Spatial partitioning para colisiones ball-to-ball - [ ] Level-of-detail para 100K+ pelotas - [ ] GPU compute shaders para física masiva ### Efectos Visuales - [ ] Trails (estelas de movimiento) - [ ] Heatmaps de velocidad/energía - [ ] Bloom/glow para sprites ### Física Avanzada - [ ] Colisiones entre partículas - [ ] Viento (fuerza horizontal) - [ ] Campos magnéticos (atracción/repulsión) - [ ] Turbulencia ### Interactividad - [ ] Mouse: click para aplicar fuerzas - [ ] Mouse: drag para crear campos - [ ] Mouse wheel: ajustar intensidad --- **Última actualización:** 2025-10-04