Slips and boats, and the moment to pull them. The rule is a probability, written in advance.
THE GLASS puts the ensemble, the official cone and the AI model's track on one globe, lets you scrub through valid time and issuance cycle, and seals every decision with the forecast that was on the glass when you made it.
Every thread is one ensemble member's track, coloured by the wind it carries. Where they bunch, the future is settled; where they fan, it is not. The heads move together as the valid time advances.
The official forecast rides inside a cone. The radii on this desk are approximations of the published two-thirds circles, not the National Hurricane Center graphic. Beside the cone, in rose, is the Google DeepMind track that NHC files as guidance. The desk states the gap between them in nautical miles, every cycle.
Columns rise off the sea where members bring damaging wind in the next twelve hours. Scrub the valid time and the wave moves ashore; the dim base is where it has already been. Hover any column and it tells you its probability.
Step back through every issuance. Prior runs stay on the globe as slate ghosts, so you can see the guidance swing, and every past run is scored against what the storm actually did. This is the question a post-storm review asks first, and the one no weather app answers.
A harbor. A port. A resort. A ferry. People and equipment at a real place, and a rule the operator wrote before the wind arrived.
Slips and boats, and the moment to pull them. The rule is a probability, written in advance.
Suspend the work, or keep the berth open. The desk states the odds. The operator makes the call.
Guests to move. Vessels to relocate. The earliest reasonable arrival, on the glass.
The threshold was sealed at the start. Three in the morning is not when the rule gets invented.
Hurricane VESPER, the synthetic training storm, on the New York Bight. Each plate is the full-run probability against the rule written in advance. The places are real. The assets and the rules are synthetic.
The storm arrives as a spread. Ensemble threads, the official cone, and the DeepMind track, on one glass. Where they bunch, the future is settled. Where they fan, it is not.
Valid time is the hour you are inspecting. Issuance is what the forecast said when you were looking. A later run does not get to rewrite an earlier decision.
Afterwards the question is whether you can prove what was on the glass, why you acted, and who decided. The record is hash-chained to that exact forecast.
Each site carries a rule its operator wrote in advance: the wind, the probability, the action. The desk turns the ensemble into that probability, gives the earliest reasonable arrival of tropical-storm wind, and calls the state: Clear, Watch, Act. No judgement is invented at 3 a.m.
Seven site groups ship with the desk, from the New York Bight to the Hawaiian Islands. The places are real. The assets, the operators, and the rules are synthetic. Probabilities are derived from the ensemble after GEFS winds are scaled to the official intensity. They are not official hazard probabilities.
Every call is sealed into a SHA-256 hash chain together with the forecast state at that moment: the run, the valid time, the storm, every site's probabilities, the cone-versus-ensemble gap. The hash is real. The envelope keys are a best guess at the studio.evidence.v1 format. If a verifier expects different keys, that is the one place to change them.
POLO, NOLO, and FAY are NHC a-decks taken at that hour and built into the page. They are not a live picture of the ocean. The GEFS ensemble, the official forecast, the Google DeepMind track, and NHC's persistence reference are scored against the working best track. Live storms appear only when the desk is deployed and the feed answers.
The desk is a single HTML file with the 3D engine, the storm data and the evidence chain inside it. Two small serverless functions fetch and parse NHC's public files when you want it live.
NHC ATCF a-decks: CARQ working best track, OFCL with 34-kt radii, AP01–AP30 GEFS members, GDMI Google DeepMind, CLP5 reference. Public, no key.
Parametric 34/50/64-kt radii from each member's intensity, with GEFS winds scaled to the official intensity forecast. Cumulative site probabilities, earliest reasonable arrival at 10%, most likely at 50%.
Every past cycle against the best track: mean track error by lead, spread against skill, run-to-run consistency. Persistence must be beaten to claim skill. The curves here are a schematic, not a score.
Three.js with additive threads, instanced risk columns, a fresnel atmosphere and bloom. Dotted land from Natural Earth. Runs at phone width.
studio.evidence.v1 pack: {seq, type, ts, actor, payload, prev, hash}, SHA-256 over sorted-key JSON. The envelope keys are a best guess at the studio layout.
Drop the folder on Vercel. index.html is this page, app/ is the desk, api/ turns on the live feed.
Official watches and warnings come from the National Hurricane Center, the Central Pacific Hurricane Center, and the National Weather Service. This desk does not issue them, and it does not replace them.
POLO, NOLO, and FAY were taken from NHC a-decks at that hour and built into the page. They are not a live picture of the ocean. A storm is live only when the desk says so, and only when the deployed feed answers.
The harbors, ports, and islands are where the map says they are. The cranes, the ferries, the guests, and the rules were written for rehearsal. Replace them with yours. Each site is a few lines of JSON.
Cone radii approximate the published two-thirds circles. They are not the NHC cone graphic. GEFS winds are scaled so their mean follows the official intensity, because the ensemble under-resolves the peak. Site probabilities come from that. They are not calibrated hazard probabilities.
Every block is SHA-256 over the previous hash and a canonical body. The field names in studio.evidence.v1 are a best guess at the studio layout. If the verifier expects different keys, exportPack() is the one place to change them.