Generate a plant¶
Produce a procedural plant from species, age, and position. Useful for method comparison, sensitivity analysis, and synthetic training data. See Plant models for the conceptual background.
Run it¶
-
Click Generate Plant (sprout icon) in the toolbar. The popup opens.
-
Species — pick from the dropdown. Species are grouped:
- Trees — almond, apple, apple (fruiting wall), eastern redbud, olive, pistachio, walnut
- Vines — bougainvillea, plus grapevine in seven training systems (VSP, Wye, GDC, Geneva double curtain, vertical shoot positioned, sprawl, unilateral cordon)
- Cereals — maize, rice, sorghum, wheat
- Vegetables — asparagus, bean, butter lettuce, capsicum, cherry tomato, cowpea, soybean, strawberry, sugarbeet, tomato
- Weeds — bindweed, cheeseweed, ground cherry weed, puncturevine
A sixth Other group appears if the backend offers a model that isn't in one of the groups above. The default selection is bean.
-
Age — target age in days. Younger plants are smaller and have fewer branches; the same species at 30, 365, and 1825 days looks very different.
-
Position — (X, Y, Z) of the plant base, in meters. Defaults to the world origin. Set this when generating multiple plants so they don't overlap.
-
Generate as canopy — toggle this to build a regularly spaced grid of plants instead of one. See Generate a canopy below.
-
Advanced Options → Use Random Seed — off by default, meaning no seed is sent and each run produces a different plant. Tick it and enter a seed to pin the result so the same species/age/seed regenerates identically.
-
Click Generate Plant.
Generation takes anywhere from a couple of seconds (young vegetable) to a minute (mature tree). While it runs, the popup stays open and shows a progress bar with the current phase ("Growing plants…", "Packing geometry…") and a Cancel button if you want to abort a long build. Cancelling genuinely stops the work: it signals the backend to break out of the build, so a long canopy or growth simulation halts between plants (or growth steps) and its memory is released within a moment rather than running to completion in the background. When it finishes, the mesh appears in the Meshes list and the Plant panel opens at the right for further control.
Changing a plant's age¶
Once a plant is in the scene, open the Plant Growth panel (from the command palette, ⌘/Ctrl+K → Plant Growth Panel) with the plant selected. It regrows the plant to a new age in place — much faster than re-running Generate:
- Current Age — the plant's age in days.
- Quick Adjust —
-1/+1day buttons. - Custom Step — step by an arbitrary number of days.
- Go to Age — type a target age and click Go.
The panel also has a Growth Animation section: set a start and end age, then Start to play the plant's development, or Make GIF to record it (with background and camera-view options). Stop ends it early.
Changing a plant's age is not undoable — it recreates the backend session, so it clears the undo history for that plant.
Generate a canopy¶
To build a regularly spaced stand of plants in one step, toggle Generate as canopy in the Generate Plant popup. The single-plant Position becomes the Canopy center, and these controls appear:
- Spacing (m) — distance between neighboring plants in X and Y.
- Count (plants) — number of columns (X) and rows (Y). The popup
shows the total (
columns × rows). - Advanced → Germination rate — probability (0–1) that each grid
position is filled.
1.0fills every position; lower values leave random gaps, simulating a realistic stand with missing plants.
All species share the chosen age. Click Generate Canopy. The whole
grid comes back as a single merged mesh — one row in the Meshes
list, named like bean canopy 3×3 (30d) — so you can hide, color, and
export the canopy as one object. Because a canopy can build many plants,
generation takes proportionally longer than a single plant — the popup's
progress bar tracks the build, and Cancel stops it.
Canopies are fixed-age
Unlike single plants, a canopy has no live age slider — it is built at the chosen age. To change the age, regenerate the canopy.
Generate several plants individually¶
If you need plants you can hide, color, and export independently, repeat the Generate Plant workflow (canopy toggle off) with different positions. Each plant is then its own mesh entry.
Common follow-ups¶
- Simulate a LiDAR scan of the plant — produce the cloud a real scanner would see, useful as ground-truth input.
- Morph a plant — change geometry parameters interactively.
- Register & compare — compare a generated plant to a real scan.
Common problems¶
"Generation crashes or hangs." Most likely cause: the requested age is unrealistic for the species (e.g., 10,000 days for an annual). Check the species' typical lifespan and stay within it. The next most common cause is running out of memory on a very dense species (mature trees with full foliage). Reduce age or switch to a smaller species.
"The plant looks wrong / unrealistic." The Helios species library is parameterized from published literature but defaults may not match your specific cultivar. Use Morph a plant to adjust. If you find consistently better parameters, save them via Morph → Export parameters and reuse.