
blockbench-substance
Optional, advanced pipeline between Blockbench and Adobe Substance 3D (Designer, Painter and the Substance Automation Toolkit command lines). Use only when the user has Substance installed and asks for it — render .sbsar procedural materials to Blockbench-sized PBR maps with sbsrender, cook .sbs graphs with sbscooker, bake AO/curvature/normal/position/ID maps from a Blockbench export with substance3dbaker, drive Substance 3D Painter over its remote-scripting HTTP API to paint a Blockbench model and export Bedrock MER or glTF maps, and pack results into textureset.json. Triggers on Substance, Substance 3D, Substance Designer, Substance Painter, SAT, Substance Automation Toolkit, sbsar, .sbs, sbsrender, sbscooker, sbsmutator, sbsupdater, sbsbaker, substance3dbaker, pysbs, bake AO for Blockbench, Painter export to Blockbench. Not needed for ordinary painting, generated textures or derived normal maps.
- Installs
- 135
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jasonjgardner/blockbench-mcp-project --skill blockbench-substance- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads blockbench-substance automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Blockbench + Adobe Substance 3D
Optional and advanced. Most Blockbench work never needs this: paint with blockbench-texturing, generate with blockbench-gpt-image-textures, derive normal/MER with blockbench-albedo-to-pbr. Use this skill only when the user asks for Substance or already has .sbsar/.sbs/Painter assets. It needs a licensed Adobe Substance 3D install. Load blockbench-use first and blockbench-pbr-materials to assign results.
Substance produces image files. Blockbench stays the source of geometry and UVs. Every path ends with files imported through create_texture (data, pbr_channel) or import_texture_set.
0. Locate the tools
python scripts/sat_locate.py
Designer bundles sbsrender, sbscooker, sbsupdater and substance3d_baker, off PATH, in C:\Program Files\Adobe\Adobe Substance 3D Designer\. sbsmutator and the pysbs Python API come only with the standalone Substance Automation Toolkit. Painter is a GUI app driven over HTTP. If nothing is found, stop and tell the user; do not install Adobe software.
Pick the path
| Goal | Tool | Reference |
|---|---|---|
| Procedural material (bricks, rust, leaves) as Blockbench textures | sat_render.py → sbsrender | sat-cli.md |
Have a .sbs graph, need an .sbsar | sbscooker (sbsupdater first if old) | sat-cli.md |
Edit/specialise a .sbs headlessly | sbsmutator (SAT only) | sat-cli.md |
| AO / curvature / ID / position masks from the model | substance3d_baker | baker.md |
| Hand-paint the model with smart materials | Painter + painter_remote.py | painter.md |
| Pack Bedrock MER, convert bit depth, flip normal green, shrink | prep_maps.py | below |
Workflow A: procedural material → Blockbench
python scripts/sat_render.py material.sbsar --out out --size 16 --seed 7 \
--set Season=0.8 --normal-format directx
--sizeis pixels; the script converts to log2$outputsize(rawsbsrenderneeds'$outputsize@4,4'for 16 px). It creates--out; rawsbsrenderexits 47 if the folder is missing.- Read
inputsfrom the JSON report, then set parameters by identifier. Unknown identifiers come back aswarnings, becausesbsrenderignores them silently. - Match outputs to channels by
usages:baseColor/diffuse→ color;normal;height;metallic+roughness(orglossiness, inverted) +emissive→ MER. - Output is 8-bit by default. Tiling block textures render straight at 16/32 px. For atlases, render at the atlas size or larger and shrink.
Workflow B: bake masks from the Blockbench model
- Fix UVs: every face needs its own UV rectangle. Default per-face Auto UV on block formats stacks faces on top of each other and ruins the bake. See baker.md § Prepare.
export_model→codec_id: "gltf",options: {"encoding": "binary"},path: <abs>.glb(orobj).- Bake at 8–16× density with underscore flags (the online docs show hyphens, which fail):
substance3d_baker AmbientOcclusion.Raytraced model.glb --use_lowdef_as_highdef true --output_size 512,512 --output_path bake python scripts/prep_maps.py convert bake/*.png --out bake/64 --size 64(16-bit → 8-bit, box downsample).- Use the maps as masks: multiply AO into the colour texture, or feed them to
sbsrender --set-entry/ Painter.
Workflow C: paint in Painter, bring maps back
- Fix UVs, then
export_modelwithcodec_id: "obj". Painter cannot import glTF. - Start Painter with
--enable-remote-scripting(never--help: it opens the app), then:python scripts/painter_remote.py --ping --wait 240 python scripts/painter_remote.py --python-file scripts/painter_new_project.py --result \ --set MESH=C:/work/model.obj --set NORMAL=DirectX --set RESOLUTION=1024 --set BAKE=1 - The user paints in Painter (or you script layers after reading the local API docs).
- Export and shrink:
python scripts/painter_remote.py --python-file scripts/painter_bedrock_export.py --result \ --set OUT=C:/work/painter_out --set NAME=model --set PRESET=bedrock --set SIZE_LOG2=9 python scripts/prep_maps.py convert C:/work/painter_out/model*.png --out final --size 64bedrockgivesNAME.png,NAME_mer.png,NAME_normal.png(DirectX).gltfgives ORM + OpenGL normal. Painter never exports below 128 px, and skips maps whose channel is absent. Trust thefileslist in the result.
Pack and import
python scripts/prep_maps.py pack-mer --metallic out/m_metallic.png --emissive 0 --roughness out/m_roughness.png --out final/model_mer.png
python scripts/prep_maps.py texture-set --color model --mer model_mer --normal model_normal --out final/model.texture_set.json
Constants are 0–255; --glossiness replaces --roughness and is inverted. Then import_texture_set with the JSON path, or create_texture per file (pbr_channel: color/normal/height/mer) + create_pbr_material. Normal or height, never both.
Conventions and verification
- Normals: Bedrock → DirectX (green-down), glTF/Java labPBR → OpenGL. Baker default is
directx. A graph's$normalformatis graph-defined (one tested graph flipped red, not green), so compare renders or useprep_maps.py convert --flip-green. After import, raised features must read as raised in the Blockbench preview. - 16-bit trap: AO/curvature/height PNGs are often 16-bit;
PIL.Image.convert("L")clips them to white. Useprep_maps.py convertor--output-bit-depth 8. - Paths: pass
C:/...paths to the executables;/c/...from Git Bash breaks--alias. Quote'$outputsize@...'. - Blockbench project safety: note the project UUID before export and import, and confirm it before writing textures back.
- Check each imported map with
list_textures/get_textureand acapture_screenshot. A blank-white or uniformly gray map means the bit depth, UV overlap or parameter was wrong. It is not a stylistic result.
FAQ
What does the blockbench-substance skill do?
Optional, advanced pipeline between Blockbench and Adobe Substance 3D (Designer, Painter and the Substance Automation Toolkit command lines). Use only when the user has Substance installed and asks for it — render .sbsar procedural materials to Blockbench-sized PBR maps with sbsrender, cook .sbs graphs with sbscooker, bake AO/curvature/normal/position/ID maps from a Blockbench export with substance3dbaker, drive Substance 3D Painter over its remote-scripting HTTP API to paint a Blockbench model and export Bedrock MER or glTF maps, and pack results into textureset.json. Triggers on Substance, Substance 3D, Substance Designer, Substance Painter, SAT, Substance Automation Toolkit, sbsar, .sbs, sbsrender, sbscooker, sbsmutator, sbsupdater, sbsbaker, substance3dbaker, pysbs, bake AO for Blockbench, Painter export to Blockbench. Not needed for ordinary painting, generated textures or derived normal maps.
How do I install blockbench-substance?
Run npx skills add https://github.com/jasonjgardner/blockbench-mcp-project --skill blockbench-substance in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/blockbench-substance/ (personal) or .claude/skills/blockbench-substance/ (project).
Which AI agents can use blockbench-substance?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is blockbench-substance safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains blockbench-substance?
It is published by jasonjgardner in jasonjgardner/blockbench-mcp-project. It has 135 recorded installs.
More from jasonjgardner/blockbench-mcp-project
blockbench-modeling
jasonjgardner/blockbench-mcp-project
Create and edit 3D models in Blockbench using MCP tools. Use when building geometry with cubes, creating meshes, placing spheres/cylinders, editing vertices, extruding faces, or organizing models with groups. Covers both cube-based Minecraft modeling and freeform mesh editing.
blockbench-texturing
jasonjgardner/blockbench-mcp-project
Create and paint textures in Blockbench using MCP tools. Use when creating textures, painting on models, using brush tools, filling colors, drawing shapes, applying gradients, managing texture layers, or working with UV mapping. Covers pixel art texturing, procedural painting, and UV manipulation.
blockbench-animation
jasonjgardner/blockbench-mcp-project
Create and manage animations in Blockbench using MCP tools. Use when animating 3D models, creating keyframes, managing bone rigs, editing animation curves, or working with animation timelines. Covers walk cycles, idle animations, combat animations, and complex multi-bone animations.
blockbench-mcp-overview
jasonjgardner/blockbench-mcp-project
Discover and use Blockbench MCP tools, resources, and prompts. Use for capability questions, new-project planning, mode navigation, export, display transforms, Bedrock face materials, or native armature workflows.
blockbench-use
jasonjgardner/blockbench-mcp-project
Load before Blockbench MCP calls that create, modify, or export content. Discover the active format and tools, route to modeling, UV/texturing, animation, particle, PBR, or Hytale guidance, and verify the requested result.
blockbench-pbr-materials
jasonjgardner/blockbench-mcp-project
Create and manage PBR materials in Blockbench using MCP tools. Use for Bedrock textureset.json import/export, normal or height maps, packed MER textures, material channel replacement, and uniform material properties.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image