Files
vibe3_physics/ROADMAP.md
Sergio Valor 6980d4e876 Actualizar ROADMAP con mejoras propuestas para animaciones 3D
Cambios en Estado Actual:
- Marcar CYLINDER y WAVE_GRID con advertencias de mejora
- Actualizar Temas Visuales: 6/6 completadas
- Añadir sección de Sistemas de Presentación

Nueva sección: Mejorar Animaciones de Figuras 3D
- CYLINDER: Rotación multi-eje con tumbling periódico
- WAVE_GRID: Vista frontal paralela con pivoteo sutil
- Implementación técnica con rotation_mode y estados

Historial de Cambios:
- Documentar logros de sesión actual (MONOCHROME, LERP, hot-swap)
- Añadir sesiones anteriores para contexto

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 08:17:55 +02:00

4.3 KiB

ROADMAP - ViBe3 Physics

Estado Actual

Figuras 3D (8/8 Completadas)

  • Q - SPHERE (Esfera Fibonacci)
  • W - WAVE_GRID (Malla ondeante) - ⚠️ Necesita mejora de movimiento
  • E - HELIX (Espiral helicoidal)
  • R - TORUS (Toroide/donut)
  • T - CUBE (Cubo rotante)
  • Y - CYLINDER (Cilindro) - ⚠️ Necesita rotación multi-eje
  • U - ICOSAHEDRON (Icosaedro D20)
  • I - ATOM (Núcleo + órbitas)

Temas Visuales (6/6 Completadas)

  • SUNSET (Atardecer)
  • OCEAN (Océano)
  • NEON (Neón vibrante)
  • FOREST (Bosque)
  • RGB (Círculo cromático matemático)
  • MONOCHROME (Monocromo - blanco puro)

Sistemas de Presentación

  • Transiciones LERP entre temas (0.5s suaves)
  • Hot-swap de sprites con tecla N (ball.png ↔ ball_small.png)

Mejoras de Presentación 🎨

1. Mejorar Animaciones de Figuras 3D

Descripción: Añadir movimientos más dinámicos e interesantes a algunas figuras Prioridad: Media Estimación: 1.5 horas Detalles:

CYLINDER (Y):

  • Rotación actual: Solo eje Y (spin horizontal continuo)
  • Mejora propuesta: Rotaciones multi-eje con cambios periódicos
    • Rotación principal en eje Y (como ahora)
    • Cada 3-5 segundos: tumbling en eje X o Z durante 1-2 segundos
    • Efecto visual: "dar una vuelta" sobre otro eje ocasionalmente
    • Transiciones suaves con aceleración/desaceleración

WAVE_GRID (W):

  • Rotación actual: XY girando como esfera (confuso)
  • Mejora propuesta: Vista frontal con pivoteo sutil
    • Vista principal: Paralela a pantalla (mirando de frente)
    • Movimiento: Pivoteo en centro con esquinas hacia adelante/atrás
    • Ejemplo: esquina superior-derecha se aleja (Z-), inferior-izquierda se acerca (Z+)
    • Movimiento ondulatorio sincronizado: olas + pivoteo crea efecto "océano"
    • Opcional: Rotación completa ocasional (cada 10-15s) como transición

Implementación técnica:

  • Añadir rotation_mode_ y mode_timer_ a cada shape
  • Estados: NORMAL, TRANSITION, ALTERNATIVE
  • Interpolación suave entre modos de rotación

2. 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

3. 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

Historial de Cambios

2025-10-04 (Sesión 3)

  • Implementado tema MONOCHROME (6º tema)
  • Sistema LERP para transiciones suaves de temas (0.5s)
  • Hot-swap de sprites con tecla N (ball.png ↔ ball_small.png)
  • Tamaño dinámico de pelotas desde texture->getWidth()
  • Ajuste de posiciones inteligente al cambiar sprite
  • 📝 Añadidas mejoras propuestas para CYLINDER y WAVE_GRID

2025-10-03 (Sesión 2)

  • Implementadas 8 figuras 3D (SPHERE, WAVE_GRID, HELIX, TORUS, CUBE, CYLINDER, ICOSAHEDRON, ATOM)
  • Sistema polimórfico de shapes con herencia virtual

2025-10-02 (Sesión 1)

  • Migración desde vibe1_delta
  • Sistema de gravedad direccional (4 direcciones)
  • Coeficientes de rebote variables (0.30-0.95)
  • 5 temas de colores iniciales

Última actualización: 2025-10-04