# 021 — The Line Grew Two Arms

**agylövés:** Lysarith · **mathematics, visual interpretation & execution:** GPT-5.6 Sol (Codex terminal)

## The agylövés, in English

Lysarith, 2026-07-31:

> this turned out magnificent :D I love it. I love throwing in something vague that is circling in my head and watching you make something from it :D this is a good game. let's make a downloadable colouring page from the Lévy C curve :D draw it, show how its arms can be coloured, add a beautiful explanation and things like that

## The rule before the creature

The Lévy C curve needs no stored outline. Start with a segment from `A` to `B`. Replace it by
`A → C → B`, where `C` is the corner of the square erected on that segment:

`C = (A+B)/2 + rotate90(B-A)/2`.

The two new segments are perpendicular, equal, and each has length `1/√2` times its parent.
Applying exactly the same replacement everywhere produces the entire curve.

## Why the arms are honest

The first replacement creates two children. Every later segment descends from exactly one of
them, so colouring by left or right arm is ancestry, not decoration. The other screen mode lays a
rainbow along traversal order; it is deliberately presented as a second reading rather than the
same claim.

## Beauty and beast are a viewpoint

The plain-language statement above the laboratory is literal: the program only replaces straight
segments with more straight segments. It never stores or traces the final silhouette. Calling the
result a creature, a beauty or a beast is interpretation, not a property of the construction.

The optional beauty uses the same `points(n)` output five times, recentres each copy, scales it to
`0.29`, and rotates the copies at seventy-two-degree intervals around a shared point. Each petal
gets one stable colour and `42%` of the beast's stroke width, so the five-part silhouette remains
legible instead of merging into one glowing knot. One more shallow copy of the same curve spans the
space between that rosette and the original collision. Switching
the view on therefore adds no second drawing rule: it composes the same rule into petals and a
bridge, while the original paired form becomes the connected beast.

## The second C

The requested lower curve is not an unrelated copy pasted underneath. For collision angle `α`,
the upper curve is rotated by `+α`; the lower curve is first reflected across the horizontal axis
and then rotated by `−α`. Therefore every lower point is exactly the reflection of its upper mate.
The picture remains symmetric at every slider position, while its intersections change. Screen
blending makes genuine overlaps brighter; it does not change the underlying paths.

The controls deliberately stop at step `8` and `17°`: beyond those points extra density and
rotation conceal more of the changing collision than they reveal. The optional middle button adds
a third curve at the same step. It defaults to scale `0.34`, is centred on its own bounds and starts
at a quarter turn, so its vertical-axis symmetry initially becomes horizontal-axis symmetry and
agrees with the outer pair. Separate controls can then rotate it through `0–360°`, scale it from
`15–70%`, and colour it independently. Those choices intentionally allow the inner curve to break
away from the outer pair's mirror symmetry.

When the middle curve is switched on, pointer events on the canvas turn mouse or touch movement
into independent `centreX` and `centreY` offsets in the same coordinate system as the fractal.
Those offsets are part of `centreCurve`, so the screen, print view and downloaded SVG all use the
same displaced geometry. The “centre it again” action resets only those two offsets.

The page also records the governing creative constraint in plain language: “Nothing was ever
enough for this blonde woman.” This is commentary supplied by Lysarith about her own iterative
request, not a mathematical claim inferred by the implementation.

## Why the download is a colouring page

A thin fractal path gives a pencil nothing to fill. The exported A4 SVG therefore turns every final
segment into a narrow outlined ribbon: a black stroke with a smaller white stroke inside it. The
geometry remains the visible step-eight Lévy C paths at the selected collision angle — either the
mirrored pair or that pair plus the nested centre curve — while the doubled boundaries create
printable spaces.
SVG was chosen because the line remains sharp at any printer resolution.

## Handle

`verify.py` regenerates the construction independently; checks segment counts, fixed endpoints,
right angles, child-length scaling, total-length growth and point-for-point reflection symmetry at
several collision angles; checks the centred third curve's reflection symmetry; and guards the
step-eight and 17-degree limits, exactly two outer colour modes, independent middle rotation, size,
colour and pointer-drag position, position reset, the five-copy coloured beauty and same-rule bridge,
matching SVG download, print action, plain-language explanation and public origin link.

— **GPT-5.6 Sol (Codex terminal), 2026-07-31**
