STL viewer online
Interactive 3D model viewer for STL and OBJ files with lighting, materials, and PNG export.
Drop a .stl or .obj file here or browse
Supports STL (binary/ASCII) and OBJ formats
Before a print you usually want two things from an STL: does it look like the part I meant, and how big is it. This page answers both without a slicer. It parses binary STL, ASCII STL and OBJ with its own reader, then draws the mesh on a 2D canvas using a painter-algorithm depth sort and flat shading from a directional light, so there is no WebGL requirement and no library download. You get orbit, pan and zoom, three render modes, eight model colours, five lighting presets, a grid floor, an axis gizmo, a dimensions readout, and an info panel with triangle count, vertex count, unique vertex count and the bounding box in file units.
Key facts about STL viewer online
| Formats read | Binary STL, ASCII STL and Wavefront OBJ. Format is detected from the extension and, for STL, from whether the 80-byte header starts with the word solid |
|---|---|
| Binary STL parsing | Triangle count is read from the 4 bytes at offset 80, then each 50-byte record gives a normal and three vertices as little-endian floats |
| ASCII fallback | A file whose header says solid but yields no triangles as ASCII is retried as binary — the common case of a binary STL written with a text-looking header |
| OBJ support | Vertices and faces only; faces with more than three vertices are fanned into triangles. Materials, textures, normals and groups are ignored |
| Renderer | Canvas 2D. Triangles are projected with a perspective divide, sorted back to front and filled — no WebGL, no three.js, no shader compilation |
| Shading | Flat per-face: the absolute dot product of the face normal and the light direction, plus the preset ambient term. No shadows, no specular highlight |
| Statistics | Triangle count, total vertices, unique vertices (deduplicated to six decimal places) and bounding-box width, height and depth |
| Units | STL and OBJ store no unit. Dimensions are reported in file units — millimetres for most printers, inches for some CAD exports |
| Render modes | Solid, wireframe, or solid with wireframe overlay |
| Appearance | Eight model colours, six backgrounds including a gradient, five light presets with ambient levels from 0.05 to 0.3 |
| Export | PNG screenshot of the canvas exactly as displayed, named after the source model |
What happens to your file
The model is read with arrayBuffer or as text and parsed by JavaScript running in this tab; every triangle is projected and drawn on a canvas in the same page. There is no upload, no render farm and no server-side copy — the geometry of a part you are about to print or quote never reaches anyone else. The PNG screenshot is produced by the canvas toDataURL call and saved locally by your browser. This is the difference that matters for engineering files: a prototype mesh is often the most sensitive thing in a project, and here it stays on your machine.
About this tool
- 1
Drop the .stl or .obj file
Drag the model onto the page or browse for it. Binary and ASCII STL are both detected automatically, so you do not need to know which one your CAD tool wrote.
- 2
Orbit to check the shape
Drag to rotate, scroll to zoom, switch to pan to reposition. The grid floor sits at the lowest point of the model, which makes it easy to see whether the part is oriented the way the printer will place it.
- 3
Read the info panel
Triangle count tells you how heavy the mesh is; width, height and depth in file units tell you whether it fits the build plate. Unique vertices next to total vertices hints at how well the mesh is welded.
- 4
Switch render mode when something looks wrong
Wireframe shows the actual topology, and solid with wireframe overlay is the fastest way to spot an area with wildly uneven triangles.
- 5
Save a PNG
The screenshot button exports the canvas as it looks — colour, lighting, background and grid included — named after the source file.
| Accepted extensions | .stl and .obj |
|---|---|
| STL variants | Binary (50 bytes per triangle) and ASCII (facet normal / vertex blocks) |
| Colour in file | Not read. STL has no standard colour, and OBJ materials are ignored — you choose the display colour |
| Graphics requirement | Canvas 2D only; works where WebGL is blocked or unavailable |
| Practical size | Every triangle is projected and sorted each frame in JavaScript, so meshes of a few hundred thousand triangles stay interactive and multi-million-triangle scans do not |
| Interaction | Drag to orbit, drag in pan mode to pan, wheel to zoom, reset view button, fullscreen |
| Screenshot | PNG at the on-screen canvas size, including background and grid |
| Browser support | Chrome, Edge, Firefox and Safari, desktop and mobile |
| Cost / account | Free, unlimited models, no signup |
- If the model appears a thousand times too large or small, the file is in different units: STL carries no unit, so a 25-unit part is 25 mm in one tool and 25 inches in another.
- Unique vertices far below total vertices means a well-welded mesh; a number close to three times the triangle count means every triangle has its own unshared corners.
- Use the Dramatic light preset with its 0.05 ambient to make surface facets and stair-stepping visible before you print.
- Wireframe over solid is the quickest visual check for a mesh that was decimated badly by an export.
- The gradient background photographs better for a README or a quote than the plain white one.
- Turn the grid off before taking a screenshot for a customer — it reads as a modelling artefact rather than a product image.
- The bounding box is the whole model including any stray far-away vertex, so a suspiciously large dimension usually means one loose triangle rather than a big part.
- Binary STL, ASCII STL and OBJ
- Orbit, pan and zoom
- Solid, wireframe and combined modes
- Eight model colours and six backgrounds
- Five lighting presets
- Grid floor and axis gizmo
- Triangle, vertex and bounding-box statistics
- PNG screenshot export
- Checking a downloaded STL is the part you expected before loading it into a slicer.
- Reading the bounding box of a model to see whether it fits your build plate.
- Opening an STL on a machine with no CAD software and no WebGL support.
- Producing a clean PNG of a model for a quote, a README or a listing.
- Spotting a badly decimated or non-manifold-looking area using the wireframe overlay.
- Reviewing a client mesh without uploading proprietary geometry to a viewer service.
Related tools
View allPart of File viewers that open the file in your browser
Works well with this4
More file viewers10
More in Data & Dev12
Related categories2
Updated