Threejs World Generation
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
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.
$ npx skills add scenario-labs/skills --skill scenario-blender-hair -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-blender-hair --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/dcc/blender/scenario-blender-hair .claude/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .claude/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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/dcc/blender/scenario-blender-hairType 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-blender-hair -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-blender-hair --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/dcc/blender/scenario-blender-hair .agents/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .agents/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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-blender-hair -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-blender-hair --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/dcc/blender/scenario-blender-hair .cursor/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .cursor/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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/dcc/blender/scenario-blender-hair--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-blender-hair -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-blender-hair --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/dcc/blender/scenario-blender-hair .gemini/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .gemini/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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-blender-hairInstalls 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-blender-hair -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/dcc/blender/scenario-blender-hair .github/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .github/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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-blender-hair -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-blender-hair --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/dcc/blender/scenario-blender-hair .opencode/skills/scenario-blender-hair && 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-blender-hair" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/blender/scenario-blender-hair into .opencode/skills/scenario-blender-hair/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-blender-hair", 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-blender-hairA 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 Blender Hair is an agent skill from scenario-labs/skills. Use 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. Also covers the Essentials hair node assets (Interpolate, Clump, Curl, Frizz, Noise, Trim), density masks, bald spots, parting lines, strand shading in Cycles or EEVEE, and slow grooms. Use it too when a hair script misbehaves headless, for example stale modifier inputs or curve sculpt brushes that do nothing.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/critique.md`, `references/expert-notes.md` and `references/procedures.md`).
It sits in Game Development. It works with 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.
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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use 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 Blender Hair loads about 4.7k tokens when it runs, and up to ~23k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 1,897 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,897 words, ~4,677 tokens.
.claude/skills/scenario-blender-hair/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Expert grooming means a few evenly spaced guides that set direction and silhouette. Stacked, masked procedural layers add density, clumping, frizz, length variation and strays, judged in a lit render at full density and in pose. Write guides as data (no curve brush stroke can be scripted in 5.2.1) and make every look decision through the Essentials hair node-group assets. 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.
REQUIRED BACKGROUND: scenario-blender-expert (execution channel, review loop, 5.2 API changes).
| Input | Changes | Default when the brief is silent |
|---|---|---|
| Target | Cycles strands vs EEVEE or game cards | Cycles strands (Principled Hair BSDF) |
| Subject | human hairstyle (hair cap, part) vs animal fur (body mesh, landmarks) | follow the reference |
| Length class | points per guide, clump and curl layers | short fur: 3 points, long: 8, long human: 15 |
| Deformation | animated means Hair Dynamics (Animation) stays last, and you check in pose | animated |
| Budget | render curves, card triangles | say the number: evaluated curves at full density |
| Reference | same subspecies, season, ideally the same individual (Schmidbauer) | ask for it; draw landmarks and flow first |
Finish topology and non-overlapping UVs before grooming (hair binds to UV space) and apply scale: density counts the mesh's local area (verified).
| Task | Headless | Live session |
|---|---|---|
| Curves object, surface binding, guides as data, snap, subdivide or resample, asset modifiers, inputs, masks, counts, renders, cards | yes (scripts/bx_hair.py) | yes, same code in Object Mode |
Enter Sculpt Curves, activate the 11 curve brushes, set brush settings, sculpt_curves.select_random | n/a | yes (bx_gui.activate_brush("SCULPT_CURVES", "Comb")) |
| Comb, Add, Density, Grow/Shrink, Pull Tips strokes | no | no. sculpt_curves.brush_stroke has no exec, so bx_gui.stroke("SCULPT_CURVES", ...) returns PASS_THROUGH and changes nothing. Set the brush up and ask the user to stroke, or use the substitutes below. |
H.uv_report(surface): stacked UVs make curves ignore the rig, UDIMs are fine, an unmerged mirror seam needs UV Merge by Distance (Schmidbauer). Humans: a hair cap split into islands along the part. Animals: separate the mouth interior. Masks: vertex groups (fast) or textures (detail on low-poly meshes). GATE: overlap_faces == 0, scale applied, one mask per region.hair = H.new_groom(surface), P, N = H.sample_roots(surface, spacing, mask=...), H.add_guides(hair, P, N, length, points=2, flow=..., flow_blend=...) (snaps, writes surface_uv_coordinate). Later: H.subdivide_guides or H.resample_guides(hair, 15). Brush substitutes: a direction field for Comb, droop for gravity, delete and re-add guides for Density and Add; Bystedt's "grow long, comb, shrink back" is long guides plus Trim. GATE: in H.groom_report, roots_off_surface and spacing_gaps_2x are 0 and length_outliers is 0. A guides-only render shows every direction right.H.count(hair) (full density) is within budget, root_area_fraction is well under 0.5, and a render shows no bald spots.show_viewport and rendering.H.FUR_STACK_LONG, applied with H.build_stack): Noise, Curl, strays, Frizz with negative shape, Clump, Clump 2, final Frizz (Cumulative off), Trim, Rotate.H.random_curve_mask(hair, "frizz_mask", 0.8) then input "attr:frizz_mask"; root-to-tip ramps: H.along_curve_attr.
GATE: each layer earns its place in an A/B render.H.distance_weights(cap, "part_lift", "part", radius, "bump") feeds Displace Hair Curves (Surface Normal on, small distance, Shape near 0, Factor attr:part_lift). GATE: in a top view there is no scalp gap at the part and the crown is not flat.H.hair_material(name, "CYCLES", melanin=(root, tip)) or "EEVEE" with explicit colors, then H.setup_render(scene, engine, close_up). GATE: H.review([surface, hair], out, engine) passes references/critique.md.H.add_cards(hair, width, material=H.card_material(...)), then convert a copy with object.convert(target='MESH') and export glTF. Put a textured hair cap under the cards. GATE: triangles within budget, UVs in the half tile for cards, roots on the scalp.| Item | Value | Relative to, source |
|---|---|---|
| Guide points | 2 while placing, 3 short fur, 8 long hair | Schmidbauer [00:20:24], [00:21:34] |
| Long human hair | resample to 15 points | Bystedt [00:08:38] |
| Add brush length | about 0.01 m for fur (default 0.3 m) | Schmidbauer [00:17:59] |
| Density, human layer | 5,000 per m² per clump population | Bystedt [00:17:28] |
| Density, long fur | 1,000,000/m², radius 0.2 mm, viewport 4% | Thommes [00:09:02], [00:16:44] |
| Density map | part 1.0, base 0.5, bald 0; ramp black stop just above 0.5 | Bystedt [00:22:04], [00:23:46] |
| Wide clumps | Shape about 0.3, reduced Factor, groomed guides | Bystedt [00:19:47] |
| Curl | Radius 2 cm, Curl Start 1, Random Offset 0.5, Guide Distance 1 cm, Guide Mask 0.2 | Thommes [00:12:04], [00:14:18] |
| Sub-clumps | Guide Distance 1 mm, Mask 0.1; layer 2: 4 mm, 0.25, Clump Offset 5 mm | Thommes [00:16:12], [00:31:01] |
| Frizz | 2 mm, negative Shape; final: -0.2, Cumulative off, on 20% of curves | Thommes [00:15:04], [00:32:08], [00:26:03] |
| Strays | 10% of curves, Noise distance 5 mm | Thommes [00:30:28] |
| Trim, Rotate | Replace Length off, Random Offset 5 mm; Rotate random 5° | Thommes [00:22:20] |
| Card subdivision | 1 per 20 cm of card length | Bystedt g_ZIOafq4QU [00:05:08] |
| Card and tube profile | arc: 1 segment flat, 3 preferred; tube: flat spiral, resolution 6, 1 turn, height 0 | Matsumoto [00:19:54], [00:22:40] |
| Card UV width | cards use half the tile of tubes | Matsumoto [00:31:27] |
| Coverage sanity | density × π × radius²: 0.13 for Thommes' fur | [added] check |
In code:
import sys; sys.path.append("<skills>/scenario-blender-hair/scripts"); import bx_hair as H
print(H.uv_report(surface)) # overlap_faces == 0
rep = H.groom_report(hair); print(H.verdict(rep)) # [] or a list of fixes
print(H.count(hair)) # full-density curves and points vs budget
print(H.card_stats(hair)) # cards: tris, UV rangegroom_report checks attachment UVs, roots on the surface, spacing gaps, length dents (over 50% off neighbors), Hair Dynamics last, Trim Replace Length, unmasked Frizz or Noise, missing Density Mask, radius vs density, Strand display, and a Cycles hair shader under EEVEE.
Visually: H.review(objs, out, engine, views=("front", "threequarter", "top")) renders a lit full-density sheet with Thommes' rig (warm top fill, side key, cool rim, dark bluish world). Score it with references/critique.md: bald spots, part coverage, clumps, strays, length variation, tips, root-to-tip color, highlights.
| Mistake | What it looks like | Fix |
|---|---|---|
| Guides at the brush default of 8 points while blocking | tangles, clipping, fights while combing | 2 points, raise later (Schmidbauer) |
| Interpolate without a Density Mask | hair in the mouth or eyes, drifting children far from guides | vertex-group mask; separate the mouth interior |
| Uneven guide spacing | bald spots, worse in pose | sample_roots spacing; check spacing_gaps_2x |
| High density at default radius | a solid mass or "a mess" | Profile first, about 0.2 mm at 1M/m² (Thommes) |
| Trim at defaults | every strand becomes 1 m long | Replace Length off (Thommes) |
| Positive Frizz on curls or clumps | curl tips destroyed, fuzzy clump tips | negative Shape, Cumulative Offset off on the final Frizz |
| Duplicated layer with the same seed | wide and thin clumps stack identically | change seed and frequency (Bystedt) |
| Straight tips | "bad CG hair" | Roll Hair Curves at the tip only (Bystedt) |
| Surface edited after grooming | floating or sunken roots | snap_to_surface(hair, "DEFORM"), or NEAREST after topology changes |
| Judging at 4% viewport density | uniform clumps and equal lengths unnoticed | render at full density |
| Principled Hair BSDF in EEVEE | dark and flat (measured 0.09 vs 0.26 center luminance) | Principled BSDF with explicit colors |
| Scripting a Comb stroke | nothing happens, PASS_THROUGH | write positions, or hand the stroke to the user |
Animation or Physics (Experimental)). It replaces the old Surface Deform and moves roots with the deforming surface (shape keys and armature verified). Keep it last.md.properties.inputs.<id>.value or .type = 'ATTRIBUTE'. Headless, evaluation stays stale until obj.update_tag(). H.set_inputs resolves UI names and tags for you. Background evaluation applies Viewport Amount, so use H.count(full=True).brush.curves_sculpt_settings.render.hair_type is STRAND: use STRIP with hair_subdiv >= 1. Cycles shapes: RIBBONS, THICK, THICK_LINEAR. "Curves Info" is ShaderNodeHairInfo; Principled Hair offers Chiang and Huang. Hair Curves Noise writes resolution 12, which curves render with since 5.0.surface_render_method = 'DITHERED'. Keep the GeometrySet alive when reading obj.evaluated_geometry().mesh.references/expert-notes.md: load for judgment calls, per expert with timestamps (human hairstyle, animal fur, procedural fur, cards, mesh hair).references/procedures.md: load before writing code. It has full tested procedures P1 to P8 with raw bpy equivalents of the bx_hair calls.references/critique.md: load when reviewing a render or report, as the scoring rubric.references/sources.md: load to cite or re-watch a source, with the best timestamps.scripts/bx_hair.py: the toolkit (tested on 5.2.1). Tests are in tests/code/blender-hair/.© 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, references) in skills/dcc/blender/scenario-blender-hair of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Blender Hair 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 Blender Hair this skillscenario-labs/skills | 946 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Threejs World Generationcalesthio/OpenMontage | 66k | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| 3Dviz Pro Max Scene Builderviettranx/3dviz-pro-max | 709 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Asset Pipelinerehan-remade/universal-modder | 6.5k | — | ~2k | Automated safety check: Pass | MIT | |
| Blender Image To 3Dmajidmanzarpour/blender-game-skills | 135 | — | ~5.7k | Automated safety check: Pass | MIT | |
| Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill | 148 | — | ~2.1k | Automated safety check: Pass | None |
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
viettranx/3dviz-pro-max
Guides building an expressive 3D scene in Three.js or Blender by reasoning through intent, object construction and scientific grounding before using a catalog of recipes and kits.
rehan-remade/universal-modder
Turn generated or hand-made art into exactly what a game engine loads.
majidmanzarpour/blender-game-skills
Build a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles…
LaurentiuGabriel/unreal-game-assets-creation-skill
Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.
zenstory-ai/novel-to-game
Builds a risk-matched whitebox or an approved production game candidate from a game design for its target runtime, with replayable evidence.
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 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…
scenario-labs/skills
A skill your agent uses when a Godot 4 game goes online or co-op: host and join with ENet, WebSocket for a web build, RPCs (@rpc, rpcid, anypeer), MultiplayerSpawner and MultiplayerSynchronizer…
Works with
Categories
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 Blender Hair is an agent skill from scenario-labs/skills. Use 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 Blender Hair fits situations like: fur in Blender with hair curves; such as a character hairstyle; procedural fur in geometry nodes; hair cards and mesh hair for games.
Run `npx skills add scenario-labs/skills --skill scenario-blender-hair -a claude-code`. Or copy the skill folder (skills/dcc/blender/scenario-blender-hair in scenario-labs/skills) into .claude/skills/scenario-blender-hair in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-blender-hair -a codex`. Or copy the skill folder (skills/dcc/blender/scenario-blender-hair in scenario-labs/skills) into .agents/skills/scenario-blender-hair 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-blender-hair -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-blender-hair, .gemini/skills/scenario-blender-hair, .github/skills/scenario-blender-hair and .opencode/skills/scenario-blender-hair in your project.
Going by SKILL.md and its folder, Scenario Blender Hair needs Python for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use 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 Blender Hair is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k 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 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Blender Hair: Threejs World Generation (calesthio/OpenMontage, 66k stars), 3Dviz Pro Max Scene Builder (viettranx/3dviz-pro-max, 709 stars), Asset Pipeline (rehan-remade/universal-modder, 6.5k stars) and Blender Image To 3D (majidmanzarpour/blender-game-skills, 135 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.