Company

About

A small tool, built to do one thing properly: turn a mesh into a printable file without asking you to hand your design to a stranger.

Last updated 3 October 2026

What this site is

STL to G-code Converter is a free STL to G-code converter. You open an STL file, it measures the mesh, lets you choose a print profile, slices the model into layers, plans perimeters and infill, and gives you a G-code file your printer can run. There is no account, no trial, no watermark, no file-size tier, and no limit on how many files you convert.

It is run by Astha Singh. The terms and theprivacy policy are the serious version of this page; this one is the short version.

Why it works this way

Almost every online converter asks you to upload your model to somebody else's computer. That is a real problem for anyone whose work is a client design, a unreleased product, or a hobby project they would rather keep private — and it is a problem that cannot be fixed by promising not to look.

So this one does the whole job in the browser. Parsing the mesh, cutting it into layers, deciding where the walls go, calculating the moves and writing the G-code all happen in the tab you are looking at. There is nowhere for your file to go, because the thing that would receive it does not exist.

That choice is also what makes the tool free. There is no server-side slicing to pay for, no storage to pay for, and no queue to pay for. The cost of running the converter is the visitor's own laptop.

How it converts a file

  1. The file is read with the browser's File API and validated — extension, minimum size, and whether the bytes are actually a readable mesh. A file that is not gets a specific reason, not a generic error.
  2. The mesh is measured: triangles, unique vertices, bounding box, surface area, and whether it is closed, manifold and consistently wound. Open edges and reversed triangles are reported here rather than discovered three hundred layers into a print.
  3. The model is intersected with a stack of horizontal planes at your chosen layer height, producing a set of closed cross-sections per layer.
  4. Each cross-section is offset inward repeatedly to make the wall loops, then filled with your chosen infill pattern at your chosen density.
  5. The result is ordered into a path — walls, then infill, with travel moves between them — and written as G-code with a header describing the print it is about to run.
  6. Filament used, print time and peak flow are summed from the moves that were written, so the figures describe the file in your hand rather than the geometry alone.

The output is standard millimetre G-code for Marlin and RepRap-style firmware, and suits Klipper. Every setting is editable, and the model re-slices as you change one, so you can see what a parameter does instead of guessing.

What it is not

It is not a replacement for a full desktop slicer. PrusaSlicer, Cura, OrcaSlicer and SuperSlicer do things this does not — advanced retraction tuning, variable layer height, support generation, ironing, seam placement, per-object settings, and printers this converter does not target. If you print regularly, you should have one of those installed, and many of them are free.

It is also not a certification. The G-code is not validated against your machine, and reading it before you print it is your job. We say more about this in the terms.

How it is built

A static Astro site with TypeScript throughout — the mesh reader, the slicer and the G-code writer are all written for this project rather than wrapped from a library. The 3D viewport is three.js, loaded only once a model is on screen.

There is no backend, no database and no API. The build produces a directory of HTML, CSS, JavaScript and font files, which is why the whole site can be served as static documents — and why the privacy claim is a property of the architecture rather than a promise.

How it stays free

No advertising, no affiliate links, no sponsored placements, no paid tier and no upsell. There is nothing to buy, so there is no "free" version holding back the useful half — the slicer you get is the whole slicer.

If you find it useful, telling another maker about it is worth more to this project than money.

Known limits

Being straight about the edges of it:

  • It reads STL only. OBJ, STEP, 3MF and the rest are not supported.
  • It targets Cartesian Marlin/RepRap-style G-code. Delta kinematics, polar machines, and firmware that needs a different dialect are not handled.
  • It does not generate support material, so models that overhang past about 45 degrees will need support from elsewhere.
  • Layer height, infill, walls, temperatures, speed, acceleration and retraction are adjustable. Most of the long tail of slicer settings is not.
  • A very large model in a browser tab is bounded by your device's memory. If it fails, it fails on your machine, not ours.

Talk to us

Bug reports, feature requests, corrections to the writing on this site and anything else all go to the same place. Write to[email protected], or read thecontact page for what to include so a report can be acted on first time.