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 |
Prompt v1, checks c1, harness h1. 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
One working shrub in three runs. The prompt leaves the method open, and each run used a different one.
n = 3 runs. No test.
The three runs cost $2.04 and took about six minutes each.