Skip to content
Русский

The [curve] table

A parametric_curve preset picks its figure with one line:

system = "parametric_curve"
[curve]
family = "superformula" # one of the five below; any other name is a load error

family is read once, at load, and is not bindable — the params animate the figure, they do not choose it. A preset with no [curve] table draws the Maurer rose.

The five families share one parameter surface, following ADR-0180: n, d and phase mean something different on each, and five further levers are read by one family only and do nothing on the rest.

familyThe figurendphaseIts own levers
maurer_roser = sin(n θ + phase) + radial_offset, walked at a fixed steppetal frequencythe step between samples, in degreesadded inside the sine, in radiansradial_offset
lissajousx = sin(n t + phase), y = sin(d t)x frequencyy frequencyoffset between the axes, as a fraction of a turnnone
hypotrochoida circle rolling inside the fixed one (outside, for a negative n), traced by a pensigned radius ratio: positive rolls inside, negative draws the epicycloidcusps walkedwhere the pen starts on the rolling circle, as a fraction of a turnpen
superformulaGielis’ r = (|cos(m θ/4)|^n2 + |sin(m θ/4)|^n3)^(-1/n1)inertskew between the lobe exponents, n3 = lobe * dinertsym (m), sharpness (n1), lobe (n2)
harmonographthe Lissajous figure damped by exp(-decay t) over four turns, spiralling inwardx frequencyy frequencyoffset between the axes, as a fraction of a turndecay

Three things about the table are worth saying out loud:

  • Bind n and d on every family but the rose. Their defaults, 6 and 71, are the rose’s, and they read as face values elsewhere: an unbound Lissajous is a 6:71 figure, and an unbound superformula takes d = 71 as its maximum skew.
  • Whole numbers close the figure. A Lissajous with whole n and d, a harmonograph with those and decay = 0, a hypotrochoid whose d / |n| is whole, and a superformula with d = 1 or an even sym all come back to their start and are drawn as one unbroken loop. Anything else is an open trace, and it morphs continuously as an expression sweeps it.
  • The four new families are drawn as smooth arcs, not chords. The rose keeps its chord web at a large step. The harmonograph falls back to chords only when a hard decay has collapsed its inner turns below what the fit can resolve.

The range that reads for each of these parameters on each family is printed in the parametric_curve table of Parameter roster, which also marks every family a parameter is inert on.

Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.