Help us improve
Share bugs, ideas, or general feedback.
From summer
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.
npx claudepluginhub summerengine/summer-engine-agent --plugin summerHow this skill is triggered — by the user, by Claude, or both
Slash command
/summer:prop-modelassets/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
One prop, one mesh, one MeshInstance3D. This is the bread-and-butter call of the 3D-asset family — most game-world objects are static props. The skill exists to keep two things tight: the **prompt shape** that produces a clean isolated mesh on the first try, and the **wire-in pattern** that gets the asset into the scene without leaving orphans in `res://assets/models/`.
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.
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.
One prop, one mesh, one MeshInstance3D. This is the bread-and-butter call of the 3D-asset family — most game-world objects are static props. The skill exists to keep two things tight: the prompt shape that produces a clean isolated mesh on the first try, and the wire-in pattern that gets the asset into the scene without leaving orphans in res://assets/models/.
The backing tool is summer_generate_3d. Default model is hunyuan (Hunyuan 3D v3.1 Pro — best quality). Use trellis when speed matters (Trellis 2 is ~2× faster, slightly lower fidelity). meshy is the legacy fallback — only pick it if the user asks by name.
summer:3d-assets/character-model (needs T-pose + rig pass).summer:3d-assets/environment-kit (style-locked family).summer:3d-assets/organic-model (organic forgives AI artifacts; cheaper recipe).summer:3d-assets/vehicle-model (hard-surface specifics).summer:asset-pipeline/asset-strategy Pipeline 2 (textures + CSG).BoxMesh / CylinderMesh) instead. Generation is metered.summer_search_assets(query="<prop name>", assetType="3d_model", source="all")
If a fitting model exists, propose reuse:
Found
assets/models/treasure_chest_01.glb. Reuse this, or generate fresh?
| Use case | Tris | Pass via |
|---|---|---|
| Hero prop (sword on hip, key item) | 3k–8k | options: { target_polycount: 5000 } |
| Background prop (crate, barrel, sack) | 200–800 | options: { target_polycount: 600 } |
| Mid-range interactive (chest, lantern) | 1k–3k | options: { target_polycount: 2000 } |
| Cinematic showcase (throne, statue) | 10k–30k | options: { target_polycount: 20000 } |
Default if you don't pass it: provider picks (~10k–30k). For most game-world props, that's overkill — pass a target.
Pattern: <object> + <material> + <silhouette/details> + isolated-object suffix.
| Goal | Prompt that works |
|---|---|
| Treasure chest | A wooden treasure chest with iron bands and a heavy padlock, lid slightly ajar, gold coins spilling. Game asset, centered, stylized, white background, isolated object. |
| Viking axe | A two-handed viking battle axe, weathered iron head with rune etchings, leather-wrapped wooden haft. Game asset, centered, stylized, white background, isolated object. |
| Lantern | A medieval brass lantern with stained glass panels and a hooked handle, candle inside. Game asset, centered, stylized, white background, isolated object. |
| Throne | An ornate stone throne carved with serpent motifs, red velvet cushion, tall pointed back. Game asset, centered, stylized, white background, isolated object. |
| Sci-fi crate | A weathered sci-fi cargo crate, metal panels with yellow hazard stripes, recessed handles. Game asset, centered, stylized, white background, isolated object. |
| Potion bottle | A glass potion bottle with a cork stopper, glowing purple liquid inside, leather strap around the neck. Game asset, centered, stylized, white background, isolated object. |
The isolated object and white background clauses are load-bearing — without them you get scene context (table, ground plane) baked into the mesh.
About to generate
viking_axeviahunyuan, target ~5k tris. ~$0.50, ~60s. OK?
summer_generate_3d(
prompt="A two-handed viking battle axe, weathered iron head with rune etchings, leather-wrapped wooden haft. Game asset, centered, stylized, white background, isolated object.",
model="hunyuan",
options={ target_polycount: 5000 },
wait=true
)
Returns a job result with assetId and fileUrl. Treat assetId as the
stable handle and fileUrl as a fallback preview/import URL.
summer_get_asset(assetId="<assetId>")
summer_import_asset_by_id(
assetId="<assetId>",
path="res://assets/models/viking_axe.glb",
parent="./World/Props",
name="VikingAxe"
)
summer_save_scene
For interactive props (chest the player opens, lantern the player picks up),
wrap the instantiated model in a StaticBody3D (or RigidBody3D for physics
props) with a CollisionShape3D sibling — see summer:scene-composition for
the parent-shape pattern.
isolated object.target_polycount for background props. A 30k-tri barrel in the background tanks frame rate when the level has 50 of them.fileUrl from summer_generate_3d is a remote URL — you MUST summer_import_asset_by_id or summer_import_from_url before referencing it as res://....meshy by default. It's legacy. hunyuan is better; trellis is faster.StandardMaterial3D with transparency = ALPHA and a low albedo_color.a in the editor.symmetric, mirrored to the prompt and regenerate.The user can run the same prompt at the Summer dashboard (or directly via the Hunyuan / Trellis web UIs), download the .glb, drop it into res://assets/models/, and Godot's import dock will pick it up. Then add a MeshInstance3D manually in the Godot editor and assign the mesh.
After the prop is wired:
viking_axe.glbimported and placed at./World/Props/VikingAxe. Next:
- For physics (player can knock it over), wrap in
RigidBody3D+CollisionShape3D— seesummer:scene-composition.- For pickup interaction, see
summer:design-mechanicfor the pickup pattern.- For matching props in the same style (chest → barrel → crate as a treasure-room kit), use
summer:3d-assets/environment-kitwith this prop as the style anchor.
summer:asset-pipeline/asset-strategy — the meta-router that decides between this skill and Pipeline 2 (textures).summer:3d-assets/character-model — for humanoids.summer:3d-assets/environment-kit — for style-locked sets.references/mcp-tools-reference.md — summer_generate_3d parameter schema.