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.