Small Vite + TypeScript demos showing how constrained measurements (“slices”) can drive prediction, drift detection, and correction.
- z(t) = z0 + v * t
- r(t) = sqrt(max(0, R^2 - z(t)^2))
The 2D world only observes the circle radius r(t). The depth z(t) is hidden.
The left canvas renders the current slice. The right canvas renders a rolling plot of r(t) over the last 15 simulated seconds. The Science Bench area shows prediction/error and run logs.
npm install
npm run dev
Build for production:
npm run build
A companion Three.js demo lives in constrained_observation_3d/.
Run it:
cd constrained_observation_3d
npm install
npm run dev
Build:
cd constrained_observation_3d
npm run build
- Play / Pause animation
- Reset back to t = 0
- Speed slider (timeScale)
- Sliders for R, z0, and v
- Integer seed input (reserved for future noise models)
- Copy Link button for a permalink with current parameters
- Export controls for JSON traces (including Paper Mode bundle if enabled)
The 2D app reads R, z0, v, timeScale, and seed from query params on load. Copy Link writes those same values into a shareable URL.
Exported JSON traces used for Paper 1 backing live in artifacts/. See artifacts/README.md for metric definitions and how to interpret the files.
This repository is licensed under CC BY-NC 4.0 (Attribution-NonCommercial 4.0 International). See LICENSE.
- Stephen A. Putman
- Email: putmanmodel@pm.me
- GitHub: @putmanmodel
- For bugs/requests: open an Issue in this repo
- Paper 1 (Zenodo): https://zenodo.org/records/18700957
- Related papers / architecture repo: https://github.com/putmanmodel/spanda-architectural-framework
- This repo includes backing artifacts under
artifacts/(seeartifacts/README.md).