Skip to content

v0.4.0

Latest

Choose a tag to compare

@tophcodes tophcodes released this 25 Sep 13:12
e66238b

The traditional crane folds flat end to end, and the site moved to
belochlang.org.

The language. A meet, --x * --y or .[--x --y …], is the one paper
point its operands share when both are read as sets of points (ADR 0027).
Every meet 0.3.0 accepted keeps its point. Operands that lie on more than one
line, such as a crease bent by a fold or a paper edge, now meet wherever they
share exactly one point, and narrowing with & is optional there. A meet that
fails says which of three things went wrong: no common point, several (listed
in paper coordinates), or a shared stretch.

Errors. An error carries its hint apart from its message (ADR 0028). The
command line prints the hint as a help line under the caret; the playground
shows it as a quieter row below the underlined word. A kernel precondition
failure is reported against the statement that caused it.

The output. The FOLD file carries more provenance. beloch:statements
lists every top-level statement with the axis it moves, beloch:edges points
into that list by index, and the new beloch:references records every place
the program mentions a crease by name. Named points and lines say which
statement bound them. spec/FOLD.md has the fields.

Speed. The number kernel admits field generators up to degree 4, searches
for field embeddings on a precision ladder and caches them per generator pair,
and a folded state derives its face polygons once. The crane through step 16
took 373 s natively before this release and takes 1.4 s now; the FOLD output
is unchanged at 9 decimals.

What runs. examples/crane.bel follows steps 2 to 17 of Ida's crane
program (Tetsuo Ida, An Introduction to Computational Origami, Fig. 7.19) in
sixteen statements; the bird bases locate
their centre and side corners as meets. The playground, the cards in the
documentation and the tour of the model share one runtime (ADR 0024): a
clicked crease lights the statement that made it, a crease the program never
named carries its source line, and a coincidence asks which line the reader
meant.

What does not. Flat folded states only, no 3D and no thickness.
Step-by-step folding diagrams are a goal and are not implemented. check and
lsp are stubs. Annotations (ADR 0029) and the flat statement log (ADR
0030) are decided and not implemented; both change the FOLD output again.