Skip to content

Decide how a fan whose vertex lies on a folded edge closes around it #133

Closed

Description

@tophcodes

Follow-up to #52, #119, ADR 0040, ADR 0041 and ADR 0043.

#52 decided that flatten, reverse and squash are one operation in the kernel. #119 defined the reverse fold as a fan in the spec, but the kernel folds it by its opening and two blocks (ADR 0043), outside the flatten path. Moving it onto that path runs into a question the records leave open.

The vertex of a reverse fold lies where its axis meets the spine, on a folded edge. By ADR 0040 a fan sits at a table point and closes its motions around it (Kawasaki's condition in def-flatten); by ADR 0041 the condition drops when the vertex lies on the paper's edge, off the paper or at infinity. A vertex on a folded edge is none of these. On the paper, Kawasaki's condition holds around the paper point of each layer. On the table, every layer of the tip lies on one side of the spine's line, and the rays of a reverse fold satisfy the condition only when the axis is perpendicular to the spine.

To decide

  • Where the closure condition of a fan is checked: around each layer's paper point, around the table point, or not at all for a vertex on a folded edge.
  • What the sectors of a fan are at such a vertex: wedges around the table point, or the regions between the axis and the spine's line on each side.
  • Whether the letters of a fan are one per ray, as flatten takes them today, or one per hinge, since the new crease of a reverse fold takes different letters in different layers.

The answer belongs in an ADR, since it changes def-flatten. The kernel work that follows, in steps that keep every output: the vertex and the sectors generalised with flatten unchanged; letters per hinge and the blocks of an opening as the units of the stacking; reverse routed through that path.

Activity

  1. added
    kind:designNeeds Toph's judgment: a decision, an ADR, a spec question
    on Sep 30, 2026
  2. tophcodes commented on Sep 30, 2026

    @tophcodes
    OwnerAuthor

    The squash of #115 runs into the same question, and it blocks #115 until this is decided.

    On the folded preliminary base (examples/bases/preliminary.bel, with --s and --t marked on the flat sheet as in #52), the squash of the flap with spine --h & --da is a fan at the base's closed corner, table point (1/2, 1/2). There the fan has three directions on the table, the spine's edge, the axis and the centre line, all inside one 45° wedge.

    • Closure: the tip's layers do not surround the table point, so Kawasaki's condition cannot hold there; around the paper centre it holds.
    • Sectors: wedges at the table point, or the regions between the axis and the spine's line.
    • Letters: --s (mountain, one layer) and --t (valley, the other) lie on one table ray. On the centre line --ac & .a turns from flat to valley while --bd & .d stays folded, and the spine opens while the back flap's spine on the same edge stays folded. That needs letters per hinge.

    Written as a flatten today, flatten (--h & --da) (--s & --da) (--ac & .a) (--t & --da) fails with duplicate ray in collapse, and flatten (--s & --da mountain) (--ac & .a valley) (--t & --da valley) with the derived crease does not close the vertex.

    A squash built like the reverse fold of ADR 0043, by an opening and two blocks, would answer all three without deciding them here; it was not built for that reason.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:designNeeds Toph's judgment: a decision, an ADR, a spec question

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions