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 retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB or Blender scene (an image-to-3D result with flat colors, a prop, a…
$ npx skills add scenario-labs/skills --skill scenario-patina-retexture -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-patina-retexture --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-patina-retexture .claude/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .claude/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retextureType 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-patina-retexture -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-patina-retexture --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-patina-retexture .agents/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .agents/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retexture -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-patina-retexture --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-patina-retexture .cursor/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .cursor/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retexture--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-patina-retexture -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-patina-retexture --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-patina-retexture .gemini/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .gemini/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retextureInstalls 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-patina-retexture -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-patina-retexture .github/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .github/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retexture -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-patina-retexture --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-patina-retexture .opencode/skills/scenario-patina-retexture && 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-patina-retexture" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-patina-retexture into .opencode/skills/scenario-patina-retexture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-patina-retexture", 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-patina-retextureA skill your agent uses when retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB or Blender scene (an image-to-3D result with flat colors, a prop, a…
Scenario Patina Retexture is an agent skill from scenario-labs/skills. Use when retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB or Blender scene (an image-to-3D result with flat colors, a prop, a diorama) whose surfaces need basecolor, normal, roughness, metalness, and height maps per material family with geometry untouched, or a matched before-and-after comparison film rendered in Blender with one camera path, lighting, and cut. Keywords: PATINA, PBR retexture, material families, Blender EEVEE, comparison video.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/example-config.json`, `references/film-config.md` and `references/materials-manifest.md`).
It sits in Game Development, covering Game assets and audio. It works with Blender and Model Context Protocol. 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.
9 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 6 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
curlnpxpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl and npx, 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 Patina Retexture loads about 3.5k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 1,741 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,741 words, ~3,498 tokens.
.claude/skills/scenario-patina-retexture/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.A mesh whose materials are flat colors or placeholders (an image-to-3D result, a whole diorama) becomes a PBR-shaded asset in three moves: group its materials into physical surface families, generate one seamless PATINA material per family on Scenario, and wire the five maps into Blender materials with vertices, faces, and transforms left unchanged. An optional film renders the original and the retextured scene along one camera path with the same lights, exposure, and cut, so the material response is the only thing that differs between the two panels. The film is rendered locally to present the 3D deliverable, never generated on Scenario, so the skill's output type stays 3D.
PATINA is Patina AI's material family on Scenario (tag sc:texture). This skill runs PATINA Material, the prompt-to-material member; the flat-texture members (Image to Maps, Material Extract) belong to scenario-textures. Repainting a whole mesh with a 3D-to-3D texturing model is the scenario-3d lane; this one keeps per-material control and editable Blender shaders. The agent's own steps stay on MCP; the bundled scripts (Blender 4.2 or newer, Python 3 with Pillow and numpy, ffmpeg) do the local repetition and never call Scenario. 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.
| Step | Tool | Notes |
|---|---|---|
| Scope | teams_list, projects_list | The source asset and the generation destination may live in different projects: pass the right pair on every call |
| Fetch the mesh | asset_get, then asset_download | properties.materialCount, faceCount, hasUVs, dimensions; save with curl -fL |
| Inventory | inventory.py in Blender | Writes Before.blend and inventory.json: per-material object counts, bounds, base color |
| Find PATINA | search with target="models", query="patina", public=true | Pick PATINA Material (txt2img); model_schema_get before running |
| Price | model_run with dry_run=true | One 1024x1024 five-map set was 17 CU at authoring time; width, height, maps, upscaleFactor, and numOutputs move it |
| Generate | model_run with wait=false, one per family | Fixed seed per family; one jobs_wait over every job_id |
| Identify maps | asset_get on each output | metadata.type names the role; never rely on position |
| Download | asset_download, then curl -fL | textures/<family>/<role>.png |
| Apply | apply_materials.py in Blender | Manifest in materials-manifest.md; geometry hash asserted |
| Film | film.py pilot, run, status | Config in film-config.md; resumable |
Read inventory.json, not the scene. Group materials by what the surface physically is (plaster, cedar, terracotta, glazed ceramic, brass, painted steel, glass, canvas, asphalt, foliage), reusing one family across color variants: the shader keeps each original color as a tint under the PATINA basecolor by default, so one plaster set serves cream, ochre, and gray walls. Split a shared color that sits on different surfaces (the same green on a canvas awning and a painted sign) with an object_overrides entry keyed by object-name prefix. A 41-material diorama needed 14 families; expect one job per family. Where the mesh already models bricks, roof tiles, or planks, prompt for the material of one element (fired clay, weathered cedar), never for the pattern: the geometry supplies the structure and a patterned map doubles it.
model_schema_get on the discovered id is the contract; the names below held at authoring time. prompt (required, 2048 characters) describes a flat, evenly lit, seamless physical surface with no objects or signage. maps is an array even for one entry (a bare string is ignored); keep the default of all five. width and height run 512 to 2048 in steps of 16, 1024 by default, and tileSize (128, about 1024 px) follows them: 256 for a 2048 set, or the repeat window no longer matches the texture. upscaleFactor 2 or 4 enlarges the predicted maps only, not the base texture. tilingMode restricts the repeat to one axis for planks or corrugation. numOutputs returns up to 4 variants of one prompt, each priced. enablePromptExpansion is on by default: turn it off when the prompt is deliberate. Set seed per family and keep it in the manifest so a family can be regenerated identically.
Keep dry_run and wait at the top level of model_run, beside model_id, team_id, and project_id; only model inputs belong under parameters. Price the exact payload with dry_run=true (a cost estimate, not parameter validation), confirm the budget (families times cost), then launch every family with wait=false and one jobs_wait over all the job ids (32 per call), re-called with pending_job_ids on timeout rather than answered with a second model_run. On a transport error, jobs_list before re-running: the job usually landed.
With the default five maps and numOutputs 1, a completed job carried six asset ids at authoring time: the base texture (metadata.type inference-txt2img-texture) and one asset per map, labeled texture-albedo, texture-normal, texture-smoothness, texture-metallic, and texture-height; numOutputs multiplies the set. Treat the metadata.type values read back with asset_get as the contract and map them to the five roles, never the order. The roughness request comes back labeled smoothness, and at authoring time the values were roughness (a brushed brass map read darker than a matte gray one), so the label is the trap, not the data: asset_display that map for a family whose finish you know before touching roughness_is_smoothness in the manifest, which inverts it when true. asset_download each map (PNG by default) into textures/<family>/<role>.png, and record prompt, seed, job id, asset ids, scope pair, and billed cuCost under the manifest's provenance.
blender --background --factory-startup --python scripts/inventory.py -- model.glb work/ imports the mesh (GLB, glTF, OBJ, or FBX) or opens a .blend, saves a packed work/Before.blend, and writes work/inventory.json. Write work/materials.json mapping every material name to a family and every family to its five maps (the manifest reference has every key and default), then run blender --background --factory-startup work/Before.blend --python scripts/apply_materials.py -- work/materials.json. It validates the manifest, projects a dedicated PatinaUV layer along each face's dominant axis at object scale so tile_span means meters per repeat (a mesh shared by linked duplicates is made single-user first), builds one Principled BSDF per original material and family, packs the images, and asserts the geometry hash is unchanged. The .blend is the deliverable: a glTF export flattens the calibrated shader graph (the exporter carries only direct texture links), so bake before exporting to an engine. Open the result or render one still before spending render time on a film.
python3 scripts/film.py config.json pilot renders both endpoints of every shot at half resolution for both passes and writes Pilot Contact.jpg with a rough time estimate. Fix framing and material defects from that sheet, then run renders at native resolution, resumes valid frames, saves both camera scenes as editable .blend files, and assembles and verifies the films; status prints progress. The run folder is fingerprinted from the inputs, the scripts, and the config, so a change to any of them starts a new folder. The entry points share common.py and scene.py, and film.py launches worker.py inside Blender; none of the three is run directly.
Design shots from inventory.json bounds, not from the example plan, whose coordinates fit one asset. The fast preset (EEVEE, 24 samples, half-resolution ray-traced reflections with denoising, 12 fps sources interpolated to 24 fps for slow moves) ran at about a second per 2368x1332 frame on a laptop, so the example plan's 792 source frames per pass take roughly a quarter hour each; refine from pilot_estimate.json, and keep source_fps 24 for fast motion. Verify with review/Sweep Contact.jpg, sampled at 2 fps across the whole master: one still per shot passes a defect that fades in mid-shot. A clean encoder log is not visual approval.
teams_list and projects_list and ask them to choose. Unattended without an authorized pair, stop before scoped calls and report the missing scope. asset_get on the diorama (an image-to-3D result: 41 materials, no image textures, 78K faces), asset_download, then curl -fL -o work/street.glb "<url>".inventory.py; group the 41 materials into families such as plaster, cedar, terracotta, ceramic, brass, steel, glass, canvas, asphalt, and leaf, with an override sending the awning objects to canvas.search for PATINA, then model_schema_get on the returned PATINA Material id; re-discover each session.model_run with top-level dry_run=true on the exact family payloads. At authoring time, 17 CU per family made 238 CU for fourteen; use the current estimates. Proceed within an already authorized budget or ask the user to approve the total. Unattended without enough authorized budget, return the estimates and stop before generation.model_run calls with top-level wait=false, prompts such as "aged lime plaster wall, fine mineral grain, flat, evenly lit, seamless", seed fixed per family; one jobs_wait with all fourteen ids until every row is complete.asset_get on each output to read metadata.type; asset_display the smoothness-labeled plaster map to settle polarity; asset_download and curl -fL every map into textures/<family>/.materials.json (roughness ranges per family, roughness_is_smoothness as settled, provenance with job ids and cost) and run apply_materials.py; open PATINA.blend once.film.py in pilot mode, inspect, then run; hand over the master, the sharing copy, both passes, and the two editable scenes, and name the interpolation used.scenario skill's multipart upload flow: upload_asset with kind: "video", file_name, content_type: "video/mp4", and file_size in bytes (omit data), PUT every part to its returned URL, then upload_asset_complete with the returned upload_id and the same scope. Only after completion returns the video asset id, file it with the source and the maps in a collection (collection_create, then collection_add_assets: catalog tools, run through scenario_tool_execute_write with their arguments under parameters).source field alone: read metadata.type, and confirm the smoothness label's polarity before inverting.jobs_wait timed out or model_run raised a transport error: re-call with pending_job_ids, or jobs_list first.search, re-price with dry_run.© 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 9 other files (scripts, references) in skills/scenario-patina-retexture of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Patina Retexture 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 Patina Retexture this skillscenario-labs/skills | 946 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Geometry Nodesarjun988/blender-skills | 283 | — | ~963 | Automated safety check: Pass | MIT | |
| Game Art PipelinePersonalJarvis/PersonalJarvis | 159 | — | ~566 | Automated safety check: Pass | Apache-2.0 | |
| Blender Production Directorarjun988/blender-skills | 283 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Blender Character Artistarjun988/blender-skills | 283 | — | ~1k | Automated safety check: Pass | MIT | |
| Creature Modeling for Blenderarjun988/blender-skills | 283 | — | ~1k | Automated safety check: Pass | MIT |
arjun988/blender-skills
Blender Geometry Nodes for procedural modeling, scatter systems, vegetation, buildings, pipes, cables, and reusable node groups.
PersonalJarvis/PersonalJarvis
Develop or redesign Personal Jarvis world art, buildings, characters and 3D assets through an authored Blender reference scene, runtime review and controlled asset rollout.
arjun988/blender-skills
Plans and coordinates Blender asset work by analyzing the request, setting budgets and export format, and routing to specialist skills, including reference-image matching.
arjun988/blender-skills
Guides production character modeling in Blender through MCP: proportions, edge loops for faces and joints, clothing as separate meshes, hair, and animation-ready topology.
arjun988/blender-skills
Anatomy-grounded workflow for modeling fantasy creatures, monsters and aliens in Blender over MCP, from skeleton blockout and muscle masses to retopology and rig tests.
pa001024/dna-builder
This skill documents how to use the fmodel-mcp toolkit (a CUE4Parse-based .NET CLI plus a thin Python MCP server) to inspect and export Unreal Engine game assets — pak files, textures, meshes…
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
Categories
A skill your agent uses when retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB or Blender scene (an image-to-3D result with flat colors, a prop, a…. Scenario Patina Retexture is an agent skill from scenario-labs/skills. Use when retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB or Blender scene (an image-to-3D result with flat colors, a prop, a diorama) whose surfaces need basecolor, normal, roughness, metalness, and height maps per material family with geometry untouched, or a matched before-and-after comparison film rendered in Blender with one camera path, lighting, and cut.
Scenario Patina Retexture fits situations like: retexturing an existing 3D asset with PATINA PBR materials through the Scenario MCP server: a GLB; blender scene (an image-to-3D result with flat colors; A diorama) whose surfaces need basecolor; height maps per material family with geometry untouched.
Run `npx skills add scenario-labs/skills --skill scenario-patina-retexture -a claude-code`. Or copy the skill folder (skills/scenario-patina-retexture in scenario-labs/skills) into .claude/skills/scenario-patina-retexture in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-patina-retexture -a codex`. Or copy the skill folder (skills/scenario-patina-retexture in scenario-labs/skills) into .agents/skills/scenario-patina-retexture 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-patina-retexture -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-patina-retexture, .gemini/skills/scenario-patina-retexture, .github/skills/scenario-patina-retexture and .opencode/skills/scenario-patina-retexture in your project.
Going by SKILL.md and its folder, Scenario Patina Retexture needs Python for the scripts in its folder and the command-line tools its instructions call (curl, npx and python3). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use curl and npx, 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 Patina Retexture is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Patina Retexture: Geometry Nodes (arjun988/blender-skills, 283 stars), Game Art Pipeline (PersonalJarvis/PersonalJarvis, 159 stars), Blender Production Director (arjun988/blender-skills, 283 stars) and Blender Character Artist (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.