substance-3d-texturing

Automates PBR texture creation and web-optimized export from Substance 3D Painter.

Updated Jun 30, 2026
One-click install
npx skills add https://github.com/ayofemiade/cleva --skill substance-3d-texturing-ayofemiade
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: substance-3d-texturing
Source: https://github.com/ayofemiade/cleva/tree/main/.claude/skills/substance-3d-texturing
Command: npx skills add https://github.com/ayofemiade/cleva --skill substance-3d-texturing-ayofemiade

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? Exporting PBR textures from Substance 3D Painter for web and game engines involves repetitive manual configuration, channel packing decisions, and resolution tuning that is error-prone and slow when done by hand across many texture sets. ## Core Features & Use Cases - Web-Optimized Texture Export: Export baseColor, normal, metallicRoughness, and ORM-packed textures in glTF 2.0-compliant formats for Three.js, Babylon.js, and React Three Fiber. - Python API Automation: Batch export all texture sets, override resolution per asset, and auto-export on project save using the substance_painter Python API. - Custom Export Presets: Generate JSON presets for glTF, Three.js, Babylon.js, ORM packing, and mobile WebGL with the included preset generator script. - Use Case: You have a Substance project with five texture sets destined for a Three.js product configurator. Run the batch export script to produce 1024×1024 PNG textures with infinite padding, then load them into a MeshStandardMaterial with correct sRGB color space. ## Quick Start Ask the AI to export all texture sets from the open Substance Painter project as web-optimized 1024×1024 textures for Three.js.

Frequently Asked Questions about substance-3d-texturing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I export textures from Substance 3D Painter for Three.js?▼

Use the built-in PBR Metallic Roughness preset via File → Export Textures, or run the batch_export.py script inside Substance's Python console. This produces baseColor, normal, and packed metallicRoughness PNGs that map directly to MeshStandardMaterial properties.

What texture resolution should I use for web 3D assets?▼

Start at 1024×1024 for standard web assets, use 512×512 for mobile or background props, and reserve 2048×2048 for hero assets viewed close-up. Desktop WebGL budgets roughly 100-150MB total texture memory, while mobile targets 30-50MB.

Does Substance Painter export work with glTF and GLB files?▼

Yes, the PBR Metallic Roughness preset matches the glTF 2.0 specification with Green=Roughness and Blue=Metallic packing and OpenGL-format normal maps. Export textures from Substance, then reference them in your glTF JSON or compress the final model with gltf-pipeline.

Why do my exported textures show seams at UV borders?▼

Seams appear when the padding algorithm is not set correctly during export. Set paddingAlgorithm to "infinite" in the export parameters to dilate texture colors beyond UV islands and eliminate black or colored edge lines.

How do I reduce texture file size for mobile WebGL?▼

Export baseColor as JPEG at 512×512, keep normal and data maps as PNG, and pack AO, roughness, and metallic into a single ORM texture. This reduces a typical asset from about 16MB to roughly 3MB of texture data.

Why does my normal map look inverted in the engine?▼

Substance exports OpenGL-format normal maps (Y+), which match glTF, Three.js, and Babylon.js. DirectX engines like Unity and Unreal expect Y-flipped normals, so invert the green channel in the export preset or enable the engine's normal flip setting.