3D Asset Generator

Scenario 3D Asset Workflows

by scenario-labs · MIT license · ★ 854 on GitHub

Scenario 3D Asset Workflows cover

Use when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel…

---
name: scenario-3d
description: Use when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel models, multi-view reconstruction, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the inline 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender.
license: MIT
---

# Scenario 3D Asset Workflows

## Overview

Scenario runs text-to-3D, image-to-3D, and 3D-to-3D models behind the same MCP generation loop used for images. The most reliable pipeline generates a concept image first, then feeds it to an image-to-3D model; direct text-to-3D exists (`txt23d`) but image-to-3D has the larger catalog and more art direction control. Per-family contracts: `scenario-meshy`, `scenario-rodin`, `scenario-sparc3d`. Walkable scenes and Gaussian splats: `scenario-3d-worlds`. Retexturing a finished mesh or scene with PBR materials: `scenario-patina-retexture`. Connection and the core generation loop: see the `scenario` skill. If a sibling skill named here is missing from your available skills, ask the user to install it (`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and flag the gap.

## Quick reference

| Step           | Tool                                                                           | Notes                                                                                                                                                                       |
| -------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Find 3D models | `recommend` with the capability and the user's own words (`search` for a name) | Capabilities: `txt23d`, `img23d`, `3d23d`                                                                                                                                   |
| Inspect inputs | `model_schema_get`                                                             | Always call before `model_run`                                                                                                                                              |

Overview

Scenario runs text-to-3D, image-to-3D, and 3D-to-3D models behind the same MCP generation loop used for images. The most reliable pipeline generates a concept image first, then feeds it to an image-to-3D model; direct text-to-3D exists (txt23d) but image-to-3D has the larger catalog and more art direction control. Per-family contracts: scenario-meshy, scenario-rodin, scenario-sparc3d. Walkable scenes and Gaussian splats: scenario-3d-worlds. Retexturing a finished mesh or scene with PBR materials: scenario-patina-retexture. Connection and the core generation loop: see the scenario skill. If a sibling skill named here is missing from your available skills, ask the user to install it (npx…

Manual install (npx, ZIP)
Claude Codenpx skills add scenario-labs/skills --skill scenario-3d -g -a claude-code
Claude Code (degit)npx degit scenario-labs/skills/skills/scenario-3d#main ~/.claude/skills/scenario-3d
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md14.8 KB
Read SKILL.md here
scenario-labs/main1 file shown
SKILL.md
Show the full text83 lines

Scenario 3D Asset Workflows

Overview

Scenario runs text-to-3D, image-to-3D, and 3D-to-3D models behind the same MCP generation loop used for images. The most reliable pipeline generates a concept image first, then feeds it to an image-to-3D model; direct text-to-3D exists (txt23d) but image-to-3D has the larger catalog and more art direction control. Per-family contracts: scenario-meshy, scenario-rodin, scenario-sparc3d. Walkable scenes and Gaussian splats: scenario-3d-worlds. Retexturing a finished mesh or scene with PBR materials: scenario-patina-retexture. Connection and the core generation loop: see the scenario skill. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

Quick reference

Step Tool Notes
Find 3D models recommend with the capability and the user's own words (search for a name) Capabilities: txt23d, img23d, 3d23d
Inspect inputs model_schema_get Always call before model_run
Generate model_run Pass reference images as asset IDs
Wait jobs_wait Any job_id returned without assets (in_progress after a timed-out wait, queued or in-progress after wait=false) goes in job_ids; never poll job_get in a loop
Preview asset_display Interactive GLB/FBX/VOX/OBJ viewer on MCP App hosts
Download asset_download Returns a URL; save with curl -L

Worked example: concept image to game-ready mesh

A realistic sequence for "make a 3D treasure chest prop":

  1. Generate the concept: pick a text-to-image model via recommend with the user's own words as prompt, then model_schema_get and model_run with a prompt describing a single centered subject on a plain background. If the user has a reference, upload_asset it (plus upload_asset_complete when multipart) and pass that asset ID instead.
  2. recommend with capability="img23d" and the user's own words as prompt. Live members include the Hunyuan 3D, Meshy, Tripo, and Trellis families, and Scenario's own LLM-based 3D generation, GPT-6 Astra 3D, and Claude Opus 5.5 3D (the cheaper of the two at authoring time; compare both with dry_run), which reconstruct one object from 1 to 8 photos or renders into an editable mesh with named parts and per-part PBR materials. They are built for props and hard-surface subjects, not characters. The price moves with buildEffort alone and rises with it (standard is the cheapest tier, then high, the default, then maximum); refineSteps is kept only for compatibility and changes nothing. faceBudget caps the delivered triangle count at export (10k to 50k for a game-ready asset; the default keeps fine detail and is not that). A refinement pass on a previous output was not exposed at authoring time: an edit is a new run with the corrected references.
  3. model_schema_get on the chosen model. 3D schemas vary widely: single image vs multi-view arrays, polycount targets, PBR toggles, topology choices.
  4. model_run with parameters={"image": "asset_xxx", ...} and wait=false (dry_run=true first to price a batch), then jobs_wait with job_ids=["<job_id>"] (re-call it with the returned pending_job_ids as job_ids if it times out). A downstream step (rig, retexture) has no payload to dry_run until its input mesh exists: quote it from recommend as an estimate, then re-price it with dry_run on the real asset before launching.
  5. asset_display with the output asset_id to preview, then asset_download and curl -L -o chest.glb "<url>" for engine import. asset_download converts a mesh when format is glb, fbx, or obj (omit it for the stored original): ask for fbx for a Unity project without a glTF importer, and keep the GLB too: at authoring time the FBX embedded only two images, so it may not carry every PBR map.

Multi-view models accept several images of one subject from different angles; the count and the ordering vary per model, so take both from model_schema_get (the first image is usually the front view).

Texture and lighting controls

Several image-to-3D families split texture from geometry, and each dial is one model_schema_get away, so read them before promising a look. Authoring-time examples from the Tripo members:

  • texture: false returns a bare mesh with no texture and is a cost_impact field, the cheap path when the user will texture in a DCC. textureQuality (fast, standard, detailed, extreme) also moves the price, and a texture version picker, left empty, keeps the provider's default.
  • delight strips lighting and shadows baked into the reference image so the mesh lights correctly in the user's engine. It defaulted to on; turn it off only when the painted shading is the art style, as on a hand-painted prop. The export stays a lit material either way, so for no engine relighting at all the user sets an unlit shader on import.
  • The pbr flag's description said PBR on, its default, ignores the texture parameters. A texture setting the user asked for is honored only with pbr: false there, so read that description on the chosen member and say which one won.
  • Geometry and texture take separate seeds (seed, textureSeed): hold seed and the image fixed and vary textureSeed alone for texture variants on one shape.
  • autoSize scales the output to real-world meters and defaulted to off: set it to true for a real-scale engine import, or the mesh keeps its native size. The asset's dimensions still read the unit-normalized mesh (longest side 1.0) because the meters sit in the GLB's node scale, so dimensions is not proof it failed.

Inspecting results

asset_display renders 3D assets in an interactive viewer (GLB, FBX, VOX, OBJ) on hosts that support MCP Apps; other hosts get the app_url dashboard link. The viewer's capture button calls capture_3d_view, an app-only tool: it uploads the current camera view as a new image asset and posts the asset_id back into the conversation. Use that capture as a reference image for follow-up generations or similarity search. Never call capture_3d_view yourself; it requires PNG canvas data only the viewer has.

Refining meshes

3D-to-3D utilities (3d23d capability) cover retexturing, remeshing, UV unwrapping, and part segmentation. Find them with recommend: capability="3d23d" plus the operation in the user's own words. Most take the source asset_id in a kind: "3d" file field, usually named model (also mesh, file3d); 400 Input model is required or Provide a reference image or a 3D model means the mesh went in under another name (an image field, or a URL), never that the tool wants something else.

Splitting a finished mesh into parts is a contested lane, so it stays a recommend pick: at authoring time several vendors offered mesh segmentation with a granularity control, one combined the split with a PBR retexture, and image-to-parts members build the parts from the picture instead. A convincing mesh is not a game-ready one: part separation, joint placement, materials, and animation are each their own pass, and polygon caps differ by topology on the members that offer both (a quad cap sat well under the triangle cap on one), so read the slider's max off the schema instead of promising a count. A named provider feature is a valid search target, but an empty result or one member's body-plan enum does not prove a capability is absent platform-wide. For an unmet need such as a hinged prop, use recommend with that need and inspect the returned schemas; if none exposes it, report it as unverified in the inspected models, without inventing a call from the provider's own site.

A staged chain toward game-ready

One image-to-3D run bakes its texture onto UVs the generator chose, so a mesh headed for an engine usually goes further run by run, each output's asset_id feeding the next tool's kind: "3d" field: geometry first (a multi-view member when several angles of the subject exist, with texture: false where the schema offers it, since texture comes later, and pbr: false beside it on members whose pbr default ignores the texture settings), then a UV unwrap, then a retexture on the unwrapped mesh from a prompt, an image, or a style reference, then the rig last, on the topology that ships. Read each retexture schema for a setting that rebuilds UVs, which would discard the unwrap, and for the same pbr default: at authoring time the Tripo texturing member defaulted to PBR, which ignores its texture options. When a schema says nothing about UVs, prefer a member with an explicit keep-existing-UVs setting. Every step after the first is recommend with capability="3d23d" and that operation in the user's own words, and its own billed run, so dry_run each on the real input before launching it. Read input caps before chaining: one unwrapper at authoring time took meshes up to 30,000 faces, so set the generator's face limit under it where the schema has one (the Tripo multi-view member exposed faceLimit and a smartLowPoly topology switch), or remesh down first. Check each output with asset_display before feeding it on, or, where the host shows no viewer, read face count, UVs, and dimensions off asset_get and compare them step to step, and look at the thumbnail asset the record lists (hasUVs only proves UVs exist, not that the layout is clean; an unwrapper's "albedo" PNG may be a preview, not the atlas): faces that render dark or inside out are flipped normals, which a later step inherits, and scale and pivot can shift between steps, even within one vendor's chain (autoSize above), so confirm both in a DCC before the rig. When a step returns sibling formats (a GLB beside an OBJ), feed the GLB onward unless the next schema asks for another; when none is a GLB, feed the OBJ or FBX when the next schema lists it (a dry_run may price a call without checking the file format, so the real run is what confirms it), else convert with asset_download format. Fixing normals, origin, or naming by hand is DCC work, not an MCP call (the scenario-blender-expert skill drives Blender).

Rigging and animation

Rigging is a separate 3d23d step run on a finished mesh, not a flag on the generator. Find the models with recommend: capability="3d23d" plus the rigging need in the user's own words.

Body plan picks the model. Humanoid models take the mesh and little else (a front-facing hint, or an approximate height, depending on the model) and infer a biped skeleton. Non-biped work goes to a model exposing rigType, whose values cover quadruped, hexapod, octopod, avian, serpentine, and aquatic. A static prop has no body plan to rig: if recommend answers ask_user, part segmentation is the nearer step.

Three schema details decide whether the output is usable:

  • Formats. Rigging models accept GLB, and often OBJ, FBX, or STL. None exposes an output-format field, so the rig comes back as GLB or FBX and most descriptions do not say which: expect a DCC pass when the engine needs the other.
  • Size ceiling. A max_size on the file input is the exception rather than the rule (one humanoid rigging model caps at 30 MB). Check the schema before assuming a large mesh needs decimating.
  • Animation versus rig. Where a rigger exposes animation it retargets a preset clip, and its allowed_values are rig-type prefixed (quadruped:walk), so read them rather than guess. By default only the retarget file comes back: set includeRiggedModel to keep the plain rigged mesh too (the two come back as separate assets with identical metadata, so asset_get tells them apart: the retarget has properties.hasAnimations true and an animationFrameCount, the plain rig false and null, and their order is not guaranteed).

When only motion is wanted, motion-transfer video models animate a still character image with no skeleton at all: see scenario-video. Video-to-motion models that auto-rig an uploaded mesh are the one place an outputFormat enum picks the engine target.

Common mistakes

  • Running model_run without model_schema_get: 3D model parameters differ far more between models than image models do.
  • Passing a local file path as an image input: upload_asset first, then pass the returned asset ID.
  • Hardcoding model IDs: catalogs rotate (a deprecated:<replacement_id> tag names the successor). Re-discover each session, recommend for the need or search for a name.
  • Pasting raw asset URLs into chat instead of calling asset_display.
  • Forgetting -L with curl: download URLs may redirect before serving the file.
  • Promising a named skeleton, an influence count, or bones for wings and extra limbs: pick the closest body plan, then finish the rest in a DCC.
  • Sending a biped to a rigType model: the enum has no biped value, because humanoids have their own rigging models.
1---
2name: scenario-3d
3description: Use when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel models, multi-view reconstruction, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the inline 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender.
4license: MIT
5---
6 
7# Scenario 3D Asset Workflows
8 
9## Overview
10 
11Scenario runs text-to-3D, image-to-3D, and 3D-to-3D models behind the same MCP generation loop used for images. The most reliable pipeline generates a concept image first, then feeds it to an image-to-3D model; direct text-to-3D exists (`txt23d`) but image-to-3D has the larger catalog and more art direction control. Per-family contracts: `scenario-meshy`, `scenario-rodin`, `scenario-sparc3d`. Walkable scenes and Gaussian splats: `scenario-3d-worlds`. Retexturing a finished mesh or scene with PBR materials: `scenario-patina-retexture`. Connection and the core generation loop: see the `scenario` skill. If a sibling skill named here is missing from your available skills, ask the user to install it (`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and flag the gap.
12 
13## Quick reference
14 
15| Step | Tool | Notes |
16| -------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17| Find 3D models | `recommend` with the capability and the user's own words (`search` for a name) | Capabilities: `txt23d`, `img23d`, `3d23d` |
18| Inspect inputs | `model_schema_get` | Always call before `model_run` |
19| Generate | `model_run` | Pass reference images as asset IDs |
20| Wait | `jobs_wait` | Any `job_id` returned without assets (`in_progress` after a timed-out wait, `queued` or `in-progress` after `wait=false`) goes in `job_ids`; never poll `job_get` in a loop |
21| Preview | `asset_display` | Interactive GLB/FBX/VOX/OBJ viewer on MCP App hosts |
22| Download | `asset_download` | Returns a URL; save with `curl -L` |
23 
24## Worked example: concept image to game-ready mesh
25 
26A realistic sequence for "make a 3D treasure chest prop":
27 
281. Generate the concept: pick a text-to-image model via `recommend` with the user's own words as `prompt`, then `model_schema_get` and `model_run` with a prompt describing a single centered subject on a plain background. If the user has a reference, `upload_asset` it (plus `upload_asset_complete` when multipart) and pass that asset ID instead.
292. `recommend` with `capability="img23d"` and the user's own words as `prompt`. Live members include the Hunyuan 3D, Meshy, Tripo, and Trellis families, and Scenario's own LLM-based 3D generation, GPT-6 Astra 3D, and Claude Opus 5.5 3D (the cheaper of the two at authoring time; compare both with `dry_run`), which reconstruct one object from 1 to 8 photos or renders into an editable mesh with named parts and per-part PBR materials. They are built for props and hard-surface subjects, not characters. The price moves with `buildEffort` alone and rises with it (`standard` is the cheapest tier, then `high`, the default, then `maximum`); `refineSteps` is kept only for compatibility and changes nothing. `faceBudget` caps the delivered triangle count at export (10k to 50k for a game-ready asset; the default keeps fine detail and is not that). A refinement pass on a previous output was not exposed at authoring time: an edit is a new run with the corrected references.
303. `model_schema_get` on the chosen model. 3D schemas vary widely: single image vs multi-view arrays, polycount targets, PBR toggles, topology choices.
314. `model_run` with `parameters={"image": "asset_xxx", ...}` and `wait=false` (`dry_run=true` first to price a batch), then `jobs_wait` with `job_ids=["<job_id>"]` (re-call it with the returned `pending_job_ids` as `job_ids` if it times out). A downstream step (rig, retexture) has no payload to `dry_run` until its input mesh exists: quote it from `recommend` as an estimate, then re-price it with `dry_run` on the real asset before launching.
325. `asset_display` with the output `asset_id` to preview, then `asset_download` and `curl -L -o chest.glb "<url>"` for engine import. `asset_download` converts a mesh when `format` is `glb`, `fbx`, or `obj` (omit it for the stored original): ask for `fbx` for a Unity project without a glTF importer, and keep the GLB too: at authoring time the FBX embedded only two images, so it may not carry every PBR map.
33 
34Multi-view models accept several images of one subject from different angles; the count and the ordering vary per model, so take both from `model_schema_get` (the first image is usually the front view).
35 
36## Texture and lighting controls
37 
38Several image-to-3D families split texture from geometry, and each dial is one `model_schema_get` away, so read them before promising a look. Authoring-time examples from the Tripo members:
39 
40- `texture: false` returns a bare mesh with no texture and is a `cost_impact` field, the cheap path when the user will texture in a DCC. `textureQuality` (`fast`, `standard`, `detailed`, `extreme`) also moves the price, and a texture version picker, left empty, keeps the provider's default.
41- `delight` strips lighting and shadows baked into the reference image so the mesh lights correctly in the user's engine. It defaulted to on; turn it off only when the painted shading is the art style, as on a hand-painted prop. The export stays a lit material either way, so for no engine relighting at all the user sets an unlit shader on import.
42- The `pbr` flag's description said PBR on, its default, ignores the texture parameters. A texture setting the user asked for is honored only with `pbr: false` there, so read that description on the chosen member and say which one won.
43- Geometry and texture take separate seeds (`seed`, `textureSeed`): hold `seed` and the image fixed and vary `textureSeed` alone for texture variants on one shape.
44- `autoSize` scales the output to real-world meters and defaulted to off: set it to `true` for a real-scale engine import, or the mesh keeps its native size. The asset's `dimensions` still read the unit-normalized mesh (longest side 1.0) because the meters sit in the GLB's node scale, so `dimensions` is not proof it failed.
45 
46## Inspecting results
47 
48`asset_display` renders 3D assets in an interactive viewer (GLB, FBX, VOX, OBJ) on hosts that support MCP Apps; other hosts get the `app_url` dashboard link. The viewer's capture button calls `capture_3d_view`, an app-only tool: it uploads the current camera view as a new image asset and posts the `asset_id` back into the conversation. Use that capture as a reference image for follow-up generations or similarity `search`. Never call `capture_3d_view` yourself; it requires PNG canvas data only the viewer has.
49 
50## Refining meshes
51 
523D-to-3D utilities (`3d23d` capability) cover retexturing, remeshing, UV unwrapping, and part segmentation. Find them with `recommend`: `capability="3d23d"` plus the operation in the user's own words. Most take the source `asset_id` in a `kind: "3d"` file field, usually named `model` (also `mesh`, `file3d`); 400 `Input model is required` or `Provide a reference image or a 3D model` means the mesh went in under another name (an image field, or a URL), never that the tool wants something else.
53 
54Splitting a finished mesh into parts is a contested lane, so it stays a `recommend` pick: at authoring time several vendors offered mesh segmentation with a granularity control, one combined the split with a PBR retexture, and image-to-parts members build the parts from the picture instead. A convincing mesh is not a game-ready one: part separation, joint placement, materials, and animation are each their own pass, and polygon caps differ by topology on the members that offer both (a quad cap sat well under the triangle cap on one), so read the slider's `max` off the schema instead of promising a count. A named provider feature is a valid `search` target, but an empty result or one member's body-plan enum does not prove a capability is absent platform-wide. For an unmet need such as a hinged prop, use `recommend` with that need and inspect the returned schemas; if none exposes it, report it as unverified in the inspected models, without inventing a call from the provider's own site.
55 
56## A staged chain toward game-ready
57 
58One image-to-3D run bakes its texture onto UVs the generator chose, so a mesh headed for an engine usually goes further run by run, each output's `asset_id` feeding the next tool's `kind: "3d"` field: geometry first (a multi-view member when several angles of the subject exist, with `texture: false` where the schema offers it, since texture comes later, and `pbr: false` beside it on members whose `pbr` default ignores the texture settings), then a UV unwrap, then a retexture on the unwrapped mesh from a prompt, an image, or a style reference, then the rig last, on the topology that ships. Read each retexture schema for a setting that rebuilds UVs, which would discard the unwrap, and for the same `pbr` default: at authoring time the Tripo texturing member defaulted to PBR, which ignores its texture options. When a schema says nothing about UVs, prefer a member with an explicit keep-existing-UVs setting. Every step after the first is `recommend` with `capability="3d23d"` and that operation in the user's own words, and its own billed run, so `dry_run` each on the real input before launching it. Read input caps before chaining: one unwrapper at authoring time took meshes up to 30,000 faces, so set the generator's face limit under it where the schema has one (the Tripo multi-view member exposed `faceLimit` and a `smartLowPoly` topology switch), or remesh down first. Check each output with `asset_display` before feeding it on, or, where the host shows no viewer, read face count, UVs, and `dimensions` off `asset_get` and compare them step to step, and look at the thumbnail asset the record lists (`hasUVs` only proves UVs exist, not that the layout is clean; an unwrapper's "albedo" PNG may be a preview, not the atlas): faces that render dark or inside out are flipped normals, which a later step inherits, and scale and pivot can shift between steps, even within one vendor's chain (`autoSize` above), so confirm both in a DCC before the rig. When a step returns sibling formats (a GLB beside an OBJ), feed the GLB onward unless the next schema asks for another; when none is a GLB, feed the OBJ or FBX when the next schema lists it (a `dry_run` may price a call without checking the file format, so the real run is what confirms it), else convert with `asset_download` `format`. Fixing normals, origin, or naming by hand is DCC work, not an MCP call (the `scenario-blender-expert` skill drives Blender).
59 
60## Rigging and animation
61 
62Rigging is a separate `3d23d` step run on a finished mesh, not a flag on the generator. Find the models with `recommend`: `capability="3d23d"` plus the rigging need in the user's own words.
63 
64Body plan picks the model. Humanoid models take the mesh and little else (a front-facing hint, or an approximate height, depending on the model) and infer a biped skeleton. Non-biped work goes to a model exposing `rigType`, whose values cover `quadruped`, `hexapod`, `octopod`, `avian`, `serpentine`, and `aquatic`. A static prop has no body plan to rig: if `recommend` answers `ask_user`, part segmentation is the nearer step.
65 
66Three schema details decide whether the output is usable:
67 
68- **Formats.** Rigging models accept GLB, and often OBJ, FBX, or STL. None exposes an output-format field, so the rig comes back as GLB or FBX and most descriptions do not say which: expect a DCC pass when the engine needs the other.
69- **Size ceiling.** A `max_size` on the file input is the exception rather than the rule (one humanoid rigging model caps at 30 MB). Check the schema before assuming a large mesh needs decimating.
70- **Animation versus rig.** Where a rigger exposes `animation` it retargets a preset clip, and its `allowed_values` are rig-type prefixed (`quadruped:walk`), so read them rather than guess. By default only the retarget file comes back: set `includeRiggedModel` to keep the plain rigged mesh too (the two come back as separate assets with identical `metadata`, so `asset_get` tells them apart: the retarget has `properties.hasAnimations` true and an `animationFrameCount`, the plain rig false and null, and their order is not guaranteed).
71 
72When only motion is wanted, motion-transfer video models animate a still character image with no skeleton at all: see `scenario-video`. Video-to-motion models that auto-rig an uploaded mesh are the one place an `outputFormat` enum picks the engine target.
73 
74## Common mistakes
75 
76- Running `model_run` without `model_schema_get`: 3D model parameters differ far more between models than image models do.
77- Passing a local file path as an image input: `upload_asset` first, then pass the returned asset ID.
78- Hardcoding model IDs: catalogs rotate (a `deprecated:<replacement_id>` tag names the successor). Re-discover each session, `recommend` for the need or `search` for a name.
79- Pasting raw asset URLs into chat instead of calling `asset_display`.
80- Forgetting `-L` with curl: download URLs may redirect before serving the file.
81- Promising a named skeleton, an influence count, or bones for wings and extra limbs: pick the closest body plan, then finish the rest in a DCC.
82- Sending a biped to a `rigType` model: the enum has no biped value, because humanoids have their own rigging models.
83 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 854
Checked
Source
scenario-labs/skills ↗
Creator
scenario-labs · 10 listings
View creator

Similar skills

See all →
Skill3D Game Development Principlesdavila7/claude-code-templates · by davila73D game development principles. Rendering, shaders, physics, cameras.★ 32.3k GitHub starsSkill3D Web Experience Builderdavila7/claude-code-templates · by davila7Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences. Use when: 3D website, three.js, WebGL, react three fiber, 3D experience.★ 32.3k GitHub starsSkillPascal 3D Scene Builderpascalorg/editor · by pascalorgConnect to Pascal and use its MCP tools to create, inspect, edit, validate, save, or hand off editable 3D building scenes. Use this skill whenever a user asks an agent to work in Pascal, make a room or building model, inspect a Pascal project, perform spatial edits, connect Pascal MCP, or return a verified Pascal editor link. It also governs safe local, existing-account, and explicitly authorized autonomous setup.★ 24.6k GitHub starsSkillIsometric Technical Diagram Creatorwheresryan22/anatomy · by wheresryan22Build crafted, highly detailed, interactive isometric SVG figures that explain a technical idea as a real physical object (a test rig, a dial gauge, a cabinet of drawers, a plotter, a lock), with many small precise solid parts, four-tone shading, correct painter's order, a framed card with title, hint and live readout, and calm eased motion. Use this whenever someone wants an isometric illustration, an explanatory diagram or figure for docs, a blog post, a landing page or an article, a "Linear-style" or "premium" technical drawing, an interactive explainer, or an SVG that shows how a system, algorithm or component works, even if they never say "isometric". Works framework-free (TypeScript/JS that writes SVG and HTML) and in React/Next.js, and can add realistic WebGL shaders (fire, exhaust, water, caustics, lamp light) that live inside the drawing in the same isometric perspective. Also prints a figure as an A4 PDF (poster, drawing or handout) and publishes it to the Anatomy community gallery when asked.★ 16k GitHub starsSkillScroll World Builderoso95/scroll-world · by oso95Build an immersive scroll-scrubbed "fly through the world" landing page for any industry or brand using Higgsfield. As the visitor scrolls, a pre-rendered camera flies from outside each scene into its interior, then flows on to the next scene with NO cuts — one continuous connected flight (Emons-style isometric diorama world, or any art direction you pick). The skill interviews the user for the topic, the story beats/sections, and brand kit, then generates cohesive scenes + seamless camera clips with Higgsfield and wires a portable, framework-agnostic scroll-scrub engine. The video chain renders through Monid by default (Seedance 2.0, pay-per-clip USD — capability re-checked each build, see Step 4) with Higgsfield credits as the fallback biller. Use when the user wants a "3D world" / browse-through-the-industry" hero, a scroll cinematic, a diorama landing, or to turn a business into a scrollable world.★ 9.8k GitHub starsSkill3D Machine SimulatorAirsupHQ/machine-skill · by AirsupHQTurn one line ("a turbofan jet engine", "a mechanical watch", "an LVAD heart pump") into a photoreal, physics based, interactive 3D simulation of that machine in a single HTML file, plus a 20 to 30 second film to post it. Real proportions in metres, real materials (PBR metals, paints, polymers, glass), studio lighting with soft shadows, moving parts driven by a small solver that computes real numbers (thrust, torque, rpm, flow, pressure, efficiency), and modes to explode it, cut it open with clean section caps, x-ray it, slow it down, label it and break it. Use this whenever someone asks to build, simulate, visualise, explain or "show how X works" for any machine, engine, mechanism, device, instrument or piece of hardware, wants an interactive 3D model or a cutaway, or wants a video of a machine for a post, even if they never say "simulation" or "three.js".★ 305 GitHub stars

More from scenario-labs

SkillScenario Asset Platformscenario-labs/skills · by scenario-labsUse when connecting an AI agent to Scenario (scenario.com) through MCP, or when a task involves generating images, video, 3D, audio, sprites, textures, or game assets. Also when picking a Scenario model, running a LoRA, refining a generation prompt, uploading reference images, waiting on generation jobs, checking credits or quota, hitting Scenario auth, scope, or Forbidden errors, or setting up mcp.scenario.com in Claude Code, Cursor, VSCode, or another agent.★ 854 GitHub starsSkillGame Asset Generatorscenario-labs/skills · by scenario-labsUse when creating game art through Scenario MCP: sprites, sprite sheets, icons, props, loot, tilesets and autotile terrain transitions, seamless tiles, isometric buildings, top-down maps, pixel art, UI buttons and panels, parallax background layers or depth planes for side-scrollers, and character or concept art; or when assets need transparent backgrounds, background removal, style-consistent variation batches, upscaling, pixel-grid cleanup, or PNG export for Unity, Godot, or Unreal.★ 854 GitHub starsSkillGPT Image Generatorscenario-labs/skills · by scenario-labsUse when generating or editing images with OpenAI's GPT Image models on Scenario via MCP: text-to-image, edits from reference images, inpainting with an alpha mask, in-image text for logos and infographics, transparent cutouts, pixel sizing up to 4K, quality tiers up to xhigh and max, input fidelity for product or face detail, or choosing between Flare, Sunburst, GPT Image 2 and 1.5. Keywords: GPT Image 2.5, GPT Image 2, OpenAI, DALL-E, gpt-image, ChatGPT image, txt2img, img2img, background.★ 854 GitHub starsSkillIdeogram Image Creatorscenario-labs/skills · by scenario-labsUse when generating or editing images with Ideogram models on Scenario via MCP: posters, logos, menus, packaging, or signage with exact in-image text, editing an image in place while keeping its exact size, transparent PNG generation, background removal that keeps hair and glass edges, editable text layers for localization, or one consistent character from a reference. Keywords: Ideogram 4.5, Precise Edit, V4, V3, typography, aspect ratio, layerize, character reference, inpainting.★ 854 GitHub starsSkillSeedance Video Generatorscenario-labs/skills · by scenario-labsUse when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video from a first frame, first and last frame anchors, reference-to-video with identity, product, or world references, prompt-based editing, extending a clip, audio-conditioned motion or a reference voice, shot sound without music, or deciding between first-frame and reference conditioning. Keywords: Seedance 2.5 and 2.0, ByteDance, T2V, I2V, V2V, multimodal references, native audio, video extension.★ 854 GitHub starsSkillSide-Scroller Asset Kitscenario-labs/skills · by scenario-labsUse when making the art for a side-scroller or 2D platformer: side-view pixel-art sprite sheets for a hero and ground enemies (run, walk, idle, attack, hurt cycles, air spin, jump and fall poses) and per-level layers (parallax background and midground, seamless wall texture, platform strip, props). Also use when a magenta key eats part of a sprite, a walk loop will not close, a slash trail keys into a solid block, generated textures do not tile, or poses on one sheet will not split.★ 854 GitHub stars