LOD generator

Generate LODs from any 3D model — one file in, four levels out

Authoring LODs by hand in Blender or Maya is tedious and error-prone. This tool decimates your model into four progressively lighter versions, packs them in a ZIP with a manifest, and is ready to drop into Unity, Unreal or any glTF-based pipeline.

lod generator online · create lod levels · generate lod fbx · glb lod tool · level of detail generator

Why use the LOD generator?

A "level of detail" chain is what stops a 200k-triangle hero asset from melting the GPU when the camera is 50 metres away. Every modern engine — Unity's LOD Group, Unreal's LOD slots, Godot's VisibilityRange — picks the right level based on screen size. The problem is generating those levels: a clean LOD chain requires running a quadric simplifier on the geometry, preserving UV seams and material boundaries, then exporting each level cleanly.

This generator does it in one drop. Pick a preset — web (4 levels at 1.0 / 0.5 / 0.25 / 0.1 ratios), mobile (3 levels at 1.0 / 0.4 / 0.15), or game (4 levels at 1.0 / 0.6 / 0.3 / 0.1). Or define your own ratios. The output is a ZIP containing each level as a separate file plus a `manifest.json` listing the ratios, triangle counts, and file sizes — ready to feed into a build pipeline.

The simplifier preserves UV seams, normals, and material boundaries. It uses meshoptimizer's quadric error simplification, the same algorithm used by glTF Transform and Sketchfab's pipeline.

When you need this

Build a clean LOD chain for an asset bound for Unity or Unreal
Bake LODs from a Sketchfab download that arrived as a single high-poly mesh
Generate mobile-tier versions of an existing PC asset without re-modelling
Pre-compute LODs for a glTF scene before serving it on the web
Match a target triangle budget across an entire asset set in batch

Tips

For static scenery, the web preset (1.0 / 0.5 / 0.25 / 0.1) is a solid default — covers near, mid, far and silhouette.
For characters, never simplify LOD0 — keep ratio at 1.0 and only reduce LOD1 onwards, otherwise you lose silhouette readability up close.
Output to GLB rather than FBX when the LOD chain is web-bound — GLB compresses 2–3× smaller and ships PBR materials natively.
Check the manifest before importing — if a level still has 80% of the source triangles, the simplifier ran into a constraint (UV seams, hard edges) and you may want to relax it.

Common pitfalls

Read these before running the tool — they save hours of debugging.

Hard edges can collapse at low ratios

At ratios below 0.15, quadric simplification will fold UV seams or hard edges into smooth surfaces. If you see a chair leg merging with its seat at LOD3, raise that level's ratio rather than fixing it manually.

Skinned meshes lose weight precision

Bone weights are interpolated when vertices are merged. For a rigged character, treat the lowest LOD as a silhouette — animation jitter is expected when ratio drops below 0.25.

Material splits are preserved, but multiplied

A 4-material mesh becomes 4 materials × N levels in the output ZIP. If draw-call count matters more than polycount, merge materials in your DCC before generating LODs.

The ZIP contains separate files, not one file with LOD slots

Engines like Unity expect one FBX with multiple meshes named `_LOD0`, `_LOD1`, etc. The ZIP gives you one file per level. Combine them in your DCC, or use the manifest to script the import.

Frequently asked questions

Which formats can I input? Which formats can I output?
Input: FBX, OBJ, GLB and STL. Output: per-level GLB, OBJ or FBX, your choice, all in the same ZIP with a manifest.json.
How does the simplification algorithm work?
We use meshoptimizer's quadric error metric simplification — the same algorithm behind glTF Transform and many AAA pipelines. It preserves UV seams, material boundaries and (configurably) hard normals.
Can I use this tool for runtime LOD streaming?
The generator produces static files. For runtime adaptive streaming (Nanite-style), you need a different pipeline. For traditional discrete LOD systems (Unity LOD Group, Unreal LOD), the output drops straight in.
What is in the manifest.json?
A JSON array with one entry per level: filename, ratio, triangle count, vertex count, file size. Useful for scripted import in build pipelines.
Can I generate LODs in batch via API?
Yes. The REST API exposes the same simplifier and accepts up to 32 files per request, with per-file LOD ratios.

Related tools

Need to do this from your backend? See the API.