Skip to content

feat(release): all thirteen articles polished, seven numbers corrected, figures that no longer pause while visible - #16

Merged
PSheon merged 20 commits into
mainfrom
dev
Sep 22, 2026
Merged

PSheon merged 20 commits into
mainfrom
dev

Conversation

@PSheon

@PSheon PSheon commented Sep 22, 2026

Copy link
Copy Markdown
Owner

What ships

Copy, № 001–013. Every article polished with Paul, item by item (knowledge, redundancy, diary-style passages, wording), in both languages. date and updated are untouched.

Numbers corrected against a fresh measurement:

  • № 005: 1.1 → 1.2 px
  • № 006: slip 0.26 → 0.27
  • № 008: corner 30° → 14.3°; 3D sweep 10–30 → 30–40 ms
  • № 009: peak 12% / 10% → 11% / 9%
  • № 013: seeds 59 / 37 → 59.5 / 36; "twice" → three times the steps

Numbers that were stated but never measured are now measured and recorded in docs/research/:

  • № 003: 9 ms per generation
  • № 004: 0.8 s to 100%
  • № 006: 0.15 ms per policy call
  • № 012: 6.7 ms per sample, 116–117 fps
  • № 013: run 25

Fixes

  • Thirteen interactive figures could stay paused while on screen after a quick scroll. Their IntersectionObserver read the first entry of a batch; it now reads the last. A test refuses the old form.
  • The last short touch targets (the home page's view-all link, the copy button) reach 44 px on touch. The back-to-top button stays off the text.

Docs

  • docs/HANDOFF.md brought up to date.

Checked

  • Unit tests 323 pass (2 skipped). E2E 618 / 618 with --repeat-each=3. CI green on 65e16ed.

🤖 Generated with Claude Code

PSheon and others added 20 commits September 22, 2026 11:44
… a back-to-top that stays off the text

11 the tap area reaches the controls written as plain <button>s in the articles (Flappy Bird's speeds, HydraNet's
   heads and pictures, the Transformer's tasks and speeds, CNN's digits and kernel presets, head-camera's drivers),
   the hero's station tabs, heading self-links, the header and footer logos, the edit link and the tag breadcrumb;
   the slider thumb has 44 px under a finger (28 with a mouse). Measured in a touch context at 390: all 44 tall or
   more. Left as they are: the city's people list, whose 30 px rows touch (a larger area would reach the next row),
   and the sidenote marker, a target inside a sentence (WCAG 2.5.8's inline exception).
36 the back-to-top button shows only while the reader scrolls back up, a screen or more down, and fades while they
   read down, where on a phone it covered the end of the last line. Checked at 390 (touch) and 1440, both themes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…wording

- Facts: the forward pass is 266 lines, "a little over two hundred" (was "about two hundred"); the case for ReLU is
  that convolutions alone fold into one (pooling is not linear, so "without ReLU the stack is linear" was loose); the
  receptive-field sentence says what one second-layer output covers; the occlusion caption no longer asserts what the
  model relies on, only what the map usually shows.
- The fully connected comparison was one long sentence of numbers; it is a table, with each width's range over its
  three seeds (docs/research/mlp-baseline/output.jsonl) instead of a rounded mean.
- "No way to say I don't know" was said twice; the real-system consequence joins the bullet it belongs to.
- Filler cut ("convolution does something simple", "the diagram isn't wrong"); 儀器 becomes 圖 in the prose.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The polish had moved it to today; the date is deliberate and stays.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- The 75% baseline in the sidenote is derived where it stands (uniform −1…1 weights, each hidden neuron opposite-signed
  half the time, 1 − ¼); the same-sign sentence says what such a neuron measures instead of stating a rule.
- "Usually within twenty-odd generations" becomes "a dozen or so": over 40 seeds the median graduation is generation 15
  (docs/research/evolution-seeds/output.txt).
- The subtraction is said once less; neuroevolution is named, not re-explained after the opening.
- The seed results are one sentence with the median, and say what graduating means; 儀器 becomes 圖.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…er measured

- "About 10 ms a generation on my laptop" had no source: measured on the M4 Pro, 8.8–9.0 ms (population 50, 252
  days, mean of 30 generations, three seeds, two runs); script and output in docs/research/trading-timing/.
- +34% (buy-and-hold) beside "rose 35%" is explained: $10,000 buys 53 shares at $185.64 and $161 stays in cash.
- "Don't trust it" is said fewer times: the sentence after the random-bot numbers goes, the six-seeds paragraph joins
  the warning, and "can illustrate but not place an order" gives way to the closing line.
- The defaults and the 20-generation numbers move into the sidenote; what the winners do is three bullets.
- 儀器 becomes 圖; the bots are 它們, not 牠們; sell-high, buy-low is buy-low, sell-high.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…r, and the edits Paul chose

- The gradient check's 10⁻⁵ is ε; the tolerance is 10⁻⁶ (tests/ml/autograd.test.ts, transformer.test.ts).
- "One layer can do one lookup" contradicted "one layer learns to sort": it learns it, in twenty times the steps of
  reversing (650–800 against 30–40), with a solution hard to read.
- "Fast finishes in a second or two" is measured: the readout first shows 100% after 0.80–0.88 s (M4 Pro, three
  loads); noted in docs/research/transformer-steps/output.txt, and the sidenote says why the on-screen accuracy (a
  rolling average) reaches 100% later than the script's step count.
- Six digits, not six-digit numbers; LayerNorm's learned scale and shift; the 12-slot position table and "same
  structure as GPT" said once each; the twelve operations move into a sidenote; 儀器 becomes 圖.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- The distribution head's edge error is 1.15 px in docs/research/hydranet-spike: shown as 1.2 px (was 1.1).
- The three extra box-head attempts become rows of the table, with their edge errors (2.1, 2.0 and 1.8 px from the
  same results); the prose now says the best of them beats the mask's bounding box by 0.01, where it used to say lost.
- The first-run anecdote keeps its direction, not its unrecorded numbers; "never the compute" is "often not".
- 45 parameters and the two-object failure are each said once; the Karpathy and literature paragraphs are shorter
  or split; 儀器 becomes 圖, and loss is 損失 in the Chinese prose.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…l link and the copy button

Found by paul-67's recheck of f9398cc. Measured in a touch context at 390: 查看全部文章 is 78×44 (was 84×24;
it now has the tap area), 複製程式碼 44×44 (was 42: the ::before sits inside the 1 px border, so -inset-2 gave
26 + 16). On desktop the copy button still sits 8 px from the top and right corner, dark and light.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- "Under 0.2 ms a call" had no record: measured on the M4 Pro, 151.8–154.6 µs (mean of 5,000 calls, three runs);
  script and output in docs/research/lite3-spike/policy-timing*. It says about 0.15 ms, and the "83 times a second"
  it repeated goes.
- The foot slip at μ 0.05 is 0.27 m/s (the note's table), not 0.26; the weights are 757 KB (189,324 float32), the
  size of the file the page loads, where the article said "a 758 KB ONNX file"; PPO is "most likely", read from a
  folder name; the push table says left and right (+y, −y), not "in" and "out".
- The noise results are a table; the long parenthesis about where the gain speeds come from is a sidenote; "I have
  not checked the training setup" is said once; 儀器 becomes 圖.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- ᾱ is nearly zero in the first steps, not zero: the formula divides by a number close to zero; that aside becomes a
  sidenote, so "nothing is broken" follows the blurry balls directly.
- "Recitation, not invention" is said once; "in my run" once in the guidance paragraph; the last difference is two
  bullets (network size, and working in a latent space instead of on pixels); 儀器 / instrument becomes 圖 / figure.
Every number was checked against the code and docs/research/2026-09-19-diffusion-spike.md; none changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ured

- The align figure's default runs, reproduced by a script with its own inputs (docs/research/slam-2d-icp/): the corner
  start is 2.02 m and 14.3° off, not "nearly thirty degrees", and ICP ends 1 mm away after 10 steps; the corridor start
  is 2.40 m off ("a little over two metres"), and it stops 0.92 m away with 75% matched at 3.5 cm, as the text said.
- A 3-D sweep takes thirty to forty milliseconds (28 ms per match at the page's sampling, 39 ms a sweep in the
  lidar-odometry run), not ten to thirty.
- The robot dog is 它 as in № 006, and "our robot dog" is "a real robot dog (the real Lite3, for one)", Paul's words.
- Loop closure is named where its button first appears; "nominates" becomes "finds the likely"; the card's button note
  stands on its own line.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- The busiest ten minutes are 11% (utility) against 9% (random), as docs/research/city-of-agents/RESULTS.md has them,
  not 12% and 10%.
- Two numbers with no record go (Paul chose not to measure them): the median trip of 15 minutes, now "most trips are
  short", and the median replay gap of 6 units, now "a few tens of seconds of walking".
- How the city grows is three bullets (roads, zones, height) with the seed-1 counts after them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- "A job that takes over two hours" is the one-worker figure (142 min); the article runs four workers (38 min), so
  the sentence now says "a job that would take one worker over two hours".
- Job length by workers is a table row; tests/scheduler/prose.test.ts now checks that row in both languages (it
  still recomputes the five numbers first).
- The last-section bullet on what real schedulers handle is two: the plain rules, and gang scheduling on its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ces as a list

- "About 1,100 lines" was the engine before part two grew it: lib/rt is 1,584 lines today, and Paul chose to count
  all of it, so the text says about 1,600, with what is counted in a sidenote instead of a long parenthesis.
- "Where the numbers come from" is five bullets instead of one paragraph. Every other number was checked against
  docs/research/light/RESULTS.md and the kernel; none changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ten, measured again

- Two limits were no longer true: the aeroplane's weight change is ported (as landing gear that softens with speed),
  and doors do swing open while driving; the text said neither, and contradicted its own lamp paragraph.
- Measured again with the original method (docs/research/light/RESULTS.md, 2026-09-22): 6.7 ms a sample (was 6.8),
  116–117 fps while moving (was 121, before the lamps), 11,317 moving triangles (was 11,275; the lenses add 42).
- The long paragraph on what was ported is three bullets (person, car, aircraft); the door sentence moves there from
  the lamp paragraph; the no-WebGPU line says why a still picture would be pointless.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…is three times, a paragraph split

- The five seeds at 20 000 steps are 100, 97, 59.5, 36 and 2.5 on the page's layouts
  (docs/research/head-camera/run-22/closed-shake-48-*.json); the text had 59 and 37.
- 20 000 → 60 000 steps is three times, as the English already said; the Chinese said 多練兩倍.
- The hand-hides-the-block paragraph is two: the grasp tolerance, and the blind strip.
Three numbers without a record (190 s in Chromium, 88–98.5 % over five trainings, the look-once failure row) are
unchanged, waiting on the feat/vla session's answer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ver written down

Run 25 re-measures the light-and-noise table on the current layouts (light columns identical; noise columns vary by
draw, three draws recorded). RESULTS.md now records fig. 03's in-browser training time (191.7 s and 200 s, from the
feat/vla session) and where the article's 88–98.5 % comes from (run 9).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…three draws

Noise comes from Math.random, and the article's single draws (look once 15 and 0, shaken 96.5 and 44.5) sit below all
three draws of run 25 (docs/research/head-camera/run-25/). The columns now show 17–22 / 0–2 and 98.5–100 / 47.5–50.5,
and the table says why. The light columns matched run 25 exactly and are unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…he first

An IntersectionObserver batch is oldest first; under load it can carry "left" then "came back", and a callback that
destructured [entry] decided the figure was off screen while it was visible, so it paused (the feat/vla session saw
this as a one-in-forty e2e failure). Each callback now takes entries[entries.length - 1], as runWhenSeen already did:
SLAM (2), the city, Flappy Bird, the scheduler, HydraNet, the Transformer, Lite3, diffusion (2), the path tracer's
hook, the home page's number ticker and diffusion preview. tests/site/observers.test.ts keeps the pattern out.
The whole e2e suite passed three times over (618 runs).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
paul-notebook Ready Ready Preview Sep 22, 2026 10:12am UTC

Request Review

@PSheon
PSheon merged commit 7274bd1 into main Sep 22, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
Preview — 65e16ed5 Deployed Sep 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant