Game Asset Generator
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
A skill your agent uses when modeling hard surface in ZBrush 2026 (sci-fi helmet, weapon, prop, armor plates, mechanical parts, kitbash, vents, panel lines, bolts, concept to game asset), when using…
$ npx skills add scenario-labs/skills --skill scenario-zbrush-hard-surface -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-hard-surface --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-hard-surface .claude/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .claude/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surfaceType 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-hard-surface -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-hard-surface --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-hard-surface .agents/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .agents/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surface -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-hard-surface --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-hard-surface .cursor/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .cursor/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surface--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-hard-surface -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-hard-surface --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-hard-surface .gemini/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .gemini/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surfaceInstalls 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-hard-surface -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-hard-surface .github/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .github/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surface -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-hard-surface --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-hard-surface .opencode/skills/scenario-zbrush-hard-surface && 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-hard-surface" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-hard-surface into .opencode/skills/scenario-zbrush-hard-surface/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-hard-surface", 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-hard-surfaceA skill your agent uses when modeling hard surface in ZBrush 2026 (sci-fi helmet, weapon, prop, armor plates, mechanical parts, kitbash, vents, panel lines, bolts, concept to game asset), when using…
Scenario Zbrush Hard Surface is an agent skill from scenario-labs/skills. Use when modeling hard surface in ZBrush 2026 (sci-fi helmet, weapon, prop, armor plates, mechanical parts, kitbash, vents, panel lines, bolts, concept to game asset), when using ZModeler, Dynamic Subdivision and creasing, Live Boolean, Knife, Clip, Slice or Trim curves, IMM, ArrayMesh, NanoMesh or Panel Loops, or when edges look razor sharp, a Make Boolean Mesh fails or leaves holes, planes look wobbly, Mirror And Weld erased an edit, or ZRemesher ruins a hard-surface part.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/critique.md`, `references/expert-notes.md` and `references/gui-paths.md`).
It sits in Game Development, covering Game assets and audio. 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.
10 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 Zbrush Hard Surface loads about 4.8k tokens when it runs, and up to ~35k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 2,037 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). 2,037 words, ~4,833 tokens.
.claude/skills/scenario-zbrush-hard-surface/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Hard surface is judged as a result: it reads as manufactured when every edge is clearly straight or clearly curved, planes carry an even highlight, edges are wide enough to catch light and every part could be built (Plouffe, Klimer). The agent builds that language from deterministic operations (primitives, Live Boolean stacks, polygroups as the crease plan, Dynamic Subdivision numbers, ArrayMesh, Panel Loops) and uses clicks and strokes only where nothing else exists. 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-zbrush-expert (bridge, stroke engine, review loop, 2026 traps). Toolkit: scripts/zb_hardsurface.py (import sys; sys.path.insert(0, "<this skill>/scripts"); import zb_hardsurface as hs, then hs.hs_call("new_part", "cube")), built on the lead's zb_ops, zb_review, zb_audit and zb_stroke. Nothing in it has run in ZBrush yet.
hs.edge_width). Pavlovich works at 3/2 and bakes 4/2; Plouffe keeps CreaseLvl 3 over a razor 4 and calls 2 too soft. Deciding condition: render both under metal, keep the widest edge that still looks planned.| Deterministic (script it) | Click or stroke [verify] | GUI only, or substitute |
|---|---|---|
Primitives, Unify, placement (new_part, place, import_part); Live Boolean roles (set_roles, roles_from_groups), DSDiv, Make Boolean Mesh, Show Coplanar and Show Issues | ZModeler: a saved brush or 2026 preset holding the action and crease option, one canvas_action at click_target (a drag the first time; a tap replays) | Clip, Trim, Slice, Knife (Ctrl+Shift drag; press_key is broken): boolean cutters, fitted_split_groups, DynaMesh Groups on a group outline, a ZScript IKeyPress wrapper (scenario-zbrush-automation) |
| Dynamic Subdiv, CreaseLvl, CTolerance, Crease PG, Crease Bevel, Apply | NanoMesh insert: one click on a face of the target group, or on a front-facing plane (the shipped macro's routine) | Gizmo deformers: Deformation sliders on an axis-aligned part |
Groups By Normals, Mirror And Weld, Panel Loops, GroupsLoops, ArrayMesh, NanoMesh sliders, MeshFromBrush (fastener_from_brush), masks (mask_fillet), ZRemesher, DynaMesh, Decimation | IMM: a synthesized Dots stroke, or Curve Mode on script curves; imm_ready first | Retopo brush, Mask By Polypaint dialog, freehand masks, hPolish planing (weak strokes) |
| Input | Changes | Default when silent |
|---|---|---|
| Destination | game (bake to a low), film, print collectible, concept read | game asset baked to one 2048 map (Pavlovich's pistol) |
| Camera | first person and ADS, third person, turntable, print framing | third person; detail sized to what reads there |
| Budget | low-poly triangles, map size, high-poly cap | report counts and ask; never invent a budget |
| Function sheet | how it opens, vents, power, how it is made, fastener family | write one before blocking (Klimer) |
| Scale | rigged: real scale in the block; concept: proportion | Unify (about 2 units), Z forward, perspective off (Chervenka); mm briefs via to_tool_units |
| Moving parts | a hinged visor stays a separate part and Start group | separate |
| Painter handoff | Substance Bridge, or OBJ plus an external bake | ask; both are below |
new_part and place, or import_part from a DCC block; body first, cutters below. GATE: forms sheet (zb_review.review) against the concept; a rigged asset's block OBJ checked in engine with the rig before detailing.zremesh_recipe("after_boolean"). The sculpted route (DynaMesh 128 to 176, hPolish, TrimDynamic) is concept only. GATE: hygiene(obj) ok (it stands in for Check Mesh, which reports through a note); PolyFrame shows even quads.crease_by_groups(45), dynamic_subdiv(intent="working"); arcs crease_by_angle, tuned per span. Loops and insets made with ZModeler take their crease at creation (zmodeler_plan: Insert EdgeLoop "Crease"; Inset "Crease New Edges" crisp, "Crease Inner Poly" rounded; defaults are Do Not Crease). GATE: check_crease; metal sheet (review_sheets) shows soft, light-catching edges, no scalloping, symmetric polygroups.new_part(..., op="sub") through the surface, never flush; Smooth 3 / CreaseLvl 2 plus crease by angle; array_mesh on the cutter. GATE before: stack_report()["problems"] empty, coplanar_report clean, Show Coplanar snapshot has no red, array_plan walls ok. Then make_boolean_mesh (short timeout). GATE after: UMesh SubTools equal Start groups; Show Issues snapshot clean; recrease (Crease PG unless a border was softened on purpose); hygiene before ZRemesher. Any one-sided edit: mirror_report, mirror_weld(keep=...), then mirror_check on exports before and after.panel_loops). A visor or hatch that fits its opening: one cutter used twice (fitted_split_groups: Intersect in one Start group, Subtract in the other), or DynaMesh Groups on a group outline. Seams: a thin subtractive cutter from border_polylines plus curve_mesh [verify]. Masks: mask_fillet (Klimer's blur, invert, repeated). GATE: split_copy("groups") counts panels; gaps constant on the sheet.array_commit("nano") with ZRVar variation (Chervenka); a part from an IMM without a drag: fastener_from_brush; no face where a bolt goes: a helper plane. A port across a seam: seam_port_groups (Pavlovich). Exact runs: spaced_points. GATE: count, orientation and the same fastener everywhere on the sheet.bake_split(): Apply at 4/2 on a copy, Dynamic off on the original. Exact chamfer widths: Crease Bevel width or a boolean chamfer, since Polish only gives the minimum (Polycount). GATE: levels = 1 + Flat + Smooth; edge_language has no ambiguous lines; plane_flatness no wobbly groups; pinch_report flags nothing.layer_safe(recorded, zb_ops.stats()) before and after each pass.zremesh_recipe("part")); quick static prop: dynamesh_visible(res) then one decimate_percent; or Maya or Blender. Klimer's ZRemesher plus auto-reduction gave "the nastiest mesh I've ever shipped". Painter routes (scenario-zbrush-retopology-export runs them): Substance Bridge Low & High plus Auto-Bake plus Send PolyPaint (bridge_preflight), or native Unwrap with crease seams (unwrap_creases) then OBJ. GATE: zb_audit.verdict(..., "game"); animated parts separate.| Value | Use | Source |
|---|---|---|
| Groups By Normals 45 (33 softer, 60 misses) | crease plan | Pavlovich; Plouffe |
| Smooth/Crease 3/2 working, 4/2 bake, 4/3 tight, 4/1 soft | edge width | Pavlovich; Plouffe |
| Crease Tolerance 45 (22 on one arch) | crease by angle | Pavlovich |
| Faces x4 per QGrid, Flat or Smooth step; Apply levels 1 + Flat + Smooth | budgets | DSUB doc |
| Cutter cylinders 8, 12, 16, 24 or 32 sides; 36 to 140 before a DynaMesh bake | cutters | Pavlovich; Polycount |
| ArrayMesh Repeat 4 to 5 | vents | Pavlovich |
| Panel Loops: Loops 1, Polish 0, Bevel 0, Elevation -100, Double, Ignore Groups | plates | Plouffe |
| ZRemesher Half + Detect Edges + Adaptive 0 | cut-ready base | Pavlovich |
| Keep Groups, Smooth Groups 0, AdaptiveSize 25 | part retopology | Chervenka |
| About 3 stars on a panel base | pinch budget | Plouffe |
| LazyStep 2 touching (his guess), 2.5 rivets; Curve Step 1 touching | IMM runs | Pavlovich; IMM doc |
| DynaMesh 176 exploration; 1000 game shell | resolution | Pavlovich |
| 25k of 1.671M = 1.4 to 1.5 percent | one decimation pass | Pavlovich |
| 10M polygons per SubTool | high-poly cap | Plouffe |
| Block 500 to 40k polys; review high under 1M points | engine checks | Klimer |
| 2048 bake, 4 px padding | maps | Pavlovich |
stack_report and coplanar_report clean; make_boolean_mesh()["ok"]; hygiene; check_crease; mirror_check; edge_language (no ambiguous); plane_flatness(obj)["wobbly"] empty; pinch_report; layer_safe; bridge_preflight; zb_audit.verdict.review_sheets: MatCap Gray from five views for forms; metal, square-on and 30-degree grazing for planes and edge width; PolyFrame for groups and dotted crease lines. Show Coplanar before and Show Issues after each boolean. Pinches: a low level with dark polypaint and a low-metal MatCap. Judge with references/critique.md.| Mistake | Looks like | Fix |
|---|---|---|
| CreaseLvl >= SmoothSubdiv | razor CG edges | dynamic_subdiv(intent="bake") |
| QGrid on a curved shell | faceted arcs | QGrid 0, Smooth plus crease_by_angle |
| Cutter flush with the body | coplanar note blocks; holes | cut through; coplanar_report |
| No Start group or DSDiv off | part sewn to the body; faceted UMesh | set_roles(... start=True); dsdiv=True |
| Mirror And Weld, good half on +X | edit erased | mirror_weld(keep="pos"), mirror_check |
| Crease PG after softening borders | softened edges razor again | crease by angle, or merge groups first |
| Debris after cuts | ZRemesher fails | hygiene, hide debris, Del Hidden |
| IMM on a SubTool with levels | insert refused | imm_ready; level-free placeholder SubTool |
| Layer made before a topology change | layer no longer applies | layers after the last boolean or Apply |
| Force UV Auto-Unwrap on | every SubTool loses its UVs | bridge_preflight; off |
stack_report and the last sheets; to scenario-zbrush-retopology-export for UVs (Unwrap with crease seams, UV Master), Substance Bridge or Multi Map Exporter bakes (a polypaint ID travels by Send PolyPaint or an MME Texture From Polypaint map; OBJ vertex color is not established) and the game low poly; the 2026.1 Retopo brush is a GUI step there; to scenario-maya-modeling, scenario-maya-retopology-uv, scenario-blender-retopology or scenario-blender-uv-baking for a hand-built low; polypaint IDs with scenario-zbrush-paint-render; print parts to scenario-zbrush-pose-print.s.SmoothSubdiv, P.Panel Loops, a.Repeat, m.Width; sections of Tool > Geometry add no path level. Cmd+W quits ZBrush on macOS; Control+W groups.references/expert-notes.md: principles by expert, timestamps, deciding conditions; load when planning.references/procedures.md: full bridge procedures; load before writing code.references/critique.md: the rubric; load at every gate.references/gui-paths.md: palettes, hotkeys, brushes; load when a step is GUI only.references/sources.md: every source, credential, URL and timestamp.© 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 6 other files (scripts, references) in skills/dcc/zbrush/scenario-zbrush-hard-surface of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Zbrush Hard Surface 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 Hard Surface this skillscenario-labs/skills | 946 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Threejs 3D Generatorvalkor-ai/loom | 1.2k | 1 repos | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Asset Pipelinerehan-remade/universal-modder | 6.5k | — | ~2k | Automated safety check: Pass | MIT | |
| 2D Sprite Generator0x0funky/agent-sprite-forge | 4.4k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Audio Designukanwat/overtime | 387 | 1 repos | ~1.8k | Automated safety check: Pass | Apache-2.0 |
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
valkor-ai/loom
Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games via the Tripo API.
rehan-remade/universal-modder
Turn generated or hand-made art into exactly what a game engine loads.
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
ukanwat/overtime
Implement game audio practice — bus/mixer architecture and gain in decibels, ducking (sidechain), adaptive/dynamic music via layering and re-sequencing, SFX variation, and beat synchronization.
Donchitos/Claude-Code-Game-Studios
Audits game assets against naming conventions, file size budgets and format standards, and finds orphaned assets and missing references.
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…
Categories
A skill your agent uses when modeling hard surface in ZBrush 2026 (sci-fi helmet, weapon, prop, armor plates, mechanical parts, kitbash, vents, panel lines, bolts, concept to game asset), when using…. Scenario Zbrush Hard Surface is an agent skill from scenario-labs/skills. Use when modeling hard surface in ZBrush 2026 (sci-fi helmet, weapon, prop, armor plates, mechanical parts, kitbash, vents, panel lines, bolts, concept to game asset), when using ZModeler, Dynamic Subdivision and creasing, Live Boolean, Knife, Clip, Slice or Trim curves, IMM, ArrayMesh, NanoMesh or Panel Loops, or when edges look razor sharp, a Make Boolean Mesh fails or leaves holes, planes look wobbly, Mirror And Weld erased an edit, or ZRemesher ruins a hard-surface part.
Scenario Zbrush Hard Surface fits situations like: modeling hard surface in ZBrush 2026 (sci-fi helmet; mechanical parts; concept to game asset); dynamic Subdivision and creasing.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-hard-surface -a claude-code`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-hard-surface in scenario-labs/skills) into .claude/skills/scenario-zbrush-hard-surface in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-hard-surface -a codex`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-hard-surface in scenario-labs/skills) into .agents/skills/scenario-zbrush-hard-surface 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-hard-surface -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-hard-surface, .gemini/skills/scenario-zbrush-hard-surface, .github/skills/scenario-zbrush-hard-surface and .opencode/skills/scenario-zbrush-hard-surface in your project.
Going by SKILL.md and its folder, Scenario Zbrush Hard Surface 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 Zbrush Hard Surface 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.8k 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 30k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Zbrush Hard Surface: Game Asset Generator (htdt/godogen, 7.1k stars), Threejs 3D Generator (valkor-ai/loom, 1.2k stars), Asset Pipeline (rehan-remade/universal-modder, 6.5k stars) and 2D Sprite Generator (0x0funky/agent-sprite-forge, 4.4k 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.