Otherlight is a local learning and modelling workspace for exoplanet,
exomoon, and detached-binary scenarios. The Browser is the primary product.
It provides interactive Education simulations, Guided Labs, plots, exports,
and .otherlight workspaces. An optional local science service executes a
bounded radial-velocity V5 request when its dependencies are available.
The hosted Browser runs the Education simulation, Guided Labs, plots, exports, and workspace handling in the browser. GitHub Pages cannot run the Apple application or Python science service, so the hosted Scientific profile explains how to use that capability locally and never attempts a scientific request.
| Area | Responsibility |
|---|---|
apps/browser/ |
Browser Education and Scientific-profile interface |
apps/apple/ |
SwiftUI Education app for Apple platforms |
apps/demo/ |
Static product tour |
services/science/ |
Optional loopback V5 radial-velocity service |
contracts/ |
Versioned Education V4, science V5, workspace-v1, and capability contracts |
The Browser is a modular monolith, not a collection of JavaScript packages. Its layers and the science flow are described in docs/architecture.md.
Requires Node 22.13 or later and pnpm 11.4.
corepack enable
corepack install
pnpm install --frozen-lockfile
pnpm devOpen the Vite URL shown in the terminal. Education does not require a network service.
Build and preview the Browser bundle:
pnpm build
pnpm previewBuild and preview the GitHub Pages variant at /otherlight/:
pnpm build:pages
pnpm preview:pagesThe Pages variant uses the repository base path and disables loopback science actions. Ordinary development and production builds retain the local science boundary. See docs/RUNBOOK.md for the local Pages smoke test and later activation steps.
The service accepts strict V5 Newtonian barycentric requests and returns
radial-velocity artifacts. It binds to 127.0.0.1:8765; it is neither a
remote service nor a fallback for Education results.
python3.14 -m venv services/science/.venv
source services/science/.venv/bin/activate
python -m pip install -e './services/science[dev]'
pnpm science:backend:serveSee services/science/README.md for routes, limits, dependencies, and failure behaviour.
pnpm hygiene:public
pnpm hygiene:docs
pnpm hygiene:swift-docs
pnpm architecture:check
pnpm physics-registry
pnpm ci:verifyTargeted checks:
pnpm science:backend:check
pnpm science:backend:test
pnpm native:core:test
pnpm native:science:testpnpm ci:verify covers public-surface and documentation hygiene, the Browser
architecture check, physics registry validation, linting, typechecking, tests,
and the production Browser build. Run service or Apple checks separately when
their code or contracts change.
Otherlight is licensed under MIT. Report vulnerabilities through the process in SECURITY.md. Third-party attributions are in THIRD_PARTY_NOTICES.md.