Skip to content

MCIR · Mesh Condition Inspection Report

One foot drawn as 46 stacked slices, 5 mm apart, coloured from the heel in blue to the toes in red. Each toe shows as its own set of small loops.
One foot, 46 slices at 5 mm.

I thought the feet were done. Then I posed the character, and the toes bent as one block, like a mitten. They were never separate to begin with.

2,000,000 triangles

Worth keeping.
Hard to handle.

A mesh this dense holds real detail, and today's hardware renders it with ease, in film and in games. That is why it is worth keeping. Finding what is wrong inside it is why it is hard to handle.

Everyone knew. Nobody had the time.

Finding every problem in a two-million-triangle mesh by hand takes days.

So it waits, until the character moves and the problem shows on its own.

MCIR does that part.

You keep doing the creative work. We do the searching.

A torso seen from the side, drawn as 115 horizontal slices, 5 mm apart, coloured from blue at the bottom to red at the top. Most lines flow smoothly; a few step where one surface sits on another.

Know where to look.

Every flagged region, separated.

115

slices through one torso, 5 mm apart.

Each flagged region gets its own number, location, size and vertex list.

I clicked “Automatic Weights” and moved the leg. The hip dragged half the belly with it. Somewhere under the surface, two layers were touching, and I could not see where.

A full-body mesh drawn as stacked horizontal slices in dim colour from blue at the feet to red at the head. A few regions on the torso glow white, marking where the geometry was flagged.

Seconds, not days.

2,000,000

triangles in one mesh.

The whole mesh is inspected in seconds. The glowing regions are where to look.

The shirt and the skin were one surface. Every time the arm lifted, the sleeve went with the skin. To layer real clothes, I first had to find where one ends and the other begins, among two million triangles.

A sample MCIR report page for self-intersection region 141: front, left and right silhouettes with the spot circled at the waist, a close-up of the overlapping triangles with scale bars and XYZ arrows, and a table of centre, extent, vertex and triangle counts.

So we went
looking, hard.

What you get

One page per finding.

Where it is on the body, a close-up with scale and direction, and the numbers that pin it down.

This is a real page from an MCIR report: region #141, a self-intersection at the waist.

A second sample MCIR report page for non-manifold edge region 131: silhouettes with the spot circled, a close-up of the edges with scale bars and XYZ arrows, and a table of centre, extent, vertex and triangle counts.

Everything else
comes after.

What you know

Know what you found.

Every region comes with its centre, its extent, its vertex and triangle counts, and the exact vertex IDs. The same numbers arrive as structured files for your agent.

Once you know, you can direct.

This is also a real page from an MCIR report: region #131, non-manifold edges. Same mesh, same inspector version, same report.

What MCIR does.

Upload a mesh. MCIR inspects the geometry and separates every flagged region: a PDF for you, structured files your agent can act on. Your mesh stays as it is. Nothing is graded.

GLB glTF OBJ FBX VRM PMX DAE 3MF PLY STLAccepted formats
2,000,000Triangles, maximum
200 MBFile size, maximum
PDF + JSONWhat you get back
// Report_Agent.json — summary index (values from a real report)
{
  "format": "v2.0",
  "mesh": { "triangles": 51237, "vertices": 49721, "units": "unknown" },
  "summary": { "by_level": { "DETECTED": 1492, "REVIEW": 2893, "NOT_ASSESSABLE": 41 } },
  "files": {
    "items":   { "name": "Report_Items.jsonl",   "lines": 4426 },
    "regions": { "name": "Report_Regions.jsonl", "lines": 4426 }
  }
}

// Report_Items.jsonl, line 2073 = region #2073
{ "id": 2073, "code": "HOLE", "level": "DETECTED", "centroid": [0.02206, 0.287608, 0.086544],
  "vertex_count": 140, "edges_total": 85, "blender_select": "mcir_select(\"Report_Regions.jsonl\", 2073)" }

Report_Agent.json is the summary index. Each region's Blender selection line is in Report_Items.jsonl; its vertex IDs, positions and face IDs are in Report_Regions.jsonl. Open only what you need.

Finish one character.
Move to the next.

Your agent gets the findings as structure, so each turn goes into fixing, not searching. Come back months later, and region #12 is still region #12.

See the sample report above.

Meshes up to 2,000,000 triangles and 200 MB. A .zip with a single mesh is fine. Your file is deleted after processing.