d1459b9One multi-page Vite site: shared config at the root, landing page, apps at /double-pendulum/ and /fput-chain/Jeremy Magland 1# chaos-apps
3Interactive apps for "Listening for chaos": struck dynamical systems heard as sound while they decay. One Vite multi-page site; each app lives in its own folder with its own README.
5- `src/double-pendulum/`: double pendulum ([README](src/double-pendulum/README.md)), served at `/double-pendulum/`.
6- `src/fput-chain/`: FPUT-beta chain ([README](src/fput-chain/README.md)), served at `/fput-chain/`.
50e44e5Lyapunov method in src/common/lyapunov.ts; each app supplies its ShadowJeremy Magland 7- `src/common/`: code shared by the apps (help dialogs, chart cursor, WAV export, λ vs E scatter, strip charts, whole-note spectrogram, Lyapunov exponent by the two-trajectory method with a per-app `Shadow`) and `style.css`, the shared styles. Each app's `main.ts` imports `../common/style.css` and then its own `style.css`, so app rules come after the shared ones in dev and in the build.
d1459b9One multi-page Vite site: shared config at the root, landing page, apps at /double-pendulum/ and /fput-chain/Jeremy Magland 8- `src/index.html`: landing page linking the apps.
10Live site: https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/ (built and deployed by `.github/workflows/pages.yml` on every push to main).
12The apps were separate repos (`double-pendulum-chaos`, `fput-chain-chaos`) until 2026-10-09; their histories are merged here, each moved into its folder.
14```bash
15npm install
16npm run dev
17```
19The dev server serves every app (http://localhost:5173/double-pendulum/, http://localhost:5173/fput-chain/); edits anywhere under `src/` reload the open pages.