MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
A skill your agent uses when an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush, DynaMesh, ZRemesher, UVs, export, polypaint, posing, 3D print, clean up an AI mesh in ZBrush), when…
$ npx skills add scenario-labs/skills --skill scenario-zbrush-expert -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-expert --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/zbrush/scenario-zbrush-expert .claude/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .claude/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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/zbrush/scenario-zbrush-expertType 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-zbrush-expert -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-expert --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/zbrush/scenario-zbrush-expert .agents/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .agents/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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-zbrush-expert -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-expert --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/zbrush/scenario-zbrush-expert .cursor/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .cursor/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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/zbrush/scenario-zbrush-expert--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-zbrush-expert -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-expert --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/zbrush/scenario-zbrush-expert .gemini/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .gemini/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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-zbrush-expertInstalls 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-zbrush-expert -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/zbrush/scenario-zbrush-expert .github/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .github/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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-zbrush-expert -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-zbrush-expert --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/zbrush/scenario-zbrush-expert .opencode/skills/scenario-zbrush-expert && 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-zbrush-expert" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-expert into .opencode/skills/scenario-zbrush-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-expert", 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-zbrush-expertA skill your agent uses when an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush, DynaMesh, ZRemesher, UVs, export, polypaint, posing, 3D print, clean up an AI mesh in ZBrush), when…
Scenario Zbrush Expert is an agent skill from scenario-labs/skills. Use when an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush, DynaMesh, ZRemesher, UVs, export, polypaint, posing, 3D print, clean up an AI mesh in ZBrush), when writing ZBrush Python (zbrush.commands) or ZScript, when the ZBrush bridge is not answering, a palette path or set() does nothing, a scripted stroke does not sculpt or a dialog blocks a script, or when a ZBrush result has to be judged the way a professional artist would.
Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `references/sdk-cookbook.md`, `references/sources.md` and `references/zbrush-2026-traps.md`).
It works with Python. 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.
7 steps, taken from the step headings 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 7 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3npxFrom 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 Zbrush Expert loads about 5.4k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 117 tokens; SKILL.md has 1,907 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,907 words, ~5,366 tokens.
.claude/skills/scenario-zbrush-expert/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.An agent does expert ZBrush work as a loop: deterministic palette operations, synthesized strokes and canvas renders from fixed views, gated at every stage. One long script is not the method. This skill is the protocol every ZBrush task follows, the shared toolkit in scripts/, and the map to the team skills. Target: ZBrush 2026.2.1 on macOS, driven through the project's Python bridge. 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.
| Channel | Use for | Rules |
|---|---|---|
Bridge into a running ZBrush (scripts/zb_launch.py, over the client scripts/zb_bridge.py) | all interactive work: palette operations, strokes, renders, measurements | zb_launch.start() spawns ZBrush with ZBRUSH_PLUGIN_PATH=scripts/zb_plugins and ZB_BRIDGE_AUTOSERVE=1. It waits for "plugin loaded", the port and a ping, then quits the ZHomePage helper. Work with zb_launch.run(code) or zb_launch.call("zb_ops", "dynamesh", 256). End with zb_launch.stop(save_to=".../x.ztl"). |
-script batch launch | unattended jobs on saved files (export every SubTool, reports) | ZBrush.app/Contents/MacOS/ZBrush -script /abs/job.py args /abs/scene.ZPR: the scene is the LAST argument, script args start at sys.argv.index("-script") + 2, report through files and sys.exit(code) (Maxon quickstart). Whether ZBrush quits on exit [verify]. |
Rules for the bridge:
zbc call runs in main mode, which is the default of run and call. The embedded VM keeps the GIL on ZBrush's main thread, so a socket thread alone starves. The proven design is a serve loop on the main thread that calls update(redraw_ui=True) between polls (README).start() refuses a second instance and never kills a ZBrush it did not spawn.message_*, ask_* or show_note(..., 0). For visible progress use set_notebar_text(text, progress).run and call leave sys.path, sys.modules, stdout and the working directory as found and pop every toolkit module, also after an error (Maxon Style Guide; the server runs the restore hook). Never add a folder to sys.path for good, never import toolkit code outside zb_launch.run. zb_launch.hygiene() must return empty lists; purge() removes a leak.zb_ops.sequence([["divide", [2]], ["polish", [10]]]) runs them inside freeze with show_actions(0); quiet() and frozen(fn) are the parts (SDK GUI reference). Never freeze a plugin press or a canvas export; call update(redraw_ui=True) before a snapshot.Document:Export still writes the canvas PNG (v03); screencapture shows only the lock screen. At 05:30 on 2026-09-24 a launch stalled after the Home Page press, while the 05:20 launch under the same lock worked. start() detects the stall, terminates the process it spawned and reports a diagnosis (details in zb_launch.py).zbrush_info(0) = 2026.2 before trusting anything below.| Action | Status | Substitute |
|---|---|---|
| Press, set and read palette items by path (DynaMesh, Divide, masks, exports) | yes, proven (v01, v03) | always exists() first: set() on a wrong path is silent |
Synthesized strokes Stroke("(ZObjStrokeV02n<N>=H<x>V<y>...)") + canvas_stroke | yes, proven (v02: volume 4.189 to 4.193) | |
| Replaying a recorded stroke with an offset | yes (v01: volume 4.184 to 4.189); rotation and scale [doc] | |
canvas_click drags to sculpt | no (v01: no change) | canvas_stroke |
| Dialog-free canvas PNG and OBJ export | yes (v03: 0.04 s, 0.08 s) | |
| ZTL save by path | path exists, dialog-free [verify] | |
| Aiming strokes at model points | front view measured on the v03 OBJ; other views [verify live_04] | zb_stroke.fit_convention |
| Pen pressure in strings | unknown [verify live_02] | Draw:Z Intensity and Draw Size per stroke |
| Smoothing by stroke (Shift) | no: a Smooth brush only becomes the Shift brush | Tool:Deformation:Polish, hPolish brush |
| ZModeler polygon clicks, Gizmo drags, pivot placement | no | Deformation sliders, Geometry X/Y/Z Position and XYZ Size, DynaMesh with Booleans, ZRemesher; else hand to a human or computer-use agent |
| Text prompts (SubTool Rename, New Folder) | no | name parts at creation; set_tool_path renames the top SubTool only |
| FBX export options dialog | no ("You cannot escape any GUI", Maxon forum) | OBJ or .GoZ by path |
press_key | no ("Does not work" in the stub) | ZScript macro with IKeyPress [verify]; System Events from outside |
merge_undo, undo control | no ("Not implemented") | versioned ZTL saves, Tool:Morph Target:StoreMT |
| Mask, layer, polygroup data | no API (Maxon forum 2026) | buttons plus visual checks; OBJ export for geometry |
| UV Master and Decimation Master presses | paths exist; return of control [verify live_08, live_09] | native Tool:UV Map:Create (Unwrap):Unwrap |
set_transform. Record the volume before and after as evidence that the stroke sculpted.zb_ops.stats(), plus zb_audit.audit() on an OBJ export. Every destructive wrapper (DynaMesh, ZRemesher, Divide, Decimate, Polish, Project All) returns a gate: volume ratio from get_polymesh3d_volume() and watertightness from is_polymesh3d_solid(). A collapsed or exploded remesh is a problem, a lost watertight state a warning; zb_ops.require_gate(r) raises. Bands are [added] start values.zb_review.review(out_dir) renders front, right, back, three-quarter and top with a neutral MatCap (MatCap Gray) and tiles one labeled sheet (the triples beyond front are [verify live_03]; an upside-down or wrong-side tile is visible on the sheet). Open it with the image reader and judge it with the domain skill's critique. Experts orbit constantly; the sheet is the agent's orbit.zb_ops.project_all(checkpoint="/abs/x.ztl") refuses to run without one, since Project All "might crash the program" (cgside). It then stores a morph target and a New Layer at the top level (FlippedNormals), sets Dist 0.1 (Drust) and flags spikes (a vertex outside the visible bbox). Repair with morph_repair(points) (Morph brush back to the stored target) or the layer, never by smoothing (FlippedNormals).Never report a model as done without having looked at a canvas render of its final state.
zb_ops.ensure_edit()). With Edit off, a drag stamps another pixol copy of the tool (Pablo, Logic Part 1)..ZTL files: zb_ops.save_ztl(path) picks the next free _vNNN and never overwrites. Keep at least three increments; AutoSave alone is not enough (Maxon, Saving Your Work). QuickSave is crash recovery, not versioning..ZPR deletes every loaded tool (Pavlovich 005). Save each changed tool first. Ctrl+S saves a project, not the model..bak of any file they replace.zbc.config(), zbc.reset()) without consent.| Brief | Skill chain | Delivers |
|---|---|---|
| Realistic character or creature | scenario-zbrush-sculpting, scenario-zbrush-character-creature, scenario-zbrush-retopology-export, scenario-zbrush-paint-render | ZTL stack, maps, renders |
| Stylized character or collectible | scenario-zbrush-sculpting, scenario-zbrush-stylized, then scenario-zbrush-pose-print or scenario-zbrush-paint-render | sculpt, print parts or renders |
| Hard-surface prop or weapon | scenario-zbrush-hard-surface, scenario-zbrush-retopology-export | high poly, game low poly, bakes |
| Retopology and export of a sculpt | scenario-zbrush-retopology-export | clean low poly, UVs, maps, OBJ or GoZ |
| AI-generated mesh cleanup | audit with zb_audit, scenario-zbrush-retopology-export (repair, remesh, project), scenario-zbrush-sculpting (forms) | clean sculpt worth detailing |
| Posing and 3D print | scenario-zbrush-pose-print | posed, hollowed, keyed parts in mm (STL or 3MF) |
| Polypaint, render, presentation | scenario-zbrush-paint-render | BPR or Redshift renders, turntables |
| Batch jobs, GoZ round trips, reports | scenario-zbrush-automation | scripts, -script jobs, reports |
Handoffs between team skills are a versioned ZTL plus its stats() and last review sheet. Handoffs out of ZBrush are OBJ or GoZ plus maps and an audit report. Sister teams: scenario-maya-expert (rigging, animation, Arnold lookdev), scenario-blender-expert (retopology, lookdev, rendering, GoB round trips), scenario-3d (AI mesh generation to finish here).
scripts/)zb_launch.py (agent side): start, ping, stop(save_to), is_running, status, screen_locked, diagnose, run(code, modules), call(module, func, *args), hygiene, purge. CLI: python3 zb_launch.py start|ping|status|stop|run.zb_ops.py (inside ZBrush): checked wrappers new_sphere, dynamesh, divide, del_levels, zremesher, project_all (safe: checkpoint, nets, Dist, gate), top_level, store_morph_target, new_layer, set_layer_intensity, morph_repair, polish, deform, mask, polygroups, visibility, uv_unwrap, decimate, export_obj, export_canvas, save_ztl, select_brush, find_brush, set_draw, set_material, set_symmetry, sculpt_stroke, stats, subtools, gate, require_gate, quiet, frozen, sequence. PATHS lists every item path with its evidence tag.zb_stroke.py (pure Python, both sides): encode/decode V02 strings, line, polyline, arc, zigzag, dab, resample, clip_to_canvas, Camera(transform, pivot).project(p), frame_transform, visible_mask, front_most_vertex, fit_convention, VIEWS.zb_review.py: review(out_dir, views, matcap) (agent side), capture_views and snapshot(path) (inside ZBrush), contact_sheet, silhouette_bbox.zb_audit.py (agent side, numpy): audit(obj) gives counts, poles, holes, non-manifold, winding, shells, symmetry, bbox, area, volume and edge lengths; verdict(report, "sculpt"|"game"|"print", ...); displaced(a, b).Offline tests pass (python3 -m unittest discover -s tests/code/zbrush-expert -p "test_*.py"). The ZBrush-side functions have not yet run in ZBrush as functions; the calls under them that v01 to v03 proved are listed in references/sdk-cookbook.md. tests/code/zbrush-expert/run_live.sh runs the live checks in one command.
# not yet run in ZBrush as a sequence
import sys; sys.path.insert(0, "<this skill>/scripts")
import zb_launch as zl, zb_review, zb_audit
zl.start()
zl.call("zb_ops", "new_sphere", 128)
zl.call("zb_ops", "sculpt_stroke", [[500, 380], [620, 380]], brush="ClayBuildup", size=40,
z_intensity=25)
sheet = zb_review.review("/abs/out/stage1")["sheet"] # look at it
obj = zl.call("zb_ops", "export_obj", "/abs/out/stage1.obj")
print(zb_audit.verdict(zb_audit.audit(obj["path"]), "sculpt"))
zl.call("zb_ops", "save_ztl", "/abs/out/head.ztl") # head_v001.ztl
zl.stop()set() on a missing path does nothing and raises nothing. Transform:Frame and Brush:Dam_Standard do not exist; use Transform:Fit and zb_ops.select_brush("Dam_Standard"). PolyFrame is Transform:Pf (commands.xml id Transform: Pf) and perspective is Draw:Perspective; Transform:PolyF and Transform:Persp are not ids.query_mesh3d() returns lists: int(zbc.query_mesh3d(1)[0]).Logs/Activity) records the canonical path of each press and set, which makes it a free path oracle (strokes are not logged).references/sdk-cookbook.md: calls and paths by task with the v01 to v03 evidence and the dialog budget. Load before writing any bridge code.references/zbrush-2026-traps.md: automation and modeling traps with fixes. Load when a call does nothing, hangs, or a tutorial step does not match 2026.references/sources.md: every source, with credentials and URLs.© 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 10 other files (scripts, references) in skills/dcc/zbrush/scenario-zbrush-expert of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Zbrush Expert 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 Zbrush Expert this skillscenario-labs/skills | 946 | — | ~5.4k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| PDF Processinganthropics/skills | 180k | 47 repos | ~2k | Automated safety check: Pass | Proprietary | |
| NotebookLM Research AssistantPleasePrompto/notebooklm-skill | 7.8k | 14 repos | ~2.4k | Automated safety check: Notes | MIT | |
| Manim Video Productionbrowser-use/video-use | 29k | 6 repos | ~3k | Automated safety check: Pass | MIT | |
| PPT Masterhugohe3/ppt-master | 59k | 1 repos | ~2.5k | Automated safety check: Pass | MIT |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
PleasePrompto/notebooklm-skill
Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.
browser-use/video-use
Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.
hugohe3/ppt-master
Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.
zLanqing/codex-claude-academic-skills
Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.
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 an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush, DynaMesh, ZRemesher, UVs, export, polypaint, posing, 3D print, clean up an AI mesh in ZBrush), when…. Scenario Zbrush Expert is an agent skill from scenario-labs/skills.commands) or ZScript, when the ZBrush bridge is not answering, a palette path or set() does nothing, a scripted stroke does not sculpt or a dialog blocks a script, or when a ZBrush result has to be judged the way a professional artist would.
Scenario Zbrush Expert fits situations like: an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush; clean up an AI mesh in ZBrush); writing ZBrush Python (zbrush.commands); the ZBrush bridge is not answering.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-expert -a claude-code`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-expert in scenario-labs/skills) into .claude/skills/scenario-zbrush-expert in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-expert -a codex`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-expert in scenario-labs/skills) into .agents/skills/scenario-zbrush-expert 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-zbrush-expert -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-zbrush-expert, .gemini/skills/scenario-zbrush-expert, .github/skills/scenario-zbrush-expert and .opencode/skills/scenario-zbrush-expert in your project.
Going by SKILL.md and its folder, Scenario Zbrush Expert needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and 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 Zbrush Expert is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.4k tokens (SKILL.md is roughly 21k 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 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Zbrush Expert: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k 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.