SkillAgentSearch skills...

scenario-3d

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, editing a mesh by prompt, retextu…

Install / Use

npx skills add scenario-labs/skills --skill scenario-3d

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

86/100

Category

Automation

Supported Platforms

Claude Code

Our assessment of scenario-3d

scenario-3d scores 86/100 on our quality scale, 1862nd of 2,896 Automation skills we index.

Its SKILL.md is 17 KB long, well organised into 10 sections and no code examples: a thorough specification that gives an agent plenty to work with.

With 1,048 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
13/20
Description
15/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 8 days ago, so scenario-3d is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

scenario-3d compared with similar skills

All 4 of these similar skills score higher than scenario-3d; compare them before choosing.

SkillScoreStarsUpdatedFormat
scenario-3d (this skill)by scenario-labs861.0k8d agoSKILL.md
headroomby headroomlabs-ai10078.0ktodayCLAUDE.md
Agent-Reachby Panniantong100104.1k2d agoMCP Server
Scraplingby D4Vinci10089.9k1d agoMCP Server
crawl4aiby unclecode10086.4ktodayMCP Server

Frequently asked questions

How do I install scenario-3d?
Run npx skills add scenario-labs/skills --skill scenario-3d. The install tabs above show the steps for each supported agent.
Which AI agents does scenario-3d work with?
It is written for Claude Code, as a SKILL.md file. Other agents that read the same format can often use it too.
Is scenario-3d safe to use?
It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is scenario-3d still maintained?
The repository was last updated 8 days ago, so scenario-3d is actively maintained.

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, editing a mesh by prompt, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender. license: MIT

Scenario 3D Asset Workflows

Overview

Generate a concept image first, then run image-to-3D: it has a larger catalog and more art direction than text-to-3D (txt23d). Per-family contracts: scenario-meshy, scenario-rodin, scenario-sparc3d. Walkable scenes and Gaussian splats: scenario-3d-worlds. PBR retexture of a finished mesh or scene: scenario-patina-retexture. Inside Blender, through the Scenario for Blender extension: scenario-blender. Connection and the core loop: 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 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: game-ready treasure chest

  • Plan check. Before step 1, run recommend for every later step (step 2, plus any rig or retexture). An entry marked requires_plan_upgrade fails with a 403 (ModelAccessRestrictedError) only after earlier steps were paid: settle the upgrade or pick another member first. If the img23d call answers ask_user about existing concepts, take the concept-image branch: step 1 makes them.
  • Batch price. Price per asset from one real concept: dry_run each candidate on it (later legs per step 4), times the count. At authoring time one LLM-based member quoted 1,300 CU at its default effort, a single-image Tripo generator 45. Past the plan's credits, each job's wait grows with its cost.
  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. Prompt a single centered subject on a plain background. Show a non-biped creature at eye level, from the side or three-quarters, every leg visible and clear of the body: top-down hides leg undersides and body height. A biped headed for a rig takes the pose in Rigging and animation. 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 at authoring time; compare both with dry_run). Those two LLM-based members alone:

    • reconstruct one object from 1 to 8 photos or renders into an editable mesh with named parts and per-part PBR materials;
    • suit props and hard-surface subjects, not characters or creatures;
    • price by buildEffort: standard, high (the default), maximum;
    • cap the exported triangle count with faceBudget (the game range in step 3);
    • change a result by editing it (see Refining meshes).
  3. model_schema_get: inspect image inputs, polycount, PBR, and topology controls. Target 10k to 50k triangles for this prop; never assume defaults meet that budget. Use only exposed controls:

    • Numeric field: read min and max, or the description when they are absent.
    • Enum: read allowed_values and their topology and count meanings (scenario-rodin covers qualityMeshOption). A quad count is not a triangle count.
    • No face control, or the target is below its range: generate, then remesh down if needed (Refining meshes). Never invent a face field; scenario-sparc3d covers members without one.

    Check the output's triangle count against the budget. At authoring time:

    • Tripo (faceLimit) and Meshy (targetPolycount, set where scenario-meshy says) reached both ends. At 10k, an eight-legged creature kept every leg and claw, and a chest its padlock and handles. Meshy's Smart Topology members capped lower, at 15k or 30k.
    • Hunyuan 3D (faceCount, from 40k) covers only the top of the range, and Trellis (decimationTarget, from 100k) starts above it. Remesh only for a target under the member's floor.
  4. model_run with parameters={"image": "asset_xxx", ...} and dry_run=true to price it. Then run it for real with wait=false and pass its job_id to jobs_wait (job_ids=["<job_id>"]); a dry run creates no job. Re-call jobs_wait with the returned pending_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, then re-price with dry_run on the real asset before launching. Never dry_run it with a placeholder id: file ids resolve before plan access is checked, so it returns 404 and proves nothing.

  5. asset_display the output asset_id, then asset_download and curl -L -o chest.glb "<url>". Omit format when asset_get shows properties.format glb: it returns the stored original byte for byte. format converts to glb, fbx, or obj; pass glb for the LLM-based members, which store a Blender file. On a stored GLB, format: "glb" re-exports it: at authoring time the same textures and triangles, smaller indices, a different file. 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 miss PBR maps.

Prompt-only build. Both LLM-based members support txt23d. When the user wants no concept to approve, skip step 1. In step 2, recommend with capability="txt23d" and the user's words as prompt. Follow steps 3 to 5 with images: []; describe the object and name required parts in prompt. A chest's lid, body, and padlock returned as those node names.

Multi-view models take several images of one subject; read the count and fields off model_schema_get. Side fields follow the subject: on the Tripo multi-view members at authoring time, leftImage was the character's own left (nose toward frame left), rightImage the mirror. A sheet labeled by the viewer's side reverses them, and a swapped pair can fuse front and back into one shell.

Texture and lighting controls

Several image-to-3D families split texture from geometry. Read each dial in model_schema_get before promising a look. Authoring-time examples from the Tripo members:

  • texture: false returns a bare mesh and is a cost_impact field: the cheap path when the user textures in a DCC. textureQuality also moves the price; an empty texture version picker keeps the provider's default.
  • delight strips lighting baked into the reference so the mesh relights in the engine. It defaulted to on; turn it off only when painted shading is the art style. The export stays a lit material either way: for no relighting at all, the user sets an unlit shader on import.
  • pbr, on by default, ignored the texture parameters per its description. A requested texture setting holds only with pbr: false there: read that description on the chosen member and say which won.
  • Geometry and texture take separate seeds (seed, textureSeed): hold seed and the image, vary textureSeed for texture variants on one shape.
  • autoSize scales the output to real-world meters and defaulted to off: set true for a real-scale import. dimensions still reads the unit-normalized mesh (longest side 1.0), since the meters sit in the GLB's node scale: not a failure.

Inspecting results

Hosts without MCP Apps get the app_url link instead of the viewer. The viewer's capture button calls capture_3d_view, an app-only tool: it uploads the current view as an image asset and posts its asset_id into the conversation. Reuse it as a generation reference or a similarity search image. Never call capture_3d_view yourself: it needs PNG canvas data only the viewer has.

Refining meshes

3D-to-3D utilities retexture, remesh, UV-unwrap, and segment parts: recommend with capability="3d23d" plus the operation in the user's own words. Most take the source asset_id in a kind: "3d" file field, usually model (also mesh, file3d, sceneFile). A 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).

The LLM-based members of step 2 also edit an existing mesh, prop or character:

  • sceneFile takes its asset_id (any 3D model, returned in the same format), images stays empty, prompt states the change.
  • buildEffort fits the change, not the object: standard for a recolor, high or maximum to add or reshape parts.
  • Price follows buildEffort, not the mesh, and recommend priced no edit at authoring time: a dry_run on any project mesh quotes it.
  • A recolor kept every part name and the face count. A reshape is uncapped (faceBudget ignored): it took a 4,817-triangle cat to 788,954, so plan a remesh before an engine.
  • A replaced material keeps its old name; only added parts get new ones. The edit is generated: check what the prompt did not name against the source.
  • GPT-6 Astra 3D's description also claimed Mixamo-named rigs, ARKit face shapes, animation loops, UV re-unwraps, and modular kits, so it competes in those recommend calls.

Splitting a finished mesh into parts is a contested lane, so it stays a recommend pick. At authoring time several vendors offered segmentation with a granularity control, one combined it with a PBR retexture, and image-to-parts members built parts from the picture instead. A convincing mesh is not a game-ready one: part separation, joints, materials, and animation are each their own pass. Polygon caps differ by topology (a quad cap sat well under the triangle cap on one member): read the slider's max instead of promising a count. A named provider feature is a valid search target, but an empty result or one member's enum does not prove a capability absent platform-wide. recommend the unmet need (a hinged prop), inspect the returned schemas, and r

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars1.0k
CategoryAutomation
Updated8d ago
Forks129

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions