Scenario 3D Worlds
SkillMediaLets your agent create navigable 3D worlds and splat scenes from text, images, panoramas, videos, or photos using World Labs Marble 1.1.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Scenario 3D Worlds skill
About this skill
Use when generating navigable 3D worlds or Gaussian splat scenes on Scenario via MCP: text-to-world, image-to-world, a 360 panorama or skybox turned into a walkable splat, multi-view photos or a video walkthrough reconstructed as a splat, or one object photo to splat. Keywords: World Labs Marble 1.1
What this skill tells your AI
The instructions your AI receives, as published by scenario-labs/skills in skills/scenario-3d-worlds/SKILL.md and read by ahel’s review.
Overview
These models build explorable environments as 3D Gaussian splats, not polygon meshes: volumetric scenes to walk through and render in real time, with no UVs or topology to edit (Marble splats also export to triangle or collider mesh). Three vendors sit side by side: World Labs Marble in three quality tiers, Hunyuan's HY World pipeline, and TripoSplat for single objects. Discover them with search and treat model_schema_get as the contract; HY World members carried a geo restriction tag at authoring time, so hits differ by team and region.
Connection and the core loop: see the scenario skill; polygon meshes, rigging, and the 3D viewer: the scenario-3d skill; skybox-only work with no splat stage: the scenario-skyboxes 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
Pick the member by what you already have (input names from the live schemas):
| You have | Member | Inputs |
|---|---|---|
| A text idea | Marble, any tier | prompt alone |
| One image, flat or 360 | Marble | images, one entry; isPano: true if 360 |
| 2 to 8 photos of one scene | Marble | images |
| A walkthrough video | Marble or HY Multi-view to Splat | video |
| Many overlapping photos | HY Multi-view to Splat | images, 2 to 64 at authoring time |
| One photo of a place | HY Image to Skybox, then Skybox to Splat | image, then panorama |
| One photo of an object | TripoSplat | image; background removal is automatic |
images and video are mutually exclusive wherever both exist; isPano applies only when exactly one image is passed. TripoSplat wants one clean object and every other member wants a scene: aiming either at the other's subject is the main failure mode.
Draft on Marble, then upgrade
The three Marble tiers (1.0 Draft, 1.1, 1.1 Plus) take identical inputs, and the same inputs with the same seed reproduce the same world on every tier. Iterate on Draft, which returned in about a minute at authoring time, then rerun the identical parameters on 1.1 (balanced) or 1.1 Plus (highest fidelity, dynamically grows larger worlds when the scene allows). The cost spread across tiers was more than tenfold at authoring time, so dry_run before committing. splatResolution picks the stored density (100k, 500k, full); disableRecaption: true stops Marble rewriting your prompt.
The HY World pipeline runs long
Image to Skybox is an image model, not a 3D one: it expands one photo of a place into a 2:1 equirectangular panorama (backend trades full fidelity against qwen speed and cost). Its output asset id goes to Skybox to Splat as panorama. There, the three trajectory toggles (applyNavTraj, applyUpRoute, applyReconIteration, default true) drive cost and time; maxSteps sharpens marginally and materially moves neither. The splat stage ran close to an hour at median at authoring time: keep re-calling jobs_wait with pending_job_ids; a timeout is not a failure and never justifies a second model_run. Multi-view to Splat is the opposite, fast and cheap: best when the camera moved through a static scene with parallax.
Worked example: graybox a level from a concept image
searchwithtarget="models",query="marble world",public=true. Tiers appear side by side, e.g.model_worldlabs-marble-1-0-draft(a live hit at authoring time: re-discover each session).model_schema_getwith the Draft id: fields, caps, and defaults before anything else.upload_assetthe concept image (see thescenarioskill) for an asset id.model_runwithdry_run=trueandparameters={"images": ["asset_x"], "prompt": "abandoned observatory interior, dusk light through the dome slit", "seed": 1234, "splatResolution": "full"}; repeat the dry run on the 1.1 id to see the upgrade cost.model_runon Draft withwait=false, thenjobs_waitwith the job id, re-called withpending_job_idson timeout.asset_displaythe splat and walk it; adjust and repeat on Draft until the layout is right.- Rerun the identical parameters, same
seed, on the 1.1 or 1.1 Plus id from step 1, thenasset_downloadthe final.spz.
Common mistakes
- Passing
imagesandvideotogether: mutually exclusive on Marble and Multi-view to Splat. - A single equirectangular input without
isPano: true: Marble reads it as a flat photo. - Changing or omitting
seedbetween the draft and the upgrade tier: a different world comes back. - Feeding TripoSplat a scene, or a world model a lone object.
- Treating a
jobs_waittimeout on Skybox to Splat as a failure: the job is still running. - Adjusting
maxStepsto buy quality or cut cost: the trajectory toggles move cost,maxStepsbarely moves sharpness. - Expecting UVs or editable topology from a splat: for polygon assets, use the mesh generators in
scenario-3d.
Signals
- GitHub stars
- 681
- Forks
- 82
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
scenario-3d-worlds- Source
- github.com/scenario-labs/skills