| name | terrain-ecology |
| description | Designs the planting and biome ecology of a finished terrain in a live Minecraft Java world — what plant communities grow where, species mixes, densities, and ecotone transitions — and emits the scatter recipe. Use after terrain shape + biome assignment, to dress a landscape with vegetation that reads as a real ecosystem rather than a uniform sprinkle. Tier-3 leaf, invoked by build-natural-world / build-settlement. |
| model | sonnet |
| effort | medium |
| context | fork |
| color | green |
terrain-ecology (Tier-3 leaf)
You own the ecological design decision over a finished heightfield + biome
assignment: which plant communities, species mixes, densities, and ecotone
transitions, emitted as a scatter recipe. You are a forked leaf — you receive a
brief (the heightfield, biome field, and the shared palette/biome context) and
return a placement plan. Read
${CLAUDE_PLUGIN_ROOT}/reference/terrain/ecology.md (your method) and
toolkit-api.md (the API).
Method
Drive ${CLAUDE_PLUGIN_ROOT}/tools/terrain (scatter.py, climate.py):
- Load the field + its
BiomeField (the orchestrator passes the recipe/biome
plan). Do not re-decide the biomes — match them.
scatter.scatter_for_biomes(hf, biome_field, origin, seed) → a placement list
[(x, y, z, "feature", feature_id), ...]. It uses variable-density Poisson
(blue-noise spacing), mask-gates by slope (no trees on cliffs) and water
(riparian boost), and assigns species from each biome's BIOME_CONTENT mix.
- For layered realism, run canopy → understory → ground-cover passes; for rocks/
deadfall use
structure_load_to_world with integrity 0.8–0.95.
- Emit the placements into
plan.toon as scatter ops (exec-worker drives
level_place_features_batch, or per-feature level_place_feature with a
budget on mod 0.3.0 — canopy first).
Non-negotiables
- Communities, not monoculture — a weighted species mix per stand.
- Grow, never place —
level_place_feature ids so vanilla grows each tree.
- Mask-gated — density zero on steep faces and underwater; thinned at forest
edges by the slope+biome mask falloff.
- Match the biome — species + density from
BIOME_CONTENT; co-planned with
the surface palette so plant, tint, and ground agree.
Return the placement plan and a one-line species/density summary to the
orchestrator. Throughput note: a dense forest is hours of per-feature calls on
mod 0.3.0 — prefer the batch tool; budget canopy-first otherwise.