A reusable SceneryStack simulation template for one or N screens, built with SceneryStack, Vite 8, TypeScript 7, and Biome 2.
- SceneryStack scaffold with model/view separation (
rename+scaffold-screensfor one or N screens) - English, Spanish, and French localization via
StringManager - Default and projector color profiles
- Progressive Web App (installable, offline-capable)
- Git hooks for Biome pre-commit checks
- Shared GitHub Actions CI via
OpenPhysics/Baton
npm install
npm run icons # generate PNG icons from public/icons/icon.svg
npm start # dev server → http://localhost:5173| Command | Description |
|---|---|
npm start / npm run dev | Start Vite dev server |
npm run build | Type-check + production build → dist/ |
npm run preview | Preview the production build locally |
npm test | Run Vitest unit tests (includes memory-leak suite) |
npm run test:fuzz | Optional Playwright fuzz smoke (?fuzz, default 15s) |
npm run test:fuzz:quick | Shorter fuzz smoke (10s) |
npm run check | TypeScript type check |
npm run lint | Biome lint check |
npm run format | Auto-format all files |
npm run fix | Lint + auto-fix |
npm run icons | Regenerate PNG icons from public/icons/icon.svg |
npm run rename | Sim-level fork/rename (--id, --name) |
npm run scaffold-screens | Emit N fleet-named screen packages from sim-screen/ (--shared-model optional) |
npm run release | check && lint && build, then version patch + push tags |
npm run clean | Remove dist/ |
npm run release intentionally skips npm test — template tests are samples. Real sims should append && npm test (before the version bump) so a release cannot ship a failing suite.
New sims start at version: "0.0.0" in package.json. Bump only when cutting a release (for example npm version patch and a matching git tag). Keep name in kebab-case; it is separate from the SceneryStack sim identifier in src/init.ts.
| Tool | Version | Purpose |
|---|---|---|
| SceneryStack | ^3.0.0 | Simulation framework |
| Vite | ^8 | Build tool + dev server |
| TypeScript | ^7 | Type-safe JavaScript |
| Biome | ^2.5 | Linting + formatting |
| vite-plugin-pwa | ^1 | PWA + service worker |
GNU Affero General Public License v3.0 — see OpenPhysics org license.
See OpenPhysics contributing guidelines. Report bugs via GitHub Issues; use org issue templates.