Block grid language. Limited palette. Chunk-friendly forms.
When to Use
- Minecraft-adjacent / voxel game assets
- Blockout aesthetic as final style
- Grid-snapped props and characters
Core Tenets
- Grid snap — Occupancy on explicit voxel size (e.g. 0.1 / 1.0m)
- No diagonal organic bevels — Cubes and stepped forms
- Palette atlas — Few colors; readable blocks
- Silhouette via steps — Not smooth curves
- Chunk modularity — Pieces fit tile sizes
Workflow
Choose voxel size → Block occupancy → Merge cubes
→ Palette materials → Optional GN instance → Export
Modeling Tips
- Start from cubes; boolean union / merge by distance
- Characters: stepped limbs, clear head block
- Avoid subdivision surface (breaks voxel language)
- Remesh to blocks only if converting from smooth
Materials
- Flat colors or nearest-neighbor textures
- Atlas preferred
- Emission for glow blocks sparingly
Vs lowpoly-style
lowpoly-styleallows irregular low tris / PS1 vibesvoxel-styleenforces grid occupancy aesthetic
Constraints
MUST DO
- Declare voxel size in brief
- Snap consistently
- Keep palette small
MUST NOT DO
- Write code or snippets for Blender versions before 5.2, or add version fallbacks: this plugin targets 5.2+, and legacy branches teach users APIs that no longer exist
- Smooth shading that hides block edges (unless intentional glass)
- Organic sculpt detail
Scripts
Tested on Blender 5.2 LTS via the official Blender MCP. Run with execute_blender_code (or headless,
see the blender-mcp-workflow skill); read the script header for every argument.
When the user will paste code into Blender themselves, give them the short runpy call with the absolute
path of this installed script and their ARGS. Don't inline or rewrite the script: the tested file is the point.
| Script | What it does |
|---|---|
scripts/voxelize.py |
Voxelize meshes with the Remesh modifier in Blocks mode (non-destructive), flat shading, and an optional apply. Reports the resulting voxel count estimate. |
import runpy
result = runpy.run_path("<skill_dir>/scripts/voxelize.py", init_globals={"ARGS": {...}})["result"]
ARGS: objects, voxel_size, apply
Reference Guide
| Topic | Reference | Load When |
|---|---|---|
| Voxel Grid | references/voxel-grid.md |
When needed |
| Voxel Characters | references/voxel-characters.md |
When needed |