Help us improve
Share bugs, ideas, or general feedback.
From summer
Generates organic 3D models (trees, rocks, mushrooms, coral, alien plants) for scene filling. Use for natural, asymmetrical shapes where AI artifacts look natural. Cheapest and fastest 3D asset generation.
npx claudepluginhub summerengine/summer-engine-agent --plugin summerHow this skill is triggered — by the user, by Claude, or both
Slash command
/summer:organic-modelassets/organic/**assets/models/****/*.tscn**/*.gdThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Organic shapes (trees, rocks, mushrooms, coral, alien flora, crystals, vines, bones) are **the most forgiving category for AI 3D generation**. Lumps look natural. Asymmetry looks natural. Smoothing-group artifacts read as bark texture. The "melted" look that ruins vehicles and characters is fine on a mossy boulder.
Generates a single static 3D prop (sword, chest, barrel, lantern, statue, crate, etc.) as a MeshInstance3D. Searches existing assets before generating and wires the mesh into the scene. Uses summer_generate_3d with hunyuan, trellis, or meshy backends.
Generates custom 3D models from text or images using Meshy AI, auto-rigs and animates them for Three.js games. Use when needing custom GLB assets beyond free libraries.
Builds interactive 3D web scenes with Three.js using WebGL/WebGPU. Guides on scenes, cameras, renderers, geometries, materials, meshes, lights, animations, and OrbitControls.
Share bugs, ideas, or general feedback.
Organic shapes (trees, rocks, mushrooms, coral, alien flora, crystals, vines, bones) are the most forgiving category for AI 3D generation. Lumps look natural. Asymmetry looks natural. Smoothing-group artifacts read as bark texture. The "melted" look that ruins vehicles and characters is fine on a mossy boulder.
This is the cheapest, fastest way to fill out a scene. Use it liberally — it's the recommended go-to when the user says "this scene feels empty". Each generation is ~$0.30–0.50, and the failure rate is the lowest of any 3D-asset family.
Backing tool: summer_generate_3d. Default hunyuan is great here, but trellis is faster and quality difference is mostly invisible on organic shapes — trellis is the recommended pick when generating many at once.
summer:3d-assets/character-model (rigging matters).summer:3d-assets/prop-model or summer:3d-assets/vehicle-model.summer:asset-pipeline/asset-strategy Pipeline 2 (textures, not meshes).summer:3d-assets/prop-model with higher polycount and detail attention.Organic geometry tolerates aggressive polycount cuts because the silhouette is irregular — viewers can't spot poly-count drops the way they spot a low-poly cylinder.
| Use case | Tris | Pass via |
|---|---|---|
| Hero tree (mid-distance, prominent) | 4k–8k | target_polycount: 6000 |
| Background tree (forest filler) | 1k–3k | target_polycount: 2000 |
| Distant tree (use billboard imposter) | 200–500 | target_polycount: 400 |
| Large rock / boulder | 800–2000 | target_polycount: 1500 |
| Small organic (mushroom, fruit, crystal) | 300–1000 | target_polycount: 600 |
| Vine / branch decoration | 200–500 | target_polycount: 400 |
Generating a forest? Make 3 hero trees + 5 background trees + 3 rocks at low polycount, then scatter via MultiMeshInstance3D for hundreds of copies at near-zero rendering cost.
summer_search_assets(query="<organic type>", assetType="3d_model", source="all")
Pattern: <species> + <state/condition> + <key features> + isolated suffix. Organic prompts are shorter than prop prompts — the model already knows what a tree looks like.
| Goal | Prompt that works |
|---|---|
| Pine tree | A tall pine tree with dense green needles and a straight trunk, slight lean. Game asset, stylized low-poly game art, white background, isolated object. |
| Oak tree | A wide oak tree with sprawling branches and seasonal autumn leaves in orange and red. Game asset, stylized, white background, isolated object. |
| Boulder | A large mossy boulder, irregular weathered surface, patches of green moss on top. Game asset, stylized, white background, isolated object. |
| Glowing mushroom | A cluster of three bioluminescent mushrooms on a small mossy base, pale cyan glow, translucent caps. Game asset, stylized, white background, isolated object. |
| Alien plant | An alien spiral plant with tendril-like fronds, deep purple with glowing pink tips, growing from a bulbous base. Game asset, stylized, white background, isolated object. |
| Coral cluster | A branching coral cluster, bright orange and pink, sea-fan shapes, multiple branches. Game asset, stylized, white background, isolated object. |
| Crystal | A jagged amethyst crystal cluster growing from a stone base, deep purple with translucent facets. Game asset, stylized, white background, isolated object. |
| Vine | A hanging jungle vine with broad green leaves and small white flowers, ~2 meter length. Game asset, stylized, white background, isolated object. |
Organic prompts that DON'T work:
| Bad prompt | Failure mode |
|---|---|
a tree | Returns a generic tree, but inconsistent species across regenerations — the scene looks chaotic. Always specify species. |
a forest | Returns one fused mesh of multiple trees → impossible to scatter. Generate one tree, scatter via MultiMeshInstance3D. |
realistic tree with photoreal bark | Realistic = expensive polycount, ugly when stylized assets surround it. Match scene style. |
a tree on a hill | The hill becomes geometry. Always say isolated object. |
About to generate
pine_tree_01viatrellis, target ~2k tris. ~$0.30, ~30s. OK?
For batch generation, batch the confirmation:
About to generate 3 trees + 3 rocks + 5 mushrooms (11 generations, ~$3.50, ~5 min). All low-poly via
trellis. OK?
summer_generate_3d(
prompt="A tall pine tree with dense green needles and a straight trunk, slight lean. Game asset, stylized low-poly game art, white background, isolated object.",
model="trellis",
options={ target_polycount: 2000 },
wait=true
)
summer_get_asset(assetId="<assetId>")
summer_import_asset_by_id(assetId="<assetId>", path="res://assets/organic/pine_tree_01.glb")
If the user wants "five rocks", don't generate one rock and copy it five times in the scene — generate five subtly different prompts:
"A medium boulder, mossy granite, rounded shape"
"A medium boulder, weathered limestone, sharp jagged edges"
"A medium boulder, dark basalt, flat-topped"
"A medium boulder, sandstone, layered horizontal striations"
"A medium boulder, mossy granite, tall narrow shape"
Then scatter all five with random rotation. Five unique meshes + rotation = looks like 50 unique rocks.
| Use case | Wiring | Notes |
|---|---|---|
| Single hero tree, mid-scene | MeshInstance3D under Node3D | One per scene; nothing fancy |
| Forest scatter (50+ trees) | MultiMeshInstance3D with one mesh ref | Single draw call for all instances |
| Foliage variety (3 species) | One MultiMeshInstance3D per species | Each species is one draw call |
| Distant trees | Billboard imposter (Sprite3D with a tree image) | Switch from mesh to billboard at ~50m via LOD |
| Rocks with collision | StaticBody3D parent + CollisionShape3D (ConcaveShape from mesh) | Only for rocks the player can walk into |
| Rocks without collision (background) | Just MeshInstance3D | Most distant rocks don't need it |
Hero tree:
summer_add_node(parent="./World/Forest", type="MeshInstance3D", name="HeroOak")
summer_set_prop(path="./World/Forest/HeroOak", property="mesh", value="res://assets/organic/oak_tree.glb")
summer_save_scene
Forest scatter (MultiMesh): create a MultiMeshInstance3D, assign a MultiMesh resource referencing the tree mesh, set instance_count to e.g. 100, and populate set_instance_transform() from a script with random positions + rotations. See summer:scene-composition for the scatter pattern.
For dense forests, the cheapest fix beyond MultiMesh is the billboard imposter:
EditorScript can capture a viewport).Sprite3D with billboard = enabled.MeshInstance3D to Sprite3D at ~50m camera distance via Godot's VisibleOnScreenNotifier3D or a custom LOD script.For a 200-tree forest, ~10 close trees are real meshes, 190 are billboards. Frame budget saved: ~80%.
meshy (legacy). No reason to — trellis is faster and hunyuan is higher quality.summer:vfx/shaders (when available). No animation rig needed.floating, suspended in water.thin tendril, fine branches, or accept and scale Y down in the editor.covered in snow, frosted, ice crystals to the prompt — works well on trees and rocks. For temperature variants of the same scene, generate the variant rather than retexturing.StandardMaterial3D with transparency = ALPHA and emissive in the editor.weathered, sun-bleached for desert / tundra feel..glb files into res://assets/organic/.For totally free / offline alternatives: Quaternius (free stylized organics), AmbientCG (rocks + textures), Sketchfab free filter, Polyhaven (HDRIs + scans).
After the organic models are scattered:
Forest scatter ready: 3 species at
res://assets/organic/, 100 instances each via MultiMeshInstance3D in./World/Forest. Next:
- Wind shader (sway in breeze):
summer:vfx/shaderswhen available, or hand-write a vertex displacement shader.- Ground texture (grass beneath the trees):
summer:asset-pipeline/asset-strategyPipeline 2 for tileable ground.- Lighting / fog (forest mood):
summer:3d-lightingfor ambient + directional sun + volumetric fog.- Ambient audio (forest birds, leaves):
summer:audio/ambient-bed.- Hero props (a stump, a fallen log, a shrine):
summer:3d-assets/prop-modelfor the hand-placed standouts.
summer:3d-assets/prop-model — for hand-placed standout pieces.summer:3d-assets/environment-kit — pair with this skill: kit pieces give the architecture, organic gives the natural softness.summer:asset-pipeline/asset-strategy — meta-router; ground textures and skyboxes go to Pipeline 2 / panoramic gen.summer:scene-composition — MultiMeshInstance3D scatter pattern.references/mcp-tools-reference.md — summer_generate_3d schema.