A no-dependency browser simulation for a Half Atwood-style lab:
- Part 1: cart only
- Part 2: cart + friction pad
Students can run trials, manually select graph windows, compute mean force and acceleration slope, add accepted trials to a table, build force-vs-acceleration fits, and export CSV/PNG artifacts.
python3 -m http.server 8000Open http://localhost:8000.
npm testindex.html- UI shellstyles.css- layout + stylingsrc/app.js- orchestration and event wiringsrc/physics.js- physics equations and motion threshold logicsrc/signals.js- synthetic time-series generationsrc/regression.js- averaging and linear regression utilitiessrc/graphs.js- canvas plotting + manual window selectionsrc/export.js- CSV and PNG exportssrc/presets.js- teacher presets and scenario metadatasrc/state.js- application state storetests/*.test.js- Node built-in test runner coverage
This is a static app with no build step. Deploy the repo root from the main branch in GitHub Pages settings.