Updated Sep 8, 2026 · Week 1 board.
- Finishing a training run on a saved model's Advanced canvas plays a fixed six-stage reveal, grade first, not a live progress read-out.
- Six setTimeout calls fire the stages at 120, 620, 1120, 1520, 1900, and 2250 milliseconds, matching the file's own header comment beat for beat.
- The achievements stage is optional in practice: it defaults to an empty array, and an empty array folds the stage away with no special-case code.
- The reveal component only takes props and renders; it fetches no data of its own.
- The component is imported by BuilderResultsStack.svelte, which only /build/[slug]/+page.svelte calls, at two lazy-loaded sites.
- The sequence checks a reduced-motion preference before staging anything.
Finish a training run on the Advanced canvas of a model you already saved, within Studio, the model builder that lives at /build, and the results do not just appear. They arrive stage by stage, on a clock somebody actually wrote down in milliseconds.
Six stages, one clock, no shuffling
Stage one is the grade itself, the big headline number, landing first at 120 milliseconds after the reveal starts. A two-column grid opens next at 620 milliseconds, showing a live loss curve beside an attention heatmap. The power meter fills in at 1120 milliseconds. Achievements can follow at 1520 milliseconds, when the run earned one.
The leaderboard race animates at 1900 milliseconds, comparing your run against other sessions. A training-method visualization closes the sequence at 2250 milliseconds, the last checkpoint in the file's own timer list.
That achievements slot, stage four in the file's own numbering, is the one piece that only shows up sometimes. It is not part of every run's reveal, and the code treats it as an extra rather than a core beat.
Presentation only, on purpose
The component itself is built to take props in and render output, nothing else. It does not fetch its own data. Whatever wires the real metrics, the loss values, the attention weights, is the parent screen's job, not this file's. That split matters for one reason: the timing you see is fixed regardless of how fast or slow the actual training run was.
A three-second run and a three-minute run both get the same 2250-millisecond reveal once they are done, because the reveal is a presentation layer sitting on top of a result, not a live progress bar for work still happening.
The props the parent hands in are typed and narrow: a metrics record, a list of loss points, a list of attention weights, and an optional achievements list that defaults to an empty array when the parent has nothing to pass. That default is why the achievements stage is optional in practice, not merely in the comment describing it. When the array is empty there is nothing to render, so the stage folds away without any special-case check further down. The leaderboard race and training-method stages pull from two existing stores instead of fresh props.
Those are the same incremental backtest results and session leaderboard entries other parts of the Advanced canvas already read. The reveal reuses state the page already has instead of asking the server for a new payload.
The file also checks for a reduced-motion preference before staging anything. If your system says to cut down on animation, the six-part sequence respects that rather than forcing the full staggered fade-in regardless.
The Receipts Drawer
The tell here is a header comment that lays out the exact stage order before a single line of logic runs, then the logic matches it beat for beat down to the millisecond. That is rarer than it sounds; plenty of files describe an intent the code has since drifted from, quietly, patch by patch, until the comment reads like a wish list. This one has not drifted at all.
What is not yet measured: whether players watch all six stages or skip past them. That lives in usage data, and none of it is at hand here.
FAQ
Where does this six-stage reveal play? On the Advanced canvas at /build/[slug], right after a training run on a saved model finishes.
What is the exact stage order? Grade reveal, then a two-column grid with a live loss curve and an attention heatmap, then a power meter, then the optional achievements stage, then a leaderboard race, then a training-method visualization.
What are the exact timers?
120 ms for the grade. 620 ms for the loss and attention grid. 1120 ms for the power meter. 1520 ms for achievements, when the run earned one.
1900 ms for the leaderboard race. 2250 ms for the training-method visualization.
Does the reveal's timing change based on how long training actually took? No. The component is presentation only; the fixed millisecond sequence runs the same way regardless of the underlying run's real duration.
Does the reveal respect a reduced-motion setting? Yes. The file checks for that preference before staging the sequence.



