j-ocean
A browser-resident ocean forecast model and the harness that teaches with it.
Run j-ocean in your browser
The application, built from main. Nothing to install.
What it is for
Three things, in order of how much they matter:
- Understanding. What a measurement is worth, where a forecast's information came from, and what changes when a reader drags a profile and the machinery re-runs.
- Teaching. The same understanding, transferred to a reader who knows the ocean and not the numerics, without a lecture.
- Evidence. Modest, specific, falsifiable claims about sampling and forecast skill.
The shape of it
One browser application in three rings, and the boundaries between them are the design.
| Ring | What it does | What it may not do |
|---|---|---|
| Model | A reduced-gravity ocean integrating in typed arrays | Import anything that draws; read the host clock; know a display exists |
| Assimilation and scoring | Analysis, references, skill, and the per-cell attribution | Reach truth except through a simulated instrument |
| Harness | Horizon panels, attribution layer, profile editor, controls | Reach into integration state, or paint a figure it did not compute |
Read Architecture for how those boundaries are held, the Data model for what flows across them, and the Glossary for the words this project uses precisely.
Where the tree is
The build order is one feature per beat, in the development plan. Each beat's note says what landed and what it refuses to claim.
Three habits worth knowing before you read the code
- Every figure says what kind it is. Declared values come from configuration, computed ones from the model or the analysis, derived ones are diagnosed from computed state, and host time is how long the machinery took and never enters a run. The typography is the same here and in the application.
- A check that has never failed is worth nothing. Every gate is watched failing against a planted violation before it is trusted, and the commit says so.
- The harness can lose. There is no demo mode and no fixture that flatters. The surface must be able to report that the model is worse than persistence, and that a piece of machinery bought nothing.