3D Format Converters
Move scan and mesh assets between OBJ, PLY, STL, glTF, FBX, USDZ, and back — assimp, gltf-transform, MeshLab, FreeCAD.
The boring middle layer that makes scans usable downstream. Scans come out in vendor-specific or research-flavoured formats; consumers expect glTF / GLB / USDZ for web/AR or STL / 3MF for 3D print. This page focuses on the mesh / scan output side; for engineering CAD interchange (STEP / IGES / Parasolid) see CAD Interop & Conversion. Pairs with Mesh Processing (cleanup), Photogrammetry Software (scan output), 3D Model Hosting & Display and 3D / WebGL (delivery).
Universal libraries / CLIs
- ★ assimp (Open Asset Import Library) — free, OSS (BSD); reads ~50 formats, writes ~30. The C++ library underneath countless game engines and viewers; ships with a CLI (
assimp export) for one-shot conversions. - ★ gltf-transform — free, OSS (MIT); Node CLI + library for everything glTF / GLB.
optimize,simplify,weld,dedup, Draco / Meshopt / KTX2 compression, embed / strip. The standard for getting glTFs ready for the web. - ★ gltfpack (meshoptimizer) — free, OSS (MIT); single-binary glTF optimizer; the meshoptimizer pipeline; pairs with gltf-transform.
- draco_encoder / draco_decoder — Google; mesh compression CLI for glTF / PLY / OBJ.
- KTX-Software (Khronos) — free, OSS; texture compression to KTX2 (BasisU / UASTC); plugs into glTF.
- MeshLab CLI (
meshlabserver, or newpymeshlab) — free, OSS; batch any of MeshLab's filters / format conversions; see Mesh Processing. - Open3D Python — free, OSS; programmatic mesh I/O.
- trimesh — free, OSS Python; extremely flexible mesh loader / saver.
- f3d — free, OSS; "headless" viewer that doubles as a converter (
f3d input.obj --output out.glb).
Scan-specific format work
- OBJ + MTL + textures — universal, ASCII; survives anything but is bulky. Most photogrammetry apps export this.
- PLY — universal, binary; carries point clouds, splats, and meshes; Stanford's research format.
- glTF / GLB — modern web standard; PBR materials, animations, embedded textures.
- USDZ — Apple's AR-friendly USD package; for iOS Quick Look.
- FBX — closed format (Autodesk); convertible via FBX SDK or assimp.
- STL / 3MF — for 3D print; see Mesh Repair & Conversion and CAD Interop & Conversion.
- E57 / LAS / LAZ / PLY (cloud) — point clouds; see Point Cloud Tools.
.splat/.ksplat/.spz— Gaussian splat containers; see Gaussian Splatting.
Online / one-shot converters
- Aspose 3D online — closed source, free for small files; web-based; data-privacy concerns.
- Autodesk FBX Converter — free desktop app from Autodesk; FBX ↔ OBJ / DAE / 3DS.
- Convertio / AnyConv / imagetostl — closed source freemium; quick web converters; same privacy concerns.
- Online 3D Viewer (
3dviewer.net) — free, OSS; preview + light conversion in browser.
Format-specific tooling
- ★ glTF Validator (Khronos) — free; CLI + web; checks a GLB / glTF for spec violations. Always run before shipping.
- 3MF Tools (3MF Consortium) — free; validators and reference tools for 3MF.
- STL utilities (
admesh) — free, OSS CLI; STL repair / scaling / format conversion. See Mesh Repair & Conversion. - USD tools (Pixar
usdcat,usdview) — free, OSS; convert / inspect USD / USDZ. - Reality Composer (Apple) — free; Mac/iOS authoring app; exports USDZ.
Programmatic / browser
- occt-import-js — free, OSS WASM; OCCT readers in the browser (STEP / IGES / BREP); useful when a viewer needs CAD interop. See CAD Interop & Conversion.
@gltf-transform/core— JS API for the gltf-transform pipeline.- draco / meshopt browser decoders — Three.js loaders.
occt-import-js,web-ifc,xeokit-convert— BIM / CAD readers in JS.
Library-style mesh-format support
- ★ Blender Python
bpy.ops.import_scene.*/export_scene.*— free, OSS; scriptable via headless Blender; surprisingly capable as a conversion CLI. - FreeCAD
freecadcmd— see CAD Interop & Conversion; the open-source path for STEP-bridging conversions. - PyVista — free, OSS Python; mesh / point cloud I/O on top of VTK.
Pick this if…
- Default OSS multi-format converter: assimp CLI or trimesh / Open3D in Python.
- Web-target glTF optimisation: gltf-transform + Draco + KTX2.
- Validate a glTF before shipping: glTF Validator.
- Quick CLI conversion of any 3D file: f3d.
- Headless batch via existing 3D app: Blender Python or FreeCAD
freecadcmd. - STEP / IGES / engineering CAD interchange: see CAD Interop & Conversion.
- Point clouds (LAS / LAZ / E57): see Point Cloud Tools.
- Gaussian splat formats: see Gaussian Splatting.