Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dcc-mcp/dcc-mcp-substance3d-painter --skill painter-lightinggit clone --depth 1 https://github.com/dcc-mcp/dcc-mcp-substance3d-painterWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dcc-mcp/dcc-mcp-substance3d-painter/painter-lighting)<a href="https://agentmods.dev/skills/dcc-mcp/dcc-mcp-substance3d-painter/painter-lighting"><img src="https://agentmods.dev/badge/skills/dcc-mcp/dcc-mcp-substance3d-painter/painter-lighting/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dcc-mcp/dcc-mcp-substance3d-painter/painter-lighting"><img src="https://agentmods.dev/badge/skills/dcc-mcp/dcc-mcp-substance3d-painter/painter-lighting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.00599 |
| Opus 5.5 | $0.00026 | $0.00240 |
| Sonnet 5.5 | $0.00013 | $0.00120 |
| Haiku 4.5 | $0.00006 | $0.00060 |
Grade A, and why
painter-lighting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Painter lighting
Substance 3D Painter has no light objects, no shadow-casting rig, and no per-light controls. All scene illumination comes from a single image-based environment, so this skill maps the lighting domain onto Painter's real environment primitives:
| Lighting concept | Painter native equivalent |
|---|---|
| HDRI / IBL | environment map resource |
| Light intensity | environment exposure |
| Light direction / key angle | environment rotation |
| Backplate | background texture resource |
Call inspect_environment first. It reports both the current values and which
environment capabilities the running Painter build actually exposes, so you can
see what is controllable before attempting a mutation.
Painter's environment module is spelled with the French environnement, and the
individual accessor names have differed between releases. Every tool here probes
a bounded set of known spellings and never guesses: if a capability is absent,
the tool fails with environment_capability_unsupported and names what it
looked for, rather than silently doing nothing.
A malformed resource URL is a different failure and is reported as
invalid_resource_url; it is a caller input error, not a host capability gap.
Read capabilities from inspect_environment to see whether the running
Painter build supports a given operation before attempting it. readable means
the host exposes a getter, not that the current value is populated, so an unset
background texture is still reported as readable.
Exposure is a scalar in stops and rotation is expressed in turns on the interval
0.0 to 1.0. Environment and background maps are addressed by Painter
resource URL; import an .hdr or .exr file with
painter_project__import_resource using the environment usage and pass the
URL it returns. Every mutation is confirmed by reading the value back from
Painter before reporting success.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 59 lines · 65 tokens per session scan A a64b7602cc55
painter-lighting is a skill published in the GitHub repository dcc-mcp/dcc-mcp-substance3d-painter (0 stars, last pushed yesterday), licensed MIT. It adds 65 tokens to every session and 599 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-20.
Other skills, from other repositories
designer-session
Host skill - inspect, author, save, and export a Substance 3D Designer graph. Use when an Agent needs bounded node, connection, parameter, gradient, output, package, resource, map, or SBSAR operations instead of arbitrary Python execution.
designer-offline
Offline artifact skill - cook hash-pinned SBS sources and render compiled SBSAR maps and bake pinned UV0 mesh positions and FBX colour IDs with installed official Substance tools without a Designer GUI.
designer-effects
Host skill - apply discoverable procedural effect recipes (blur, warp, levels, sharpen, edge detect, blend, mask) to a Substance 3D Designer graph. Use when an Agent needs bounded effect-chain authoring instead of arbitrary node surgery.
designer-animation
Host animation skill - discover time-like Designer inputs and bake ordered frames by sweeping one of them across a bounded range.
designer-dynamics
Host dynamics skill - sweep an integer iteration-count parameter in a Substance 3D Designer graph and bake each pass as a separate verified texture.
designer-lighting
Host skill - bake lighting-response maps (normal, ambient occlusion, curvature, thickness, emissive) from a height or mask source in Substance 3D Designer.