Rig Bake

Check a 3D model for problems

The Model doctor: find what is wrong with a model before it wastes your afternoon — wrong scale, broken bind pose, inverted normals, overlapping UVs, holes. Reads GLB, GLTF, FBX, OBJ, DAE, STL, PLY, VOX and VRM, any size, in your browser.

More than one file?

Batch processing runs this exact tool over a whole folder and hands back one zip — no file limit, still nothing uploaded.

A model that renders fine can still be broken

That is the whole problem with importing someone else’s 3D file, and it is the reason this page exists. The preview looks right, so you assume the file is right, and you find out otherwise three steps later — when the rig explodes on the first frame of animation, when the model imports into Unity at 100× the size of everything else, when a bake comes back as noise because two triangles were sharing the same patch of texture.

None of that is visible in a render. All of it is visible in the data.

What it checks

Scale — models authored in centimetres arrive 100× too big, and models exported from a sculpt can arrive so small they vanish. Fixable, and fixed.

Bind pose — if a skinned mesh’s inverse bind matrices are broken, the rig detonates the moment it is posed. Fixable, and fixed.

Normals — faces wound the wrong way make a model look inside-out from one side. Fixed when the mesh is unambiguously inverted, and reported but left alone when it is not (see below).

UVs — overlapping islands mean you cannot bake anything into the texture. Reported, never silently "fixed": the map has to be rebuilt, which is a different operation with different trade-offs.

Topology and holes — non-manifold edges, degenerate faces, open boundary loops. Reported; the repair tool is where you act on them.

Why it refuses to fix some of what it finds

The inverted-normal check is dependable on a convex, closed, single object and misleading on anything else — a croissant sitting on a baking tray, modelled as one mesh, honestly reads as half inside-out. So the doctor only flips a mesh that is overwhelmingly inverted, and for the ambiguous cases it tells you what it saw and leaves your model alone.

This is deliberate. A tool with no viewport and no undo button should be the conservative one. An automatic fix that is right nine times out of ten is a tool that quietly ruins one model in ten.

Working backwards from the symptom

Most people arrive here having already seen something go wrong somewhere else, so it is worth naming the usual mappings. Each of these has one overwhelmingly likely cause, and the checks on this page confirm it in a few seconds.

The model imports enormous, or invisible. Scale. Centimetres read as metres puts it at 100×; a model authored in a sculpting tool at real-world millimetres can land at 1/1000 and be mistaken for a failed import.

The mesh detonates on the first frame of animation — limbs stretched to infinity, geometry smeared through the origin. The bind pose. The inverse-bind matrices do not correspond to the skeleton, and posing the rig applies a transform that was never invertible.

It looks correct from one side and hollow from the other. Winding. Some faces point inward, and backface culling makes them vanish exactly where the surface should be.

A bake comes back as noise, or painting bleeds into an unrelated part of the model. Overlapping UVs. Two patches of surface claim the same region of texture, so whatever you write into one appears on the other.

A boolean fails, a print slicer refuses the file, or a physics collider behaves impossibly. Topology — non-manifold edges, degenerate faces, or holes. All three break the assumption that the surface is a closed, well-formed solid.

What to do with each finding

The report is a routing table more than a verdict, because the appropriate response differs by category.

Scale, bind pose and unambiguous winding are corrected here, in place, and you download the fixed GLB. Nothing further is needed.

Geometry problems — split vertices, degenerate faces, stray islands, holes — are reported and handled by the repair tool, which welds, drops, removes and fills. It is safe on rigged meshes.

Overlapping UVs cannot be repaired, only replaced. The map has to be rebuilt and every texture re-baked onto the new one, which is a genuine trade-off rather than a fix — that is the re-unwrap tool.

An excessive triangle count is not a defect and the doctor will not flag it, but it is the reason many people are looking at the file in the first place. Reduce the polygon count separately, after the geometry is clean — decimating a mesh full of duplicate vertices spends the budget on repairing nothing.

How to use it

  1. Drop your .glb, .gltf or .fbx into the box above.
  2. Leave "fix what can be fixed safely" on unless you only want the report.
  3. Press Diagnose. Every check reports what it found, and what — if anything — was done about it.
  4. Download the corrected GLB. If nothing needed changing, you get no file, and it says so.

Questions

It found problems but produced no file. Why?

Because some problems cannot be fixed in place — overlapping UVs need the map rebuilt, holes and non-manifold edges need geometry removed. The doctor reports those and points you at the tool that acts on them, rather than pretending a re-export was a repair.

My model imports into Unity 100× too big. Will this fix it?

Yes — that is the classic centimetres-versus-metres mismatch, and the scale check catches and corrects it.

It says my normals "lean inward" but did not flip them.

The check is only dependable on a convex, closed shape. A concave or multi-part mesh trips it legitimately, so on an ambiguous result the doctor reports and stops. Open it in the editor if you want to flip them while watching the result.

Is anything uploaded?

No. Every check runs on your machine, in this tab.

How do I know if a 3D model is broken?

You mostly cannot, by looking — which is the reason to check rather than trust the preview. A render exercises one narrow path through the file: it reads positions, normals and textures at one moment in one pose. Scale is invisible until something else stands next to the model, bind poses are invisible until the rig moves, UV overlap is invisible until you bake, and non-manifold topology is invisible until a solver touches it. Run the file through a diagnostic before you build on it, and you find out in ten seconds instead of three steps later.

Why does my 3D model look inside out?

Its faces are wound the wrong way. A triangle has a front and a back determined by vertex order, renderers cull the back to save work, and a model whose faces point inward therefore shows you its interior — solid from one angle, hollow from another. It is common on AI-generated meshes and on anything that has been mirrored or scaled by a negative number. The fix is to flip the winding, which this page does automatically when the mesh is unambiguously inverted, and reports without touching when the geometry is concave enough to make the test unreliable.

Why does my character stretch or explode when the animation plays?

A broken bind pose, in almost every case. A skinned mesh stores, per bone, the inverse of that bone’s transform at bind time; posing multiplies by the current transform and expects the two to cancel into an identity at rest. When a file arrives with matrices that do not correspond to its skeleton — very common in AI-generated rigs and in FBX round-trips — that cancellation produces garbage, and the mesh smears toward the origin the moment a clip plays. Detected and corrected here.

What are overlapping UVs and why do they matter?

UVs map each triangle to a region of the texture image. When two triangles claim the same region they are overlapping, and anything you write into the texture appears in both places at once. Rendering an existing texture is fine — reading the same pixels twice harms nothing, which is why the model looks correct. Writing is where it breaks: bake ambient occlusion, bake lighting, or paint on the surface and the result lands on unrelated parts of the model. AI generators produce overlapping maps routinely because their auto-unwrapper optimises for coverage rather than for being usable.

Is this a glTF validator?

It answers a different question. The Khronos glTF Validator checks whether a file conforms to the specification — whether the JSON is well formed and the accessors are consistent. Nearly every file that fails here passes that, because a mesh can be perfectly spec-compliant and still be inside out, mis-scaled and impossible to bake to. This page checks whether the model is usable rather than whether it is legal.

The other tools