Skip to content

Latest commit

 

History

History
82 lines (62 loc) · 3.25 KB

File metadata and controls

82 lines (62 loc) · 3.25 KB

Rotating Sky

CI

An interactive astronomy simulation about how the sky appears to rotate for an observer on Earth, built with SceneryStack, Vite 8, TypeScript 7, and Biome 2.

Features

  • Three screens (see doc/multi-screen.md for the architecture):
    1. Horizon System (src/horizon-system/) — the local sky from an observer's horizon.
    2. Celestial Sphere (src/celestial-sphere/) — the celestial sphere, its equator, ecliptic, and poles.
    3. Explorer (src/explorer/) — the combined, interactive rotating-sky explorer.
  • Model/view separation per screen
  • English, Spanish, and French localization via StringManager
  • Default and projector color profiles
  • Programmatic, locale-aware home-screen / navigation-bar icons
  • Progressive Web App (installable, offline-capable)
  • Git hooks for Biome pre-commit checks
  • Shared GitHub Actions CI via OpenLyceum/Baton

See doc/multi-screen.md for the multi-screen architecture and how to share state across screens.

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

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 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 test Run Vitest unit tests
npm run icons Regenerate PNG icons from public/icons/icon.svg
npm run clean Remove dist/

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.

Tech Stack

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

License

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

Contributing

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