Skip to content

Repository files navigation

Solar System Models

CI

A two-screen SceneryStack port of the NAAP Solar System Models lab: Ptolemaic System and Planetary Configurations. Built with Vite 8, TypeScript 7, and Biome 2.

Features

  • Two screens with complete models and wired views (not scaffolding)
  • English, French, and Spanish localization via StringManager
  • Default and projector color profiles
  • Progressive Web App (installable, offline-capable)
  • Model-layer Vitest coverage
  • Flash decompile workflow (npm run decompile) for NAAP .swf reference
  • Git hooks for Biome pre-commit checks
  • Shared GitHub Actions CI via OpenPhysics/Baton

NAAP reference sources

Upstream Flash / AIR / React NAAP sources live in the sibling Baseline repo under Astronomy/ (see baselines.json). Clone Baseline with the fleet bootstrap, then:

(cd ../Baseline && ./scripts/fetch-baselines.sh)

npm run decompile reads .swf files from ../Baseline/Astronomy/flash-animations and writes ActionScript into the sim-local gitignored NAAP/decompiled/ (requires Java; one-time npm run decompile -- --setup).

Quick Start

npm install
npm run icons # generate PNG icons from public/icons/icon.svg
npm start # dev server → http://localhost:5173

Scripts

CommandDescription
npm start / npm run devStart Vite dev server
npm run buildType-check + production build → dist/
npm run build:singleSingle self-contained dist/index.html
npm run previewPreview the production build locally
npm run checkTypeScript type check
npm run lintBiome lint check
npm run formatAuto-format all files
npm run fixLint + auto-fix
npm testRun Vitest unit tests
npm run iconsRegenerate PNG icons from public/icons/icon.svg
npm run decompileExtract ActionScript from NAAP Flash .swf sources
npm run cleanRemove dist/

Quality gate: npm run check && npm run lint && npm run build && npm test.

Keep name in kebab-case in package.json; it is separate from the SceneryStack sim identifier in src/init.ts.

Tech Stack

ToolVersionPurpose
SceneryStack^3.0.0Simulation framework
Vite^8Build tool + dev server
TypeScript^7Type-safe JavaScript
Biome^2.5Linting + formatting
Vitest^4Unit tests
vite-plugin-pwa^1PWA + service worker

License

GNU Affero General Public License v3.0 — see OpenPhysics org license.

Contributing

See OpenPhysics contributing guidelines. Report bugs via GitHub Issues; use org issue templates.

About

SceneryStack port of the NAAP 'Solar System Models' lab. Compare the Earth-centered Ptolemaic model (deferent and epicycle) with the Sun-centered system and the planetary configurations it produces.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages