Simulación interactiva del efecto de rebote acoplado (superball bounce effect): al dejar caer dos pelotas alineadas verticalmente —una grande tipo basketball abajo, una pequeña tipo superball encima— la pelota pequeña sale disparada mucho más alto de lo normal por la transferencia de momento entre ambas.
Un playground físico-visual donde podés alterar los parámetros del experimento en tiempo real (masas, alturas, coeficientes de restitución, alineación, impulso inicial) y ver cómo cambia el resultado: la trayectoria de las pelotas, la altura máxima de rebote y el factor de amplificación de energía.
No es una caja negra: el motor de física está implementado a mano (sin librerías externas de físicas) para que la lógica sea transparente y fácil de modificar.
El sistema se modela como una secuencia de colisiones:
- Caída libre de ambas pelotas bajo gravedad
g. - Rebote contra el suelo de la pelota grande, según su coeficiente de restitución.
- Colisión pelota grande → pelota pequeña, resuelta con conservación de momento y energía (colisión elástica/inelástica 1D, ponderada por un coeficiente de restitución propio).
- Repetición del ciclo hasta que la energía del sistema cae por debajo de un umbral.
Si hay desalineamiento horizontal entre las pelotas, el choque se resuelve sobre la normal de contacto, permitiendo trayectorias en ángulo.
| Parámetro | Descripción |
|---|---|
| Masa pelota grande (M) / pequeña (m) | Relación de masas del sistema |
| Radio de cada pelota | Tamaño visual y punto de contacto |
| Altura inicial de caída (h) | Punto de partida de la simulación |
| Coef. de restitución suelo | Energía retenida en el rebote contra el piso |
| Coef. de restitución entre pelotas | Energía retenida en el choque M → m |
| Desalineamiento horizontal | Offset inicial entre los centros de las pelotas |
| Modo de lanzamiento | Caída libre o impulso inicial hacia abajo (por pelota) |
| Gravedad (g) | Permite simular otros escenarios (ej. Luna) |
- Animación en
<canvas>con estela de trayectoria - Vectores de velocidad en tiempo real sobre cada pelota
- Marca de altura máxima alcanzada vs. altura inicial
- Panel de métricas en vivo: velocidades, energía cinética total, factor de amplificación
- Gráfico en tiempo real de altura/velocidad vs. tiempo
- Controles de reproducción: reiniciar, pausar/reanudar, velocidad de simulación (0.25x–1x)
- React (function components + hooks)
<canvas>+requestAnimationFramepara el loop físico- TailwindCSS para la UI
npm install
npm run devsrc/
├── physics/ # Motor de física (colisiones, integración, fórmulas)
├── components/
│ ├── Canvas.tsx # Render de la simulación
│ ├── Controls.tsx # Sliders y controles de parámetros
│ ├── Metrics.tsx # Panel de métricas en vivo
│ └── Chart.tsx # Gráfico de altura/velocidad vs tiempo
└── App.tsx
Proyecto educativo/visual para explorar de forma intuitiva cómo la transferencia de momento entre masas distintas puede amplificar dramáticamente la energía de rebote de un objeto pequeño — un fenómeno de física clásica poco intuitivo hasta que se ve en acción.