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 shading an asset in Maya with Arnold: OpenPBR or aiStandardSurface materials, hooking up Substance Painter or UDIM texture sets, color spaces (sRGB, Raw, ACEScg), a…
$ npx skills add scenario-labs/skills --skill scenario-maya-lookdev -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-maya-lookdev --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/maya/scenario-maya-lookdev .claude/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .claude/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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/maya/scenario-maya-lookdevType 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-maya-lookdev -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-maya-lookdev --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/maya/scenario-maya-lookdev .agents/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .agents/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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-maya-lookdev -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-maya-lookdev --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/maya/scenario-maya-lookdev .cursor/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .cursor/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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/maya/scenario-maya-lookdev--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-maya-lookdev -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-maya-lookdev --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/maya/scenario-maya-lookdev .gemini/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .gemini/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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-maya-lookdevInstalls 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-maya-lookdev -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/maya/scenario-maya-lookdev .github/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .github/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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-maya-lookdev -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-maya-lookdev --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/maya/scenario-maya-lookdev .opencode/skills/scenario-maya-lookdev && 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-maya-lookdev" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/maya/scenario-maya-lookdev into .opencode/skills/scenario-maya-lookdev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-maya-lookdev", 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-maya-lookdevA skill your agent uses when shading an asset in Maya with Arnold: OpenPBR or aiStandardSurface materials, hooking up Substance Painter or UDIM texture sets, color spaces (sRGB, Raw, ACEScg), a…
Scenario Maya Lookdev is an agent skill from scenario-labs/skills. Use when shading an asset in Maya with Arnold: OpenPBR or aiStandardSurface materials, hooking up Substance Painter or UDIM texture sets, color spaces (sRGB, Raw, ACEScg), a normal map that looks wrong, displacement with black holes or faceting, skin SSS, chrome and metals, glass or crystal, car paint, aiStandardHair, porting Standard Surface to OpenPBR, or a lookdev turntable with chrome and gray balls. Also when textures render washed out, too dark or plastic in Arnold.
Its SKILL.md is about 5k 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.
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 Maya Lookdev loads about 5k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 125 tokens; SKILL.md has 2,074 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,074 words, ~4,976 tokens.
.claude/skills/scenario-maya-lookdev/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Expert look dev is a material that holds under any light a lighter throws at it: correct data in (every map in the right color space through the right plug), physically meaningful base values (measured metal colors, glass tinted by depth, scattering at real scale), then deliberate imperfection, judged on a neutral turntable with reference balls, one change per render. Nothing is done before a render has been looked at. 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-maya-expert (execution channel, review loop, 2027 version traps).
Status (2026-09-24): scripts/mx_shade.py is not yet run in Maya: 122 offline checks passed; the Maya layer ran against a fake maya.cmds (logic only). Once Maya is installed: tests/code/maya-lookdev/run_all.sh, then fix the attribute tables from probe_lookdev.json.
| Input | Changes | Default when silent |
|---|---|---|
| Target | Arnold stills or sequence vs a game engine (shade for export, judge in the engine) | Arnold |
| Shader model | OpenPBR for new assets (default since 2026, MaterialX and USD); aiStandardSurface when the scene, a Painter "Arnold (AiStandard)" export or the pipeline uses it | OpenPBR |
| Hero or background | per-material shaders, displacement, breakup vs one textured shader (Raycast [vPHhVrxxThU 00:11:20]) | hero if it fills the frame |
| Texture source | Painter preset, normal convention, UDIMs, bit depth, displacement zero and scale, whether AO is meant to be used | OpenGL normals, AO unused |
| Rendering space | mx_shade.cm_info(); converts typed colors | ACEScg, Maya-default config |
| Scale | SSS, transmission, displacement, noise scales | real size in cm |
| Look reference | photos per material; HDRI: neutral studio, the sequence's graded HDRI for plates (Raycast [vPHhVrxxThU 00:01:58]), Painter's for a transfer | procedural studio HDR [added] |
| Camera | 85 mm portrait lens (J Hill [mpk6IurOWbs 00:05:10]); longer for products [added] | 85 mm, 24 + 24 frames |
All stages run headless through scenario-maya-expert's mx_run.py --plugins mtoa; import mx_shade as sh. Arnold RenderView is GUI only: iterate with batch renders you open.
mx_validate.validate(profile="model"), mx_audit.audit(mesh) for UVs (every face mapped, clean UDIM tiles), real-world size from the bounding box, closed outward meshes for SSS and transmission (Arnold docs). GATE: validate clean, UVs complete, size matches the reference.ld = sh.lookdev_scene(["asset_GRP"], hdri=path, frames=24): turntable locators, skydome at HDRI width (cap 4096), HDRI tagged linear Rec.709, camera with the reference strip hidden from secondary rays. GATE: frame 1: chrome ball shows the HDRI the right way round, gray ball neutral, close to the chart's neutral 5 patch.<asset>_<part>_MTL / _SG, assigned by a name table so remodels keep shaders (Arvid [cpMBRIWwghg 00:01:37]). GATE: every mesh off the default shading group.ts = sh.parse_texture_set(folder); sh.build_material(ts, "case", meshes=[...], texture_set="watch_case"). Options: normal_mode aiNormalMap (default), bump2d, hybrid; tangent_space="mikk" on 2027.1+ for Painter bakes, A/B it on a bevel [verify]; ao="multiply" only to match a Painter or real-time look. Pre-bake .tx (TX Manager or maketx) for heavy assets and batches; file nodes stay on the source images and spaces (Raycast [vPHhVrxxThU 00:13:04]). GATE: sh.verdict(sh.lint_scene())["pass"]; a render under Painter's HDRI and focal length matches a Painter screenshot.saved = sh.isolate_lobes(shader, keep=("base",)), render, add specular, coat and the rest; sh.apply_preset(shader, "steel_polished") for table materials. GATE: per-material crop at final samples; highlight size and edge tint against the photo.sh.add_displacement(sg, "disp.exr", meshes, scale=s, zero=0.0, iterations=2) (3 to 4 for finals). GATE: polygon budget printed, no clipped black patches, A/B crop normal vs displacement.sh.roughness_breakup(shader, lo, hi), sh.smudge_roughness(shader) (scan or cell noise, added on top), sh.noise_bump(shader, height, scale), sh.coat_waviness(paint); per-object masks (dial, indices, case parts) as mtoa_constant_ user data, no extra textures: sh.user_mask(shapes, "mask") (Arvid [cpMBRIWwghg 00:23:04]). GATE: on the turntable, highlights break and travel across panels, never wobble.sh.skin(...), glass presets plus sh.set_transmission_depth, sh.car_paint(...), sh.hair_shader(...); checks in references/critique.md. Transmissive media that touch or overlap (crystal on a gasket, liquid in glass) get a Dielectric Priority: higher wins, glass 3, inclusions 2, liquid 1 (OPBR § Dielectric Priority). GATE: lint dielectric_priority clean.sh.render_frames([1, 7, 13, 19, 25, 31, 37, 43], out) writes PNGs and a sheet; judge with the critique; sh.handoff_report(path), new saved version. GATE: lint passes, sheet reviewed, not-verified list written.| Item | Value | Relative to, source |
|---|---|---|
| Steel F0 / F82 | 0.669 0.639 0.598 / 0.789 0.823 0.870 | linear sRGB, Arnold OpenPBR table (12 metals in METALS_OPENPBR) |
| Skin | subsurface 1, radius scale (1, 0.35, 0.2), IOR 1.4, radius 1 mm | J Hill [mpk6IurOWbs 00:17:25]; doc example 3.7 mm is deeper |
| Skin oil | coat roughness about 0.1, mask from inverted roughness | J Hill [mpk6IurOWbs 00:32:49] |
| Pore chatter | alligator cell noise, amplitude 0.003 to 0.004 in displacement | J Hill [mpk6IurOWbs 00:34:48] |
| Subdivision | catclark, 2 while working, 3 to 4 final; each level x4 polygons | J Hill; Arnold subdivision doc |
| Displacement zero | 0 for float bakes, 0.5 for mid-gray maps | J Hill [mpk6IurOWbs 00:26:59] |
| Glass | IOR 1.5, roughness 0, light tint, depth near object size | Arvid [cpMBRIWwghg 00:17:40]; [added] depth start |
| Dispersion | off on flat, parallel-faced crystal (no visible fringe) [added optics]; small scale with the material's Abbe on faceted gems or close bevels | OPBR "gems only"; digest P9 |
| Rubber | linear base 0.01 to 0.04, roughness 0.2 to 0.4 via smoothstep range | Arvid [cpMBRIWwghg 00:06:25, 00:10:47] |
| Leather | alligator cell noise bump, scale 400 to 500, very subtle, roughness about 0.2 | Arvid [cpMBRIWwghg 00:04:33] |
| Brushed metal | roughness about 0.15, anisotropy up, specular samples 3, rotation map mip bias -8, smooth tangents + 1 iteration | Arvid [cpMBRIWwghg 00:15:43]; SS doc |
| Car paint | flakes 0.001 to 0.025 scale, flake roughness 0.2, coat 1, coat-normal noise at 3, 25, 80, 200 mixed about 0.01 | Arvid [cpMBRIWwghg 00:39:01 to 00:47:46] |
| Thin film | Standard Surface 0 to 2000 nm; OpenPBR micrometers, colors fade above 1 | Arvid [cpMBRIWwghg 00:31:47]; [tEUiIBApw-U 00:12:35] |
| Hair | melanin 0.2 blonde, 0.5 brown or red, 1 black; roughness 0.2; IOR 1.55; shift 0 to 10; diffuse 0; tints white | Arnold Standard Hair doc |
| Skydome resolution | HDRI width (default 1000) | Arnold lights doc |
sh.verdict(sh.lint_scene())["pass"] (zero errors). The lint covers the texture contract (spaces, plugs, UDIM, normal routes, missing files, .tx), physical plausibility (weights, F82, glass tint and depth, dielectric priority, thin film, opacity, anisotropy, smudges), subdivision and displacement, and hygiene. Rules: references/critique.md.references/critique.md: breakup visible and moving, metal edge tint, glass tint deepening with thickness, ear backlight and a non-waxy nose; fireflies that survive more samples are data (Raycast [vPHhVrxxThU 00:33:43]).| Mistake | Looks like | Fix |
|---|---|---|
| Roughness or metal map in sRGB | glossy-plastic or dull metal | Raw + Ignore Color Space File Rules |
| Grayscale via outAlpha, Alpha Is Luminance off | map has no effect | outColorR, or Alpha Is Luminance on |
| Base color .tx or EXR left on the Raw rule | washed-out or oversaturated color | sRGB (8/16-bit source) or linear Rec.709 |
| HDRI on Raw under ACEScg | over-saturated lighting and reflections | linear Rec.709 input space |
| Normal into a plain bump or straight into the shader | lumpy or flat normals | aiNormalMap, or bump2d Tangent Space Normals |
| DirectX normal read as OpenGL | relief inverted on one axis (dents read as bumps) | invertY on aiNormalMap (flip G on bump2d) |
| Smooth Mesh Preview plus Arnold iterations | render time explodes | displaySmoothMesh 0 |
| Displacement zero value wrong | object inflated or shrunk | 0.5 mid-gray maps, 0 float bakes |
| No bounds padding | black holes in the displaced render | padding from the maximum displacement |
| Saturated transmission color | black, ink-like glass | light tint, lower depth |
| Overlapping glass or liquid at the same priority (0) | wrong refraction in the overlap | Dielectric Priority, higher wins |
| Anisotropy at roughness 0 or faceted | brushing invisible or stepped | roughness > 0, smooth tangents, 1 iteration |
| Car-paint waviness on the base normal | coat reflections stay perfectly straight | coat normal only (Arvid [cpMBRIWwghg 00:43:25]) |
| Layer shader created, displacement left on the old SG | displacement disappears | reconnect to the new SG (J Hill [mpk6IurOWbs 00:49:07]) |
validate(profile="model"), UVs complete (0-1 or clean UDIMs), texel density stated, bakes named by channel with normal convention and tangent basis, displacement EXR with its zero value and scale. From Substance Painter: textures, preset name, normal format, UDIM flag, the HDRI Painter displayed. From scenario-maya-groom: descriptions to shade with aiStandardHair.<asset>_lookdev_v###.ma (never over the source) with named materials and shading groups; handoff_report() JSON (materials, textures, color spaces, .tx status, displacement, a passing verdict); the turntable sheet; sampling notes (SSS, transmission depth, anisotropy, flakes to protect from the denoiser); the not-verified list. Lighting owns render settings, AOVs, light rigs and denoising.sh.port_standard_to_openpbr): thin film nm to micrometers, emission weight 1 to 1000 nits, SSS radius and scale roles swapped, sheen to fuzz, dispersion needs scale above 0, metal colors re-picked from the F82 table. "Convert All Standard Surface to OpenPBR Surface" skips shaders inside networks (MTOA-2560): lint after.sRGB Encoded Rec.709 (sRGB) since 2026.2, linear sRGB spelled two ways, "Utility - Raw" is ACES 1.x naming: always sh.space_name(role). Regenerate .tx after changing the rendering space (Brejon).normal_map.tangent_space_type mikk (MtoA 5.6.1.1, Maya 2027.1); interior_set replaces sss_setname; OpenPBR thin film energy change in 5.6.0 can shift hue on old assets; Standard Hair scattering_mode (5.6.0).references/expert-notes.md: depth per expert with timestamps, disagreements and deciders. Load when a material or decision is not covered above.references/procedures.md: test-backed procedures, hookup to handoff. Load before writing shading code.references/critique.md: the rubric for a turntable, a crop or a lint report. Load at every gate.references/gui-paths.md: Hypershade, Attribute Editor, Arnold and Painter paths for a computer-use agent or a human.references/sources.md: sources, credentials, URLs, timestamps.scripts/mx_shade.py: the toolkit (docstring lists every call).© 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/maya/scenario-maya-lookdev of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Maya Lookdev 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 Maya Lookdev this skillscenario-labs/skills | 946 | — | ~5k | 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.1k | — | ~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 shading an asset in Maya with Arnold: OpenPBR or aiStandardSurface materials, hooking up Substance Painter or UDIM texture sets, color spaces (sRGB, Raw, ACEScg), a…. Scenario Maya Lookdev is an agent skill from scenario-labs/skills. Use when shading an asset in Maya with Arnold: OpenPBR or aiStandardSurface materials, hooking up Substance Painter or UDIM texture sets, color spaces (sRGB, Raw, ACEScg), a normal map that looks wrong, displacement with black holes or faceting, skin SSS, chrome and metals, glass or crystal, car paint, aiStandardHair, porting Standard Surface to OpenPBR, or a lookdev turntable with chrome and gray balls.
Scenario Maya Lookdev fits situations like: shading an asset in Maya with Arnold: OpenPBR; aiStandardSurface materials; hooking up Substance Painter; UDIM texture sets.
Run `npx skills add scenario-labs/skills --skill scenario-maya-lookdev -a claude-code`. Or copy the skill folder (skills/dcc/maya/scenario-maya-lookdev in scenario-labs/skills) into .claude/skills/scenario-maya-lookdev in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-maya-lookdev -a codex`. Or copy the skill folder (skills/dcc/maya/scenario-maya-lookdev in scenario-labs/skills) into .agents/skills/scenario-maya-lookdev 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-maya-lookdev -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-maya-lookdev, .gemini/skills/scenario-maya-lookdev, .github/skills/scenario-maya-lookdev and .opencode/skills/scenario-maya-lookdev in your project.
Going by SKILL.md and its folder, Scenario Maya Lookdev 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 Maya Lookdev is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5k tokens (SKILL.md is roughly 20k 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 22k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Maya Lookdev: Game Asset Generator (htdt/godogen, 7.1k stars), Threejs 3D Generator (valkor-ai/loom, 1.2k stars), Asset Pipeline (rehan-remade/universal-modder, 6.1k 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.