Repository navigation
Grammar v8: triplet spacing and base-512 numbers - #5
Merged
Merged
Conversation
Spacing is structure: 1 cell inside a word, 2 between the words of a triplet, 4 between triplets. One-part words are 3 cells wide and slots widen for the longest word. Triplets run left to right (render --per-line). Numbers are COUNT plus base-512 digits (COUNT.4.171 = 2219), with a new `glyph number` command. decode finds words from the gaps. BEFORE and AFTER are redrawn as a path with a tick at either end, since the old single dots were ONE moved one cell sideways and made gaps ambiguous; validate now checks for that. Page.lines is Page.triplets. Version 0.3.0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7
emptymalei
pushed a commit
to InterImm/interstellar
that referenced
this pull request
Oct 8, 2026
lib/glyph.js now ports glyph-cli 0.3.0: words are spaced 1/2/4 cells, triplets run left to right, numbers are COUNT plus base-512 digits, and decode reads the structure from the gaps. The explainer, converter and dictionary pages describe and use the new rules; the converter gets a triplets-per-line choice, a free-width drawing grid and a warning for numbers whose trailing 0 digit would vanish at a line end. Vocabulary and fixtures regenerated from glyph-cli 0.3.0 (InterImm/glyph-cli#5). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7
L chose to keep the original shapes. The reader already picks the layout that reads best against the vocabulary, so ambiguous gaps resolve to known words; the docs now say so, and validate no longer rejects parts that are one-cell shifts of each other. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7
emptymalei
added a commit
to InterImm/interstellar
that referenced
this pull request
Oct 8, 2026
* Signals: add the resonance theory and read each transmission through it Adds a 'Speech that needs two' section to /signals/ (CN and EN) and a short resonance-theory reading under each of the five transmissions. Framed as a working theory held by listeners in the story, not a decoding. Encodings and audio are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7 * Netlify: publish the static site as-is so deploy previews stop failing The old Netlify site still builds previews with its Hugo settings, which fail since the Hugo config was removed in #3. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7 * Remove netlify.toml: the site is on GitHub Pages and the Netlify setup is being retired Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RH7A8tqLXxxGiks9mUWtyE * Grid script pages: grammar v8 (triplet spacing, base-512 numbers) lib/glyph.js now ports glyph-cli 0.3.0: words are spaced 1/2/4 cells, triplets run left to right, numbers are COUNT plus base-512 digits, and decode reads the structure from the gaps. The explainer, converter and dictionary pages describe and use the new rules; the converter gets a triplets-per-line choice, a free-width drawing grid and a warning for numbers whose trailing 0 digit would vanish at a line end. Vocabulary and fixtures regenerated from glyph-cli 0.3.0 (InterImm/glyph-cli#5). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7 * Grid script: keep BEFORE and AFTER as single dots (L's call) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7 --------- Co-authored-by: Claude <noreply@anthropic.com>
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.
Before:
glyphdrew v7 pages, where every line was one statement on a fixed 23-cell lattice and numbers stopped at 511.After:
glyphdraws v8 pages, where spacing is the structure. There is 1 empty cell inside a word, 2 between the words of a triplet and 4 between triplets. Triplets run left to right, two to a line by default (render --per-line N), and a one-part word is 3 cells wide. Numbers areCOUNTfollowed by base-512 digits, for exampleCOUNT.4.171= 2219.COUNT.2219is also accepted, and the newglyph number Ncommand shows how a number is written.decodereads the structure from the gaps alone.How it works:
Word.positionslists the lattice positions of each word, andTriplet.widths()sizes each slot.Known ambiguities:
BODY.AFTER | OTHERandBODY | ONE.OTHERdraw the same. L chose to keep these shapes, so the reader picks the reading made of known words, and the docs explain this.renderwarns when this happens.API changes:
Page.lines/Lineare nowPage.triplets/Triplet. The version is 0.3.0.Checks: pytest passes (106 tests), ruff check and format pass,
gen_docs.py --checkpasses,zensical buildpasses, and the render | decode smoke test passes.🤖 Generated with Claude Code
https://claude.ai/code/session_01QgskKyin9t8k9F6KcUj5o7