Skip to content
STLBench

Free online 3D file viewer

3D file viewer for seven formats at once

Seven formats, one viewport, no account and no upload: STL, OBJ, PLY, 3MF, GLB, glTF and FBX all open here, read straight off your disk. Beyond drawing the model, this page names what the file actually holds — whether the colour you expected is inside it, whether it states its own units, and how many triangles the export produced. That is usually the question behind “open my 3D file”: not what it looks like, but why it looks different here than it did in the program that wrote it.

  • 100% free
  • No signup
  • 9 formats
  • Folders and zips
  • Nothing uploaded
Convert to

Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.

How to open a 3D file

Three steps, and you know what the file is and what it left behind.

  1. Drop the file, whatever it is

    The format is chosen from the extension, not guessed from the bytes, so a mislabelled file fails clearly instead of half-loading. Seven are accepted: .stl, .obj, .ply, .3mf, .glb, .gltf and .fbx. Nothing is checked against a server first — the parser for that one format is fetched, the file is read from your disk, and that is the whole sequence.

  2. Read the format line, not just the picture

    Under the viewport the file name is followed by the format and one of three verdicts: vertex colours, textured, or no colour data. That line is usually the answer to why a model looks grey here and coloured in the program that made it — the colour was never in the file you have, it was in a sibling file or a material library the export left behind.

  3. Compare it against what you expected

    The panel reports bounding box, triangle count, welded and stored vertex counts, surface area, and volume when the mesh is closed. A size off by a factor of 25.4 means an export in inches; a factor of 1000 means a metres-based pipeline such as glTF. If the triangle count is far higher than the shape warrants, the export tessellated finely — which matters for file size and for every conversion afterwards.

Technical specifications

Formats readSTL, OBJ, PLY, 3MF, GLB, glTF, FBX
Carries colour inside the filePLY (per vertex), GLB (textures), 3MF (materials)
Multi-file modelsOBJ with its .mtl, glTF with its .bin and images — as loose files, a folder or a .zip
States its own unit3MF only; glTF is metres by convention; STL, OBJ, PLY say nothing
File sizeNo fixed limit — past 100 MB you are told what it will cost this tab, then it opens
Not readSTEP, DXF, SKP, 3DS, USDZ — and animation in any format

Frequently asked questions

Which 3D format should I export?

For 3D printing, 3MF if the slicer accepts it and STL if it does not: 3MF carries units, colour and the arrangement on the plate, while STL carries none of that and is still the safest thing to hand a stranger. For the web or a game engine, GLB, because it packs geometry, materials and textures into one file that cannot arrive incomplete. For moving a model between modelling packages with named parts intact, OBJ if it is static, FBX if it has a skeleton. PLY is the odd one out and is not really an interchange format at all — it is what scanners write.

Why does my model look grey here but coloured in Blender?

Because the colour was probably not inside the file you dropped. OBJ keeps materials in a separate .mtl and textures in image files next to it; a .gltf points at a .bin and its textures the same way. Nothing is broken — that is the format working as designed, and the fix is to hand over the rest of the set: select the siblings together, drop the folder, or drop a zip, and they are read from memory. GLB, 3MF and PLY are the three here that carry appearance inside the single file, and the line under the viewport tells you which kind you have.

What does the format line mean by “vertex colours” and “textured”?

They are two different ways a file stores appearance, and they behave differently downstream. Vertex colours attach a colour to each point of the mesh and interpolate across the triangle — that is what a scanner produces, and it survives any conversion that keeps vertices. Textured means an image is wrapped onto the surface using UV coordinates, which is what a game asset uses; it is far more detailed and it breaks the moment the image file is separated from the mesh. A file can have neither, which is most engineering geometry.

Can it open STEP, DXF, SKP or 3DS?

Not yet, and the reason differs by format. STEP and DXF are not meshes at all — they store real curves and surfaces, and reading them means implementing a CAD kernel rather than a mesh parser, which is being worked on separately. SKP is SketchUp's own undocumented container. 3DS is a dead Autodesk format that almost everything can re-export. When those readers exist they will appear as their own pages rather than being quietly folded into this one.

Is there a file size limit?

There is no fixed ceiling, because there is no server whose capacity would set one. What there is, past 100 MB, is a warning: three copies of the model coexist while you look at it — the raw bytes, the parsed triangle list and the buffers the graphics card holds — and a tab that exhausts its memory closes without warning of its own. So the numbers are put in front of you and the decision is yours. In binary STL, 100 MB is roughly 2 million triangles; in ASCII formats such as OBJ the same geometry takes several times more bytes, so the slow point arrives sooner.

Does it show animations, rigs or scene lighting?

No. GLB, glTF and FBX can all carry skeletons, animation clips and lights, and this page reads the geometry and materials out of them and ignores the rest — the model is shown in its bind pose under this page's own three-light setup. That is a deliberate scope: the tool exists to tell you what a file contains dimensionally, not to be a playback engine. If a rig is what you are checking, a modelling package is the right place.

About choosing between 3D formats

The seven formats here were designed for four different jobs, and most confusion about them comes from using one outside the job it was built for. STL and 3MF exist to hand a solid object to a machine that will make it. OBJ and FBX exist to move a model between modelling packages. GLB and glTF exist to ship a finished asset to a renderer, which is why they are the only ones that treat materials as a first-class part of the file. PLY exists to write down what a scanner saw. A format that is excellent at its own job is usually mediocre at the others — FBX carries a rig no printer will ever use, and STL carries no units, which matters enormously to a printer and not at all to a renderer.

The practical split, and the one this page reports on, is whether appearance survives the trip. OBJ references a .mtl file by name; glTF references a .bin and its textures by path. Both are perfectly valid formats and both arrive stripped when a single file is emailed, downloaded or dragged into a browser tab. The single-file answers are GLB, which packs everything inline, and 3MF, which zips it. If you are sending a model to someone and you cannot supervise how they open it, that difference matters more than any feature comparison.

For printing specifically, the choice is narrower than it looks. STL has been the default for four decades and remains what every slicer accepts, but it is the weakest format in this list: no units, no colour, no way to say which triangles were once one face — see the STL viewer for what that costs in practice. 3MF fixes all three and is now the native format of PrusaSlicer, Bambu Studio and Cura, so if both ends of the exchange are modern, there is little reason left to send an STL.

Where your file is read

Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.

One clause specific to this page: only the parser for the format you actually dropped is fetched, so opening an STL never downloads the FBX or 3MF readers. Those are requests for code, not for your file — the file itself stays in the tab and is discarded when you close it.