Geometry Nodes
arjun988/blender-skills
Blender Geometry Nodes for procedural modeling, scatter systems, vegetation, buildings, pipes, cables, and reusable node groups.
A skill your agent uses when a single image of a character, creature, prop, vehicle, or building must be seen from new camera angles through the Scenario MCP server: turnarounds, a 360 orbit, views…
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-orbit-views --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scenario-orbit-views .claude/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .claude/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-viewsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-orbit-views --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/scenario-orbit-views .agents/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .agents/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-orbit-views --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/scenario-orbit-views .cursor/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .cursor/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scenario-labs/skills.git --path skills/scenario-orbit-views--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-orbit-views --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/scenario-orbit-views .gemini/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .gemini/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scenario-labs/skills scenario-orbit-viewsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/scenario-orbit-views .github/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .github/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-orbit-views -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills scenario-orbit-views --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/scenario-orbit-views .opencode/skills/scenario-orbit-views && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scenario-orbit-views" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-orbit-views into .opencode/skills/scenario-orbit-views/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-orbit-views", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scenario-orbit-viewsA skill your agent uses when a single image of a character, creature, prop, vehicle, or building must be seen from new camera angles through the Scenario MCP server: turnarounds, a 360 orbit, views…
Scenario Orbit Views is an agent skill from scenario-labs/skills. Use when a single image of a character, creature, prop, vehicle, or building must be seen from new camera angles through the Scenario MCP server: turnarounds, a 360 orbit, views from behind, above, below, or straight down, consistent multi-angle renders on the same grounded background or on transparency, or novel views that go through a 3D intermediary instead of guessing.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `README.md`, `scripts/compose_layout.py` and `scripts/match_view.py`).
It sits in Agent Workflows, covering Creative writing and fiction and MCP servers. It works with Model Context Protocol and Blender. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3npxcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scenario Orbit Views loads about 2.3k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 1,161 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,161 words, ~2,267 tokens.
.claude/skills/scenario-orbit-views/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Asking an image model to "show it from behind" guesses the geometry, and each angle drifts in size, pose, and ground contact. The reliable route puts a 3D step in the middle: rebuild the subject as an untextured mesh, render a gray clay layout for every camera, then let a reference-capable image model repaint each layout from the original picture. The mesh fixes silhouette, scale, and perspective; the picture supplies identity, colors, and finish. Connection and the core generation loop: see the scenario skill. Image-to-3D model choice: scenario-3d. The background panorama: scenario-skyboxes. 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.
The Blender steps run locally in a shell with Blender 4.x or later; everything that generates goes through MCP tools. Check for Blender before the first paid step (on macOS it is usually /Applications/Blender.app/Contents/MacOS/Blender, not on the PATH). When it is missing, ask the user to install it, or unattended, stop and report it: no MCP tool renders a mesh from chosen cameras.
| Step | How |
|---|---|
| Source picture | One subject, whole body with margin, plain background, a known camera (slightly above eye level, turned about 30 degrees) |
| Mesh | recommend an image-to-3D model, geometry only (texture is not needed), asset_download the GLB |
| World | A skybox panorama in the same art style, flat open floor all around the viewpoint |
| Camera zero | render_grounded.py --search, then match_view.py, confirmed by eye |
| Layouts | render_grounded.py, then compose_layout.py: background, clay, real cast shadow per camera |
| Upload | upload_asset with file_size, PUT the parts, upload_asset_complete, one per layout |
| Repaint | Reference-capable image model, referenceImages: [layout, source], prompt below |
| No background | Background-removal model on the same repainted frame, then studio_shadow.py |
| Wait | jobs_wait takes at most 32 ids per call; re-call with pending_job_ids |
All four scripts are run by the agent in a local shell, not by the MCP server. render_grounded.py runs inside Blender (blender -b --factory-startup --python render_grounded.py -- ...); the other three need Python with Pillow and numpy. Each prints its usage when run without arguments.
upload_asset the user's picture (or generate one with a plain background and the camera above), upload_asset_complete.
recommend an image-to-3D model with the user's words ("untextured mesh from one image"), plus max_cost_cu when the user set a budget, then model_schema_get and model_run with dry_run=true to price (image-to-3D jobs are expensive; a dry run rejects a payload missing its required image, so a quote for the whole chain before the source exists prices against any uploaded picture), then wait=false and jobs_wait. asset_download the GLB and save it with curl -L.
Find a skybox model with search (target="models", query="skybox", public=true, as scenario-skyboxes teaches; recommend has no skybox capability and can return a generic image model whose edges do not wrap) and generate one panorama in the picture's style, prompting for "viewpoint standing in the middle of an open empty floor at eye level, the floor clearly visible all around, no people". Download it.
blender ... render_grounded.py -- --glb hero.glb --out search --search, then python3 match_view.py hero.png search/cameras.json. The top row's azimuth and elevation are <az> and <el> below; open the matching search/search_az..._el...png next to the picture to confirm, since front and back can score alike.
blender ... render_grounded.py -- --glb hero.glb --pano world.png --out views --az0 <az> --elev <el> --only 00,02,04,06,08,10,12,14,top (the eye ring has 16 cameras, 22.5 degrees apart; --height sets the panorama eye height, --yaw turns the world, --zoom the framing). Keys count from camera zero, not from the subject's front, so with a turned source key 08 shows the back at that same turn; for views square to the subject, render into another --out with --az0 set to the search frame where it faces the camera squarely. Then python3 compose_layout.py views. Look at every layout: the clay must stand on the floor, with the shadow under it.
Upload each layout_<key>.jpg. recommend an image model for reference-guided repainting, and check that its model_schema_get lists referenceImages (1024 square, a high quality tier and an opaque background worked well). Price one with dry_run=true (the quote covers one view: multiply by the view count before launching), then launch one model_run per view with wait=false, referenceImages: ["<layout asset>", "<source asset>"], and:
Image 1 is the exact final frame: a plain gray clay 3D model standing on the ground of a finished background, with its real cast shadow, seen from the exact camera angle wanted. Image 2 is the original design reference of the {kind}. Repaint the gray clay model as {what}, matching Image 2 for identity, design, materials and colors: {details}. {finish}. Follow the clay model exactly: same silhouette, pose, proportions, position and size in frame, and the same camera angle. {ground}; keep the cast shadow of Image 1. Keep the background of Image 1: same place, composition, perspective and horizon, in {background style}, crisp and detailed. Light the {kind} with the scene: {light}. No gray clay left, no extra characters or objects, no text.
{ground} names the contact, for example "Her boots stand on the wet cobblestones exactly where the clay feet touch the ground". Add a line for parts the picture never shows (a shield on the back, a count of bags).
jobs_wait in batches of 32 or fewer. asset_download every result and build a contact sheet of all views. Regenerate only the views that fail; a fresh run of the same prompt usually fixes a one-off.
Transparent set: recommend a background-removal model, read its image field from model_schema_get, run it on each repainted asset id (not on a new studio repaint), download, then python3 studio_shadow.py views/clay_<key>.png cut_<key>.png studio_<key>.png. It prints how much of the clay body the cutout covers and how much lies outside it: a view far off the others, or with corners not clear, lost part of the subject or kept background, so rerun its removal.
recommend, price with dry_run=true.jobs_wait, or polling job_get.© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts) in skills/scenario-orbit-views of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Orbit Views next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scenario Orbit Views this skillscenario-labs/skills | 946 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Geometry Nodesarjun988/blender-skills | 283 | — | ~963 | Automated safety check: Pass | MIT | |
| Blender MCPTommy-yw/RunbookHermes | 546 | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Lightingarjun988/blender-skills | 283 | — | ~922 | Automated safety check: Pass | MIT | |
| Uv Workflowarjun988/blender-skills | 283 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Asset Optimizationarjun988/blender-skills | 283 | — | ~934 | Automated safety check: Pass | MIT |
arjun988/blender-skills
Blender Geometry Nodes for procedural modeling, scatter systems, vegetation, buildings, pipes, cables, and reusable node groups.
Tommy-yw/RunbookHermes
Control Blender directly from Hermes via socket connection to the blender-mcp addon.
arjun988/blender-skills
Cinematic and game lighting in Blender including three-point lighting, HDRI, horror lighting, volumetrics, rim lighting, and mood-driven illumination.
arjun988/blender-skills
Production UV unwrapping for seam placement, UV packing, texel density, UDIM, lightmap UVs, and modular UV layouts.
arjun988/blender-skills
Validates and optimizes Blender assets for polycount, topology, UV efficiency, material count, naming, collections, and game-ready performance.
arjun988/blender-skills
Production retopology for animation-ready, low-poly, quad-dominant meshes with proper edge loops and efficient polygon flow.
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
Works with
A skill your agent uses when a single image of a character, creature, prop, vehicle, or building must be seen from new camera angles through the Scenario MCP server: turnarounds, a 360 orbit, views…. Scenario Orbit Views is an agent skill from scenario-labs/skills. Use when a single image of a character, creature, prop, vehicle, or building must be seen from new camera angles through the Scenario MCP server: turnarounds, a 360 orbit, views from behind, above, below, or straight down, consistent multi-angle renders on the same grounded background or on transparency, or novel views that go through a 3D intermediary instead of guessing.
Scenario Orbit Views fits situations like: A single image of a character; building must be seen from new camera angles through the Scenario MCP server: turnarounds; views from behind; consistent multi-angle renders on the same grounded background.
Run `npx skills add scenario-labs/skills --skill scenario-orbit-views -a claude-code`. Or copy the skill folder (skills/scenario-orbit-views in scenario-labs/skills) into .claude/skills/scenario-orbit-views in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-orbit-views -a codex`. Or copy the skill folder (skills/scenario-orbit-views in scenario-labs/skills) into .agents/skills/scenario-orbit-views in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-orbit-views -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-orbit-views, .gemini/skills/scenario-orbit-views, .github/skills/scenario-orbit-views and .opencode/skills/scenario-orbit-views in your project.
Going by SKILL.md and its folder, Scenario Orbit Views needs Python for the scripts in its folder and the command-line tools its instructions call (python3, npx and curl). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Scenario Orbit Views is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Scenario Orbit Views: Geometry Nodes (arjun988/blender-skills, 283 stars), Blender MCP (Tommy-yw/RunbookHermes, 546 stars), Lighting (arjun988/blender-skills, 283 stars) and Uv Workflow (arjun988/blender-skills, 283 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.