feat(cross): material crossings — paper space, on the marks (v0.19-dev) #69

Merged
toph merged 2 commits from feat/cross-material into main 2026-07-05 16:05:35 +00:00
Owner

Kills table-space point values: cross now intersects the operands' material marks in paper space, instead of intersecting table lines and resolving to the topmost covering layer (Q2-B). Paper is opaque — the topmost face can carry neither crease, so the old rule could name a point that no layer actually shows.

New rule (spec §4.3, v0.19-dev):

  • An operand qualifies bare iff all its segments lie on one paper line. A table-bent scar crosses fine without at; a crease scored through several layers marks mirror-image lines on different layers and needs an at projection.
  • The crossing must lie on the marks (some segment's chord, endpoints count) — supporting lines meeting beyond the scars is an error, there is nothing to see there.
  • --(.p .q) operands are paper lines through material points; their crossing must merely be on the sheet.
  • cross is fold-state-independent — only the at projection reads the folded state.

fold-top-two.bel shows the bug class this kills: .q = cross --v --bot, with --bot the bottom edge, resolved to a point on the top edge of the sheet.

paper square
--l = through .a .d
--bot = through .a .b
--v = @map .b onto .a
--h = @map .d onto .a
.p = cross --l --h
.q = cross --v --bot
@through .p .q moving .d up to .c
before after
before after

Fallout:

  • Def line params — a named-crease argument now passes its Material identity through instead of a table-line snapshot frozen at apply time (a body's cross needs marks; ADR 0016 had flagged the freeze).
  • multiple-folds.bel now needs at #(.a) — its --v scores two layers.
  • topmost_preimage and its order-consulting machinery are gone.
  • Rationale in notes/2026-07-05-cross-material-paper-space.md; Q2-B filed in antipatterns.md.

https://claude.ai/code/session_01Y3jxHMVUsXrjxSt3godSy5

Kills table-space point values: `cross` now intersects the operands' **material marks in paper space**, instead of intersecting table lines and resolving to the topmost covering layer (`Q2-B`). Paper is opaque — the topmost face can carry neither crease, so the old rule could name a point that no layer actually shows. New rule (spec §4.3, v0.19-dev): - An operand qualifies bare iff all its segments lie on one paper line. A table-bent scar crosses fine without `at`; a crease scored through several layers marks mirror-image lines on different layers and needs an `at` projection. - The crossing must lie on the marks (some segment's chord, endpoints count) — supporting lines meeting beyond the scars is an error, there is nothing to see there. - `--(.p .q)` operands are paper lines through material points; their crossing must merely be on the sheet. - `cross` is fold-state-independent — only the `at` projection reads the folded state. `fold-top-two.bel` shows the bug class this kills: `.q = cross --v --bot`, with `--bot` the *bottom* edge, resolved to a point on the *top* edge of the sheet. ``` paper square --l = through .a .d --bot = through .a .b --v = @map .b onto .a --h = @map .d onto .a .p = cross --l --h .q = cross --v --bot @through .p .q moving .d up to .c ``` | before | after | | --- | --- | | ![before](https://git.toph.so/attachments/c7e7364e-b631-4d07-8f20-2de98caf7c0a) | ![after](https://git.toph.so/attachments/9fbfcdec-ff34-4240-9a7f-016fa4012161) | Fallout: - Def line params — a named-crease argument now passes its `Material` identity through instead of a table-line snapshot frozen at apply time (a body's `cross` needs marks; ADR 0016 had flagged the freeze). - `multiple-folds.bel` now needs `at #(.a)` — its `--v` scores two layers. - `topmost_preimage` and its order-consulting machinery are gone. - Rationale in `notes/2026-07-05-cross-material-paper-space.md`; Q2-B filed in `antipatterns.md`. https://claude.ai/code/session_01Y3jxHMVUsXrjxSt3godSy5
cross now intersects the operands' paper-space material lines: a
table-bent scar crosses bare; a crease scored through several layers
needs an at-projection; the crossing must lie on the marks. Kills the
Q2-B topmost-layer resolution and table-space point values. Named
crease def arguments pass their material identity instead of a frozen
table line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y3jxHMVUsXrjxSt3godSy5
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y3jxHMVUsXrjxSt3godSy5
toph merged commit 579a9a527c into main 2026-07-05 16:05:35 +00:00
toph deleted branch feat/cross-material 2026-07-05 16:05:35 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
toph/beloch!69
No description provided.