diff --git a/site/README.md b/site/README.md index 04fb9189..d91c53b2 100644 --- a/site/README.md +++ b/site/README.md @@ -91,8 +91,8 @@ across languages: *scroll-space* position, mesh/caption timing, the free-run threshold — is page composition, not physics, and lives in `src/config/anim.ts`. -**To try a new value:** open the page with `?tune=1` (e.g. -`http://localhost:4321/?tune=1`) for a dev-only panel with a slider per +**To try a new value:** open the page with `?tune=1` on the dev server (e.g. +`http://localhost:4321/?tune=1`) for a panel with a slider per schedule parameter (plus reveal timing, easing, and the free-run threshold), each with a one-sentence description of what it visibly changes, its own reset-to-default button, and a live "crystallisation agreement" readout (the @@ -103,6 +103,12 @@ turn it into an edit to `anim.ts` (the non-schedule numbers) or shipped default; re-run `cargo test -p didbot-site-anim` afterward — see "the crystallisation threshold" below). +The panel lives in `src/components/TunePanel.astro`, and `index.astro` +renders it and wires it up only under `import.meta.env.DEV` — so `?tune=1` +is a dev-server address, and neither the panel nor its readouts are in the +tree `scripts/publish-site.sh` uploads. `site/tests/check-dev-surface.mjs` +is the check that keeps it that way. + **The crystallisation threshold.** `the_lattice_reliably_crystallises_into_did_bot` (in `anneal.rs`) requires the anneal's final state to agree with the did.bot mask on at least 93% of lattice sites, for every one of twelve @@ -435,9 +441,9 @@ anyone said. Pages under `/docs/` and `/api/` carry no filler at all: they render real, already-reviewed content from elsewhere in the repository. Neither does the -landing page's dev-only `?tune=1` panel, whose per-slider descriptions are -developer documentation for whoever is tuning the simulation rather than -anything a visitor sees. +landing page's `?tune=1` panel, whose per-slider descriptions are developer +documentation for whoever is tuning the simulation and which a production +build leaves out entirely. ### What a link card shows diff --git a/site/package.json b/site/package.json index 7855aa08..f192d664 100644 --- a/site/package.json +++ b/site/package.json @@ -12,7 +12,7 @@ "build": "astro build", "preview": "astro preview", "astro": "astro", - "test": "node tests/check-docs-coverage.mjs && node tests/check-links.mjs && node tests/check-serving.mjs && node tests/check-required-pages.mjs && node tests/check-html.mjs && node tests/check-meta.mjs && node tests/check-wasm.mjs && node tests/check-csp.mjs && node tests/check-build-stamp.mjs" + "test": "node tests/check-docs-coverage.mjs && node tests/check-links.mjs && node tests/check-serving.mjs && node tests/check-required-pages.mjs && node tests/check-html.mjs && node tests/check-meta.mjs && node tests/check-wasm.mjs && node tests/check-csp.mjs && node tests/check-build-stamp.mjs && node tests/check-dev-surface.mjs" }, "dependencies": { "astro": "7.2.9", diff --git a/site/src/components/TunePanel.astro b/site/src/components/TunePanel.astro new file mode 100644 index 00000000..d44acb6e --- /dev/null +++ b/site/src/components/TunePanel.astro @@ -0,0 +1,143 @@ +--- +// The landing page's tuning panel: eleven sliders over the Ising +// simulation's schedule and the page's reveal timing, plus a copyable +// settings line for reporting a value back as an edit to +// src/config/anim.ts or crates/didbot-site-anim/src/anneal.rs. See +// site/README.md for how the owner uses it. +// +// index.astro renders this only under `import.meta.env.DEV`, so it is part +// of the dev server and not of the tree scripts/publish-site.sh uploads. +// `?tune=1` opens it; the same guard gates its wiring in index.astro's +// script. +--- +
How hot the lattice starts, before any cooling begins — higher makes the opening noise look more scrambled and less clustered.
+The coolest the lattice gets on its way down, before the hold and the reveal — lower gives tighter, calmer clusters more time to settle during the dwell.
+How much of the anneal passes at a steady, held temperature before the wordmark starts pulling itself together. This is when the field turns on in the underlying physics, not just a visual cue — reveal start/width below only make sense relative to it.
+How gradually the letterform's pull strengthens after hold length above ends — small snaps to full strength almost immediately, large lets it build slowly across more of the remaining anneal.
+How hard the field pulls lattice cells into the wordmark's shape once it's active — higher makes the letters assert themselves faster and more forcefully over whatever pattern already formed.
+How much thermal noise remains once the field is pulling cells into letters — higher keeps the reveal looking lively and textured instead of freezing into flat, static shapes.
+How many simulation steps the whole scroll covers — more steps means each point of scroll shows a finer-grained slice of the process, including the reveal itself.
+Where in the scroll (0 = top, 1 = bottom) the reveal band begins — together with reveal band width below, this sets the stretch of scrolling during which the wordmark actually appears.
+How much scroll distance the reveal band spans, starting at reveal band start above — narrow snaps the wordmark into place quickly, wide spreads it into a slower, more gradual materialization.
+How sharply the very last bit of scroll decelerates into its final position — 1 is a straight line with no easing; higher values slow down more as they approach the end.
+How far down the scroll before the simulation stops replaying deterministically and starts free-running instead (continuing to sweep at the final temperature and field, so pixels keep churning while the letters hold). Scrolling back up above this line returns to deterministic replay.
+How hot the lattice starts, before any cooling begins — higher makes the opening noise look more scrambled and less clustered.
-The coolest the lattice gets on its way down, before the hold and the reveal — lower gives tighter, calmer clusters more time to settle during the dwell.
-How much of the anneal passes at a steady, held temperature before the wordmark starts pulling itself together. This is when the field turns on in the underlying physics, not just a visual cue — reveal start/width below only make sense relative to it.
-How gradually the letterform's pull strengthens after hold length above ends — small snaps to full strength almost immediately, large lets it build slowly across more of the remaining anneal.
-How hard the field pulls lattice cells into the wordmark's shape once it's active — higher makes the letters assert themselves faster and more forcefully over whatever pattern already formed.
-How much thermal noise remains once the field is pulling cells into letters — higher keeps the reveal looking lively and textured instead of freezing into flat, static shapes.
-How many simulation steps the whole scroll covers — more steps means each point of scroll shows a finer-grained slice of the process, including the reveal itself.
-Where in the scroll (0 = top, 1 = bottom) the reveal band begins — together with reveal band width below, this sets the stretch of scrolling during which the wordmark actually appears.
-How much scroll distance the reveal band spans, starting at reveal band start above — narrow snaps the wordmark into place quickly, wide spreads it into a slower, more gradual materialization.
-How sharply the very last bit of scroll decelerates into its final position — 1 is a straight line with no easing; higher values slow down more as they approach the end.
-How far down the scroll before the simulation stops replaying deterministically and starts free-running instead (continuing to sweep at the final temperature and field, so pixels keep churning while the letters hold). Scrolling back up above this line returns to deterministic replay.
-