STL Unit Converter & Scaler

Scale STL 3D models or convert units (mm/cm/m/inch). Reads binary and ASCII STL. Applies scaling factor or per-axis scaling. Runs in your browser — models never upload.

1.0.0
Version
Auth
Batch

About STL Unit Converter & Scaler

STL is the standard 3D-printing model format and it has no notion of units — vertex coordinates are just numbers. A model someone uploaded to Thingiverse, Printables or MakerWorld might be in mm (the printer-standard convention), inches (American mechanical CAD output), cm (some European workflows) or even metres (some scanning/architecture exports). Drop a 25-mm-tall keychain into your slicer and find it's actually 25 inches once you import — a confusing waste of slicer time. The desktop options (Meshmixer, MeshLab, PrusaSlicer, OrcaSlicer) all scale STLs, but require firing one up.

This STL unit converter and scaler handles both binary and ASCII STL files, applies either a uniform scaling factor or per-axis X/Y/Z scaling, and writes the result in either binary (compact, slicer-friendly) or ASCII (human-readable, diff-able) form. Unit-conversion presets snap to common pairings: mm → cm (×0.1), cm → mm (×10), mm → inch (×0.03937), inch → mm (×25.4) and so on across mm/cm/m/inch. Per-axis scaling is the rescue tool when a print needs to be widened or shortened in one direction only. Bounding box dimensions before and after are shown so you can sanity-check the result fits your print bed before you even open the slicer. Everything runs as JavaScript in the page — large meshes that other browser tools choke on are streamed through.

Use it to fix the recurring "imported model is 25 inches not 25 mm" bug after downloading from Thingiverse, scale a print to fit a smaller bed, convert an imperial-units mechanical drawing to mm for a Bambu or Prusa slicer, stretch a model in just the Z axis, or rewrite a verbose ASCII STL as a compact binary STL before uploading to a print farm.

STL Unit Converter & Scaler Use Cases

  • Fixing 'this 25mm model imported as 25 inches' after a Thingiverse download
  • Scaling a print to fit a smaller bed (Bambu A1 mini, Prusa MINI) before slicing
  • Converting an imperial-units mechanical drawing to mm for European-standard slicers
  • Stretching a model in just one axis (taller phone stand, wider gridfinity bin)
  • Rewriting a verbose ASCII STL as compact binary STL for upload to a print farm
  • Engineering teams normalising STLs to a shared unit before importing into CAD
  • Educators showing students how STL files have no native unit specification

STL Unit Converter & Scaler Features

  • Reads both binary STL (the compact form) and ASCII STL (the readable form) — auto-detected from the file header
  • Unit-conversion presets — mm ↔ cm ↔ m ↔ inch with the correct multipliers (×25.4 for inch→mm, etc.)
  • Uniform scaling factor for whole-model resize, or per-axis X/Y/Z scaling for selective stretching
  • Bounding box dimensions shown before and after so you can sanity-check the result fits your print bed
  • Writes output as binary STL (compact, slicer-friendly) or ASCII STL (human-readable, git-diff-friendly)
  • Triangle count and overall size displayed so you know what you're working with
  • All geometry processing runs as JavaScript in your browser — no upload, no signup, large meshes streamed through

How to Use STL Unit Converter & Scaler

Upload your STL

Drag-and-drop or click to select a .stl file. Both binary and ASCII STL are accepted; the parser detects which one from the header. Bounding box dimensions and triangle count are shown right away.

Choose unit conversion or custom scale

For unit conversion, pick a preset — mm→inch, inch→mm, mm→cm, etc. — and the correct multiplier is applied. For custom scaling, type a uniform factor (0.5 to half, 2.0 to double) or three per-axis factors (X/Y/Z separate).

Review the new bounding box

The result panel shows original vs new dimensions in the chosen unit. Sanity-check that the scaled model fits your print bed (a 256×256×256 mm cube is the common large-bed budget; 220×220 is more typical).

Pick output format

Binary STL is compact (typically 10× smaller than ASCII) and is what every slicer prefers. ASCII STL is human-readable and friendly to git diff if you version-control your CAD files. Pick whichever fits the next step in your workflow.

Download and slice

Save the rewritten .stl. Import into PrusaSlicer, OrcaSlicer, Bambu Studio, Cura or your preferred slicer; the model arrives in the right unit and at the right size without any further conversion. Click Print Preview to confirm.

STL Unit Converter & Scaler FAQ

No. The mesh is read with FileReader, parsed, scaled, and re-serialised entirely as JavaScript on the page. There is no network call, no API, no analytics. Open DevTools → Network and watch nothing fire when you click Scale. Useful when the model is part of a client project, an under-NDA mechanical design or a pre-launch product prototype.

The STL format predates the metric/imperial debate by decades and was designed when CAD was largely proprietary. Vertex coordinates are stored as plain floats with no unit metadata. By convention, modern 3D-printing workflows treat them as mm — but CAD tools (Fusion 360, SolidWorks, CATIA) often export in their own document units (sometimes inches), which is why the 25-mm vs 25-inch confusion is so common.

No hard server limit (everything runs locally), but browser memory becomes the constraint for very large meshes. Models with under 5 million triangles process comfortably; above that, browsers may pause for a few seconds. For multi-hundred-megabyte CT-scan or photogrammetry meshes, desktop MeshLab or Blender is the better tool.

Binary STL packs each triangle as 50 bytes (12 floats + 2-byte attribute). ASCII STL spells out each triangle in human-readable text (facet normal, three vertex lines, endfacet). For the same model, ASCII STL is typically 10× larger. Slicers and most pipelines prefer binary. ASCII is useful when version-controlling CAD models in git or when debugging mesh issues by eye.

When you want to stretch in one direction only. A phone stand that needs to be 10% taller but the same width and depth: set Z=1.1, X=1.0, Y=1.0. A gridfinity bin needing to be wider but not deeper: scale X only. Per-axis scaling preserves angles in the unchanged dimensions but warps angles in the scaled direction, so use it for boxy/parametric prints, not organic ones.

No — this is a scaling and unit-conversion tool, not a mesh repair tool. Triangle normals and topology pass through unchanged. If your model has holes, self-intersections or inverted normals, run it through Meshmixer, MeshLab's repair filter, or Microsoft's Model Repair Service first.

PrusaSlicer (and OrcaSlicer, Bambu Studio, Cura) all scale models at import. The difference here is the result is saved back to disk as a new STL — useful when you want the scaled file to live in your CAD project directory, when you're handing the rescaled model to someone who uses a different slicer, or when you're doing a unit conversion as part of a multi-step pipeline rather than just printing one copy.

Zero uploads. STL geometry is parsed, scaled, and re-serialized all in your browser.

Upload .stl file

Binary or ASCII, any size your browser can handle

STL Unit Converter & Scaler Tutorial

What This Does

Your STL model is in the wrong units? Maybe imported a Solidworks export as inches when your slicer expects mm? This tool scales every vertex in the file by a factor you specify — uniform or per-axis — and re-serializes either as binary STL (compact, fast) or ASCII STL (human-readable, bigger).

Common Conversions

  • inch → mm (×25.4) — most common, US-source models to metric slicers (Cura, PrusaSlicer)
  • m → mm (×1000) — CAD defaults like Fusion 360 sometimes use meters
  • mm → cm (÷10) — less common but happens with old exports
  • Uniform scale (e.g. ×2) — enlarge or shrink a print

Per-axis Scaling

Useful for correcting anisotropic stretch (e.g. if your 3D scanner output is slightly off in Z). Leave X/Y/Z at 1 to use the uniform factor.

STL Format Notes

  • Binary STL — 80-byte header, 4-byte triangle count, 50 bytes per triangle (normal + 3 vertices, all float32 little-endian, plus 2-byte attribute). Most common format.
  • ASCII STL — starts with solid name, each triangle as facet normal ... vertex ... vertex ... vertex .... Readable but 5× larger.

Normals are recomputed when you apply per-axis scaling (non-uniform scale changes face orientation); for uniform scaling the normals stay the same.

Why In-Browser?

STL files can be big (10-100+ MB) and you don't want to upload a product design to a random website. This tool parses the binary format in JavaScript, applies the scale, and saves locally. Nothing touches our server. Open DevTools → Network and you'll see no requests.

What This Doesn't Do

  • Preview the 3D model (use viewstl.com or 3dviewer.net)
  • Repair broken STLs (use Meshmixer)
  • Convert to other formats (3MF, OBJ) — separate job
  • Decimate / simplify geometry