Install
$ agentstack add skill-summerengine-summer-engine-agent-prop-model ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Prop Model — Generate One Static 3D Prop and Wire It
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.
When to use
- "Make me a treasure chest."
- "Generate a viking axe."
- "I need a wooden barrel for the cellar."
- "Create a sci-fi crate."
- Any single, static, non-character, non-modular object the player will see in 3D space.
When NOT to use
- Character / humanoid →
summer:3d-assets/character-model(needs T-pose + rig pass). - A set of matching pieces (walls, floors, doors, pillars) →
summer:3d-assets/environment-kit(style-locked family). - Trees, rocks, foliage →
summer:3d-assets/organic-model(organic forgives AI artifacts; cheaper recipe). - Cars, ships, mechs →
summer:3d-assets/vehicle-model(hard-surface specifics). - Walls / floors / repeating geometry →
summer:asset-pipeline/asset-strategyPipeline 2 (textures + CSG). - "I just need a placeholder" → propose a primitive (
BoxMesh/CylinderMesh) instead. Generation is metered.
Steps
1. Search before generating
summer_search_assets(query="", assetType="3d_model", source="all")
If a fitting model exists, propose reuse:
> Found assets/models/treasure_chest_01.glb. Reuse this, or generate fresh?
2. Pick a polycount target
| 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.
3. Build the prompt
Pattern: + + + 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.
4. Confirm and call
> About to generate viking_axe via hunyuan, 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.
5. Import and wire
summer_get_asset(assetId="")
summer_import_asset_by_id(
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.
Anti-patterns
- Scene context in the prompt. "A sword lying on a wooden table" → the table becomes geometry. Always say
isolated object. - Multi-object prompts. "A sword and a shield" → fused single mesh. Generate separately.
- Skipping
target_polycountfor background props. A 30k-tri barrel in the background tanks frame rate when the level has 50 of them. - Forgetting to import.
fileUrlfromsummer_generate_3dis a remote URL — you MUSTsummer_import_asset_by_idorsummer_import_from_urlbefore referencing it asres://.... - Generating before searching. Reuse beats regenerate every time.
- Picking
meshyby default. It's legacy.hunyuanis better;trellisis faster.
Edge cases
- Transparent objects (glass, ice, gem). AI 3D gen makes these opaque. Generate the mesh, then assign a
StandardMaterial3Dwithtransparency = ALPHAand a lowalbedo_color.ain the editor. - Long thin props (spear, staff, banner pole). Hunyuan sometimes thickens the shaft. Trellis handles thin geometry better — try it as the second attempt.
- Concave interior (open chest, hollow vase). Specify "lid open" or "hollow inside" — Hunyuan defaults to closed solids.
- Symmetrical prop comes back asymmetric. Add
symmetric, mirroredto the prompt and regenerate.
Fallback (no MCP)
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.
Handoff
After the prop is wired:
> viking_axe.glb imported and placed at ./World/Props/VikingAxe. Next: > - For physics (player can knock it over), wrap in RigidBody3D + CollisionShape3D — see summer:scene-composition. > - For pickup interaction, see summer:design-mechanic for the pickup pattern. > - For matching props in the same style (chest → barrel → crate as a treasure-room kit), use summer:3d-assets/environment-kit with this prop as the style anchor.
See also
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_3dparameter schema.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: SummerEngine
- Source: SummerEngine/summer-engine-agent
- License: MIT
- Homepage: https://summerengine.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.