Repair a mesh so it can be textured and shipped
normalize_meshRepairs 3D meshes for game use by generating missing UVs, welding duplicate vertices, cleaning geometry, naming materials, and exporting a standardized GLB.
Instructions
FREE and fully local: no network call, no credits. Requires a local Blender install (optional dependency; the tool refuses with instructions if absent). Repairs a mesh for downstream use: generates UV coordinates for objects that have NONE — the single most common reason a mesh cannot be textured — welds coincident vertices, dissolves degenerate triangles, gives every material a stable non-empty name, forces opaque blending, and optionally decimates to a triangle budget. Existing UV layouts are never overwritten. Exports GLB and returns a receipt with before/after counts so the change is measurable.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| modelPath | No | Absolute path to a local mesh (.glb/.gltf/.obj/.fbx/.stl). | |
| overwrite | No | Allow an explicit outputPath to replace an existing file. Off by default: a silent overwrite destroys a result you may already have reviewed. Never permits writing over the input mesh. | |
| assetJobId | No | A downloaded job whose model should be normalized. | |
| outputPath | No | Where to write the GLB. Must end in .glb, or have no extension (in which case .glb is appended) — the exporter rewrites the extension, so a .gltf path would silently become .glb and could land on a different file. Refused if it resolves onto the input mesh, by filesystem identity, so symlinks, hardlinks and case-insensitive volumes all count. Use an ABSOLUTE path: a relative one resolves against the SERVER's working directory, which your MCP client chose, and a leading ~ is not expanded. Naming an existing directory writes a sibling file beside it, not inside it. Defaults to <input>_normalized.glb beside the source. | |
| islandMargin | No | UV island padding. | |
| cleanGeometry | No | Weld coincident vertices, dissolve degenerate faces, make normals consistent. | |
| mergeDistance | No | Weld threshold in scene units. Larger values will change the silhouette. | |
| timeoutSeconds | No | ||
| targetTriangles | No | Decimate down to roughly this many triangles. Omit to leave density alone. | |
| unwrapMissingUVs | No | Generate UVs for objects that have none. Never touches an existing layout. | |
| angleLimitDegrees | No | Smart-project angle limit. | |
| normalizeMaterials | No | Name every material slot and force opaque blending. |