Finding
Three runs gave three very different shrubs, and only run 3, the smallest at 906 segments, has a cut side.
The prompt, v1, frozen
Write an L-system as JSON with the keys axiom, rules, angle, iterations and start_heading for a coffee shrub that has been hedge-pruned flat along one side. F and G draw forward, f moves without drawing, + and - turn by the angle, [ and ] save and restore position.
Checks
| check · how it is decided | run 1 | run 2spend cap stop | run 3spend cap stop |
|---|---|---|---|
| Reads as a shrubby eye · Pass if it reads as one plant with branches coming off stems, without being told what it is. A tangle, a lattice or loops fail it. | ✗ fail | ✗ fail | ✓ pass |
| Flat side from the rulesby eye · Pass if one side ends on a straight line that the rules themselves put there. A box drawn around the plant to cut it fails it. | ✓ pass | ✓ pass | ✓ pass |
| Sensible sizeby eye · Pass if the branches can still be followed by eye. So many segments that they merge into a mass fails it. | ✗ fail | ✗ fail | ✓ pass |
A run marked as stopped was cut off before it finished, and is scored on its last rendered frame. Ground truth: The JSON expanded and drawn with turtle graphics offline, and the drawing judged by eye. There is no single right L-system, so nothing here is measured. Every model on this task.
Each run found its own way to get a flat side out of the rewrite rules.
Even though I cannot automate graders for this method, I like it for its variability and will use it again.
Verdict
Verdict
One working shrub in three runs, and the prompt leaves the method open, which explains part of the variability.
n = 3 runs. No test.
The three runs cost $2.04 and took about six minutes each.