mdl-voxelize

Convert UrhoX UMD2 .mdl models and diffuse textures into TapMaker voxel JSON assets.

Updated Jul 15, 2026
One-click install
npx skills add https://github.com/skyoxu/taptapmarker --skill mdl-voxelize-skyoxu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: mdl-voxelize
Source: https://github.com/skyoxu/taptapmarker/tree/main/.cursor/skills/mdl-voxelize
Command: npx skills add https://github.com/skyoxu/taptapmarker --skill mdl-voxelize-skyoxu

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires Pillow, and includes scripts (resource) and references (resource) components.

What problem does it solve? Converting UrhoX/TapMaker runtime 3D models (.mdl in UMD2 format) into voxel data that TapMaker Lua code can render requires parsing binary mesh formats, sampling textures, and enforcing strict production voxel size rules. This Skill automates that entire pipeline and outputs validated voxel JSON. ## Core Features & Use Cases - MDL to Voxel Conversion: Parses UMD2 .mdl binary files, rasterizes triangle surfaces, samples diffuse textures per geometry, and writes colored voxel JSON with palette, origin, and metadata. - Production Launcher with Quality Gates: The run_voxelize launcher enforces 0.5m grid units, hybrid 1m block merging, raster surface mode, and dependency checks before conversion. - UUID-Based Asset Resolution: Resolve prefab or model UUIDs through local .meta files to locate .mdl, material, and texture assets automatically. - Use Case: A user provides a Tripo-generated model path and its diffuse texture, then receives a production-ready assets/voxels/model_voxel.json file that TapMaker's VoxelSceneLoader.lua can render directly. ## Quick Start Ask the AI to voxelize your model, for example: convert assets/Meshes/model.mdl with texture assets/Textures/model_diffuse.png into a TapMaker voxel JSON using the mdl-voxelize skill.

Frequently Asked Questions about mdl-voxelize

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

FAQPage Schema
How do I convert a .mdl model to voxel JSON for TapMaker?▼

Run the run_voxelize.sh launcher from your TapMaker project root, passing --mdl with the model path and --texture with one or more diffuse textures. The launcher checks dependencies, applies production parameters, and writes the voxel JSON to assets/voxels by default.

What file formats does the MDL voxelizer support?▼

The converter only supports UrhoX runtime model files in UMD2 binary format, verified by the file magic header. Diffuse textures are sampled through Pillow, so common image formats like PNG and JPG work as texture inputs.

Can I voxelize a model using a prefab or model UUID instead of a file path?▼

Yes, pass --prefab-uuid or --model-uuid along with --asset-root pointing to your assets directory. The tool resolves UUIDs through local .meta files, follows prefab chains, and locates the referenced .mdl, materials, and diffuse textures.

What Python dependencies does the voxelizer need?▼

The scripts require Python 3.10 or newer and Pillow 10.0.0 or newer, listed in requirements.txt. The check_env script verifies the selected interpreter and installs missing packages via pip without creating a virtual environment.

Why does voxelization fail with a quality gate or voxel size error?▼

Production output only allows 0.5m base voxels and 1m merged blocks, enforced by the launcher and verify_voxel_json.py. Failures usually mean the grid bounds are too small for the source mesh or a diagnostic custom voxel size was used; regenerate through the launcher.