Skip to content

Repository files navigation

Superball Bounce Playground

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.

Qué es esto

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.

Física simulada

El sistema se modela como una secuencia de colisiones:

  1. Caída libre de ambas pelotas bajo gravedad g.
  2. Rebote contra el suelo de la pelota grande, según su coeficiente de restitución.
  3. 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).
  4. 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ámetros configurables

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)

Visualización

  • 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)

Stack

  • React (function components + hooks)
  • <canvas> + requestAnimationFrame para el loop físico
  • TailwindCSS para la UI

Instalación

npm install
npm run dev

Estructura sugerida

src/
├── 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

Motivación

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.

About

Playground interactivo que simula el efecto de rebote acoplado entre dos pelotas (superball bounce effect), con motor de física propio y parámetros ajustables en tiempo real.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages