terrain-ecology
Skill9 starsChanged 4 months agoMITView on GitHub
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.
In this repository28 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- build-natural-worldSkill
- build-settlementSkill
- build-structureSkill
- build-systemsSkill
- design-buildingSkill
- design-citySkill
- design-groundsSkill
- design-houseSkill
- design-monumentSkill
- design-villageSkill
- exec-blueprintSkill
- exec-inspectSkill
- exec-planSkill
- exec-reflectSkill
- exec-workerSkill
- setup-connectSkill
- setup-fabricSkill
- setup-modSkill
- setup-serverSkill
- survey-researchSkill
- survey-siteSkill
- system-redstoneSkill
- system-transitSkill
- terrain-caveSkill
- terrain-integrateSkill
- terrain-landmarkSkill
- terrain-shapeSkill
The file
Files
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'sBIOME_CONTENTmix.- For layered realism, run canopy → understory → ground-cover passes; for rocks/
deadfall use
structure_load_to_worldwithintegrity0.8–0.95. - Emit the placements into
plan.toonasscatterops (exec-workerdriveslevel_place_features_batch, or per-featurelevel_place_featurewith 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_featureids 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.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

