Tooling

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 new pymeshlab) — 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.

On this page