Sliders
2,642 limbs · 5,293 leaves 3,216 rule applications in 53 ms
Language
param NAME = VALUE in MIN..MAX [step S]   a slider
start RULE[(ARGS)] [TRANSFORMS]            (default: the first rule)
minsize N                                  drop calls smaller than N

RULE[(PARAMS)] [when COND | weight W]: BODY
  The first alternative whose when holds is used;
  otherwise one without when, chosen by weight.

Statements (indent a block, or ; on one line):
  limb LENGTH [RADIUS [END]]   woody; moves to its end
  stem LENGTH [RADIUS [END]]   green; moves to its end
  leaf [LENGTH [WIDTH]] [TRANSFORMS]
  ball [RADIUS [HEIGHT]] [TRANSFORMS]   spheroid
  box WIDTH [HEIGHT [DEPTH]]   stands here; moves to its top
  prism WIDTH [HEIGHT [DEPTH]] a box with a ridge (a roof)
  RULE[(ARGS)] [TRANSFORMS]    a call, in its own frame
  TRANSFORM                    changes this frame
  repeat N [as VAR]: BODY      VAR (default i) counts from 0
  if COND: BODY [else: BODY]

Transforms: tilt, turn, roll DEGREES; scale K; move D;
  shift X, Y, Z (along left, heading, up);
  bend DEGREES (toward the ground, times sin of the angle
  from vertical; negative bends up);
  color R, G, B (0 to 1); hsl H, S, L (hue in degrees)

Expressions: + - * / % ^, comparisons, and or not,
  A ± B (or A +- B): uniform in [A-B, A+B];
  rand() rand(A, B) min max abs sqrt floor sin cos
  acos asin atan2 clamp; size (current scale), depth,
  height (world y). Separate arguments with commas
  when one starts with a minus.

Drag to orbit, scroll to zoom, double-click to reset.