XPRTIX 3D

See what makes a 3D model heavy, then fix it.

Drop a model and see which parts weigh the most. Remove what no camera can see, fit it to a phone budget, convert it, and compare the result with the original. Your files never leave your device.

heaviest partshidden geometryfit to budgetcompareOBJ → GLBMeshoptDraco
Drop your model here or click to browse. Add its textures too, or drop a zip. GLBglTFOBJSTLPLYZIP Never uploaded. Processed on your device.

What it does

What you can do with your models

See where a model's weight is, change its format, make it fit a budget and check what changed. Your models never leave your device.

  1. 01

    See where the weight is

    Every model is inspected the moment it is dropped: triangles, draw calls, texture memory, duplicate and unused data, missing normals and open edges. The parts list ranks every part by its triangles, so you can find the one that costs the most, click it in the model, and keep, reduce or remove it. GLB and glTF files are also checked against the glTF 2.0 spec with the Khronos validator.

    Inspector
  2. 02

    Convert to GLB

    Turn an OBJ with its MTL and textures, an STL, a PLY or a glTF with its files into one GLB that opens in three.js, Babylon.js, Blender and most 3D viewers. Or save as a glTF with its files in a zip, as an OBJ or STL, or as a React (JSX) component with the GLB beside it.

    In your browser
  3. 03

    Make a model smaller

    Identical vertices, materials and textures are merged, unused data is removed and missing normals are added. The geometry is then compressed with Meshopt or Draco. For a model with too many triangles, Reduce polygons lowers the count, and Merge meshes cuts draw calls, and LOD levels saves the model at four levels of detail. Hidden geometry removes the triangles no camera outside the model can see, such as interiors. Pick a budget (a phone, a desktop or your own numbers) and Fit to this budget tries these steps in turn and shows what it tried.

    Optimize
  4. 04

    Shrink the textures

    Textures are usually most of a model's weight. Cap their size at 4096, 2048, 1024 or 512 pixels, round them to a power of two, or save them as WebP where your browser can write it, or as KTX2, the GPU-compressed format, with normal maps kept sharp.

    Textures
  5. 05

    Check what changed

    The viewer shows the model as soon as it is open: turn it, zoom it, and switch on a wireframe. After optimizing, drag a divider across the model to wipe between the original and the result, or show them side by side from the same angle. The result has a bar chart for each number that changed, a list of where the triangles went, and a deviation view that paints how far the original's surface is from the result. Save a transparent PNG of the view, or copy the settings as a command to run elsewhere.

    Compare
  6. 06

    Work on several models

    Drop several models and switch between them as tabs. The settings carry over from one to the next, and each model keeps its own result.

    Tabs

Transparency

What leaves your device

Said up front, before anything is dropped.

Stays on your device

  • Every step: reading, inspecting, converting, compressing and saving. Your models and textures stay yours.

Sent to the server

  • Nothing. Models are never uploaded.
  • The first time you compress a model or check it against the glTF spec, the compression engine or the validator is downloaded from this site.

Recorded

  • Anonymous usage data: the file name, size and format of each model, its triangle and texture counts, the settings used and whether it worked.
  • Never the model, its textures or its geometry.

3D guides

Common 3D jobs

Questions

Asked often

How do I convert an OBJ to GLB?

Drop the .obj together with its .mtl and texture files, or drop them as one zip. Choose Convert and GLB, then press Convert. If the material file or a texture is missing, the card names it and the geometry is still converted.

Are my models uploaded anywhere?

No. Reading, inspecting, converting and compressing all run in your browser. The only network requests are the page itself and, the first time you need them, the compression engines and the validator, which are part of the site.

Which formats can I convert from and to?

In: GLB, glTF (with its .bin and textures, loose or in a zip), OBJ with MTL, STL and PLY. Out: GLB, glTF in a zip, OBJ with its MTL and textures in a zip, STL, a React (JSX) component with the GLB in a zip, or the model at several levels of detail in a zip. A zip holding one model is opened for you.

Should I use Meshopt or Draco?

Draco usually gives the smallest geometry but is slower to decode, and the page that shows the model needs a Draco decoder. Meshopt is a little larger, decodes faster and needs a smaller decoder. Meshopt is the default; choose Draco when the size matters most and your viewer supports it.

Does optimizing change how my model looks?

Merging duplicates, removing unused data and adding missing normals do not. Compressing the geometry stores positions and normals with less precision, which is not visible at normal viewing sizes, and shrinking textures lowers their resolution. Use Preview to compare the original with the result.

What happens to animations and skins?

Skins, morph targets and animations are kept in GLB and glTF. When optimizing, animation keyframes that add nothing are removed. OBJ and STL cannot hold them, so they are left out, and the React component renders the scene whole.

How do I reduce the triangle count?

Turn on Reduce polygons under Optimize, or press it on the finding that flags the count, and choose how much of the detail to keep. Compare the result with the original side by side. It changes the shape, so keep the original.

What is hidden-geometry removal?

The model is drawn from many directions outside it, and every triangle that never shows up in any picture is taken out: seats and engines inside a car body, the backs of things nobody sees. Safe also keeps the neighbours of every visible triangle. Max does not, and can leave small gaps. Glass and other see-through parts are never touched. A model you will look at from inside, or from an angle the pictures missed, may lose something you wanted, so check the result against the original.

What does Fit to budget do?

You choose limits for triangles, draw calls, texture memory and file size, or use the Phone or Desktop numbers. It then removes hidden geometry, caps the textures and reduces polygons step by step on copies of the model, measures each try, and keeps the first one that fits. The tries are listed, and if the limits cannot be met without removing parts yourself it says so. The numbers are rules of thumb, not guarantees for any one device.

Can it fix a model for 3D printing?

Repair closes holes, turns faces the right way round and drops broken triangles, then checks that the mesh is a closed solid. It cannot fix a mesh that passes through itself, and it has not been tried in every slicer, so open the result in yours before a long print.

Is there a size limit?

Nothing is uploaded, so there is no server limit. Very large models can exceed what a browser tab can hold in memory; if that happens the card says so.

Is it free?

Yes, with no account, no watermark and no limit on the number of models.