An interactive physics simulation demonstrating Newton's Laws using a rocket sled. Students explore force, friction, air drag, and their effects on motion.
- Applied Force Control: Left/right thrust buttons with keyboard support (Arrow keys, A/D)
- Friction Toggle: Enable/disable surface friction with visual feedback
- Air Drag Toggle: Enable/disable air resistance with visual feedback
- Real-Time Force Diagram: Dynamic arrows showing Fapp, Fnorm, Fgrav, Ffrict, and Fair
- Speedometer: Visual velocity display with "red zone" indicator
- Canvas LMS Ready: Embed mode support with
?embed=1parameter
- Open
index.htmlin a modern web browser, or - Run a local server:
npx http-server . -p 8080 - Visit
http://localhost:8080
This simulation supports the RocketSledder student handout, covering:
- Effect of applied force on velocity (with friction off)
- Motion without horizontal forces (inertia/coasting)
- Stopping a moving sled (reversing force)
- Force diagrams for multiple scenarios
- Resistance force behavior (friction & air drag direction)
- Inertia demonstration (thrust reversal doesn't instantly reverse direction)
<iframe
src="https://vladimirlopez.github.io/rocket-sled-simulation/index.html?embed=1"
width="100%"
height="700"
style="border:0;"
loading="lazy"
allowfullscreen
></iframe>| Key | Action |
|---|---|
| ← / A | Apply leftward force |
| → / D | Apply rightward force |
| Space | Turn off thrust |
| R | Reset simulation |
Rocket Sled/
├── index.html # Main HTML file
├── README.md # This file
├── LICENSE # MIT License
├── RocketSledder.pdf # Student handout
├── .nojekyll # GitHub Pages configuration
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions deployment
└── src/
├── css/
│ └── app.css # Styling
└── js/
├── physics.js # Newton's Laws calculations
├── visualization.js # p5.js rendering
└── main.js # Application controller
This site is automatically deployed to GitHub Pages via GitHub Actions.
- Trigger: Every push to the
mainbranch - Workflow:
.github/workflows/deploy.yml - URL: https://vladimirlopez.github.io/rocket-sled-simulation/
You can manually trigger a deployment from the GitHub Actions tab by running the "Deploy to GitHub Pages" workflow.
- GitHub Pages must be enabled in repository settings
- Pages source should be set to "GitHub Actions"
MIT License - Copyright (c) 2025 Vladimir Lopez
- Inspired by The Physics Classroom Rocket Sled Interactive
- Visualization powered by p5.js
- Design patterns from the Projectile Motion Simulator