
Substance 3d Texturing
Export Substance 3D Painter texture sets with PBR channel presets aligned to BabylonJS loaders for web 3D.
Overview
substance-3d-texturing is an agent skill for the Build phase that configures Substance 3D Painter export presets so PBR albedo and normal maps match BabylonJS expectations.
Install
npx skills add https://github.com/freshtechbro/claudedesignskills --skill substance-3d-texturingWhat is this skill?
- Defines a BabylonJS_PBR export preset mapping Substance document maps to engine-ready files
- Wires baseColor RGB channels into a single albedo PNG export
- Exports normal maps with per-channel R/G/B routing from the document normal map
- Specifies PNG 8-bit output with configurable resolution via sizeLog2 parameters
- Uses texture-set-based file naming (`$textureSet_albedo`, `$textureSet_normal`) for batch consistency
- BabylonJS_PBR preset with separate albedo and normal PNG exports
- Per-channel R/G/B routing from Substance document maps
Adoption & trust: 705 installs on skills.sh; 227 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Substance exports do not line up with BabylonJS PBR texture slots and naming, so materials look wrong after import.
Who is it for?
Builders who paint in Substance 3D and ship assets into BabylonJS or similar web PBR pipelines.
Skip if: Purely procedural Blender-only texturing or teams with no Substance Painter in the toolchain.
When should I use this skill?
Use when exporting Substance Painter texture sets for BabylonJS or web PBR materials.
What do I get? / Deliverables
Repeatable PNG albedo and normal exports per texture set are produced with channel routing defined for BabylonJS_PBR loading.
- PNG albedo map per texture set
- PNG normal map per texture set with defined channel layout
Recommended Skills
Journey fit
Authoring and exporting surface textures is build-time asset work that feeds 3D front-end runtimes. Frontend is the shelf for PBR map pipelines that land in WebGL engines, even when painted in Substance.
How it compares
Substance export-preset integration for web PBR—not a substitute for UV layout or in-engine material graphs.
Common Questions / FAQ
Who is substance-3d-texturing for?
Solo and indie builders using Substance 3D Painter who need dependable PBR map exports for BabylonJS or web 3D front ends.
When should I use substance-3d-texturing?
Use it during Build frontend 3D work when finalizing texture sets and defining export presets before dropping maps into a BabylonJS or WebGL material pipeline.
Is substance-3d-texturing safe to install?
The skill describes local Substance export configuration; review the Security Audits panel on this Prism page and treat any bundled JSON presets as you would other third-party config in your design toolchain.
SKILL.md
READMESKILL.md - Substance 3d Texturing
{ "exportPresets": [ { "name": "BabylonJS_PBR", "maps": [ { "fileName": "$textureSet_albedo", "channels": [ { "destChannel": "R", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "baseColor" }, { "destChannel": "G", "srcChannel": "G", "srcMapType": "documentMap", "srcMapName": "baseColor" }, { "destChannel": "B", "srcChannel": "B", "srcMapType": "documentMap", "srcMapName": "baseColor" } ], "parameters": { "fileFormat": "png", "bitDepth": "8", "sizeLog2": 10 } }, { "fileName": "$textureSet_normal", "channels": [ { "destChannel": "R", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "normal" }, { "destChannel": "G", "srcChannel": "G", "srcMapType": "documentMap", "srcMapName": "normal" }, { "destChannel": "B", "srcChannel": "B", "srcMapType": "documentMap", "srcMapName": "normal" } ], "parameters": { "fileFormat": "png", "bitDepth": "8", "sizeLog2": 10 } }, { "fileName": "$textureSet_metallicRoughness", "channels": [ { "destChannel": "G", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "roughness" }, { "destChannel": "B", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "metallic" } ], "parameters": { "fileFormat": "png", "bitDepth": "8", "sizeLog2": 10 } } ] } ] } { "exportPresets": [ { "name": "glTF_Standard", "maps": [ { "fileName": "$textureSet_baseColor", "channels": [ { "destChannel": "R", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "baseColor" }, { "destChannel": "G", "srcChannel": "G", "srcMapType": "documentMap", "srcMapName": "baseColor" }, { "destChannel": "B", "srcChannel": "B", "srcMapType": "documentMap", "srcMapName": "baseColor" } ], "parameters": { "fileFormat": "png", "bitDepth": "8", "sizeLog2": 10 } }, { "fileName": "$textureSet_normal", "channels": [ { "destChannel": "R", "srcChannel": "R", "srcMapType": "documentMap", "srcMapName": "normal" }, { "destChannel": "G", "srcChannel": "G", "srcMapType": "documentMap", "srcMapName": "normal" }, { "destChannel": "B", "srcChannel": "B", "srcMapType": "documentMap", "srcMapName": "normal" } ], "parameters": { "fileFormat": "png", "bitDepth": "8", "sizeLog2": 10 } }, { "fileName": "$textureSet_metallicRoughness", "channels": [ { "destChannel": "G", "srcChannel": "R", "sr