Concept-first README + dictionary-card explainer page#10
Closed
silviot wants to merge 8 commits into
Closed
Conversation
Reframe the README around the tententoon idea (same picture, two infinities) rather than implementation: a side-by-side Droste/tententoon visual, a precise one-line definition, the log-polar idea in plain language, and the Escher / de Smit-Lenstra origin. Run and tech details move to a collapsed footer. Add public/explain.html: a standalone 'what is a tententoon' deep-dive styled as an aged-paper dictionary card (syllabified headword, IPA, numbered sense + usage example, bracketed etymology, inline nested-squares SVG mark), flowing into a plain-language account of why the spiral closes seamlessly (the logarithm trick), Escher's hand-drawn blank centre, and the 2003 de Smit-Lenstra completion. Revert the in-app InfoModal copy to the hand-written original and tag it .human-written so it is preserved from future rewrites. Add public/tententoon-demo.gif (spiral demo) for the README + page visuals. docs/screenshots/ holds card previews for this PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fold in the math from the feat/pipeline-explorable-view worktree's 4-panel view: source + rect -> log(z-c) lattice (periods logS, 2pi) -> tilt by beta = arctan(logS/2pi) -> roll back up via w(z) = c + (z-c)^alpha. Turns the 'why doesn't it tear' section from intuition into the concrete four frames the maths passes through, with named parameters. Drops the earlier complex-map aside, now redundant (step 4 carries the exact map). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collaborator
Author
|
🚀 Cloudflare preview deployed (from branch HEAD
Built ℹ️ Note: this branch is based on the pre-pipeline 🤖 Generated with Claude Code |
# Conflicts: # README.md
explain.html moves from public/ (static) to a Vite entry (added to rollupOptions.input) with src/explain/main.ts. It loads a swappable test image (SOURCE + optional NEST consts at the top of main.ts), builds the Droste geometry with fitCropToNest/buildPanelGeometry, and renders source - log(z-c) - rotated-log - tententoon live via the app's PipelinePanelGLRenderer. No duplicated math: the page reuses the same GPU renderer and geometry helpers the in-app pipeline view uses. Dragging the log panel pans log space: horizontal pan = zoom, vertical pan = rotation, and the tententoon follows with a live readout (verified at 144 deg / x33). Falls back to the four-step prose if WebGL2 is unavailable. Removes the now-superseded static public/explain.html. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Per feedback, drop the 2x2 grid and the source panel. The tententoon spiral now replaces the animated GIF in 'Now bend it'. In 'Why doesn't it tear?', the log(z-c) panel becomes a hands-on experiment: drag it and the original picture beside it rotates (vertical) and zooms (horizontal), with a live readout. The rotated-log lattice stands on its own as the 'lean it over' illustration. 'The original' is rendered by the same engine with the twist off (kTwist=0), so it zooms cleanly (mipmapped) and seamlessly. Verified: vertical drag -> 144 deg rotation, horizontal -> x33 zoom. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add two controls to the explorable, both feeding the reused GPU pipeline: a source toggle (picture / grid / polar / overlay) and a twist-angle (beta) slider. src/explain/patterns.ts generates grid + polar sources centred on the limit point c at the photo's pixel size. Polar rings are individually styled (thick / dashed / plain, in ink then red) so you can follow one through the map, and spaced by S^(1/6) so the style cycle is S-periodic = seamless under the Droste fold; in the log panel each ring becomes its own vertical line. The slider overrides beta = atan(logS/2pi): the tententoon twist is tan(beta) and the rotated-log leans by beta. Only at the canonical beta does the spiral close (a 'closed' marker shows it). Verified live: circles -> vertical lines, grid warps, overlay, and a 20deg twist clearly tightens the spiral. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
It was never a theorem. de Smit and Lenstra worked out the exact map (the structure) hiding in Escher's grid, and the missing centre was then filled by computer. That is analysis plus a method/recipe, not a theorem. Rename the heading 'The theorem that filled the hole' -> 'The map that filled the hole', say 'worked out' (not 'wrote down'), and call the distinction out in the text ('this is not a theorem so much as a recipe').
Voice pass over the prose per the writing profile: drop em-dash connectors throughout (colons / parentheses / periods instead) and remove 'seamlessly' from the UI copy. Code comments left untouched (not published prose).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collaborator
Author
|
Superseded by #13, which builds on this branch and turns the explainer into a full live explorable. Continuing there. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Live preview
▶ App: https://silvio-tententoon-preview.pgs.sh/
▶ Explainer (interactive): https://silvio-tententoon-preview.pgs.sh/explain.html
Deployed from this branch (current
main+ the docs work) to a separate pgs.sh project, so the livetententoonsite stays untouched. Drag thelog(z − c)panel, flip the source (picture / grid / polar / overlay), and pull the twist slider.What
Make the project explain itself — concept first, with a hands-on instrument.
1. Concept-first README
Side-by-side Droste vs tententoon ("same picture, two infinities"), a precise one-line definition, the log-polar idea in plain language, and the Escher / de Smit–Lenstra origin. Run/tech in a collapsed footer.
2.
explain.html— an interactive explainerA standalone page: an aged-paper dictionary card (syllabified headword
ten·ten·toon, IPA, sense + usage example, bracketed etymology, inline SVG), then the why it never tears explanation built around live panels rendered in-browser by the app'sPipelinePanelGLRenderer(reused; no duplicated math):β = atan(logS/2π)does it close on itself (a "closed ✓" marker shows it).log(z − c)lattice and the original beside it rotates (↕) and zooms (↔), with a live readout. A source toggle (picture / grid / polar / overlay) feeds the same machine different content — the polar circles are individually styled (thick / dashed / plain, ink + red) so you can follow one ring to its vertical line in the log.Fed by a swappable test image (
SOURCE/NESTat the top ofsrc/explain/main.ts); patterns generated insrc/explain/patterns.ts. Falls back to prose without WebGL2.explain.htmlis a Vite entry (rollupOptions.input).3. In-app modal preserved
Reverted the
InfoModalcopy to the hand-written original and tagged it.human-written.Screenshots
Polar source — each circle styled distinctly; in the log every circle is its own vertical line
The experiment (picture) — drag
log(z − c)(left); the original (right) rotates and zoomsDictionary card — desktop / mobile
Notes
main(AGPL relicense, CI, the pipeline explorable view + geometry lab, fixes). README licence updated MIT → AGPLv3.public/explain.html→ a Vite-built/explain.html+src/explain/{main,patterns}.ts.public/tententoon-demo.gifstill backs the README visuals.🤖 Generated with Claude Code