Free 3D Model Viewer (STL, OBJ, GLB)
View STL, OBJ, PLY, GLB, and GLTF 3D models in your browser with orbit, zoom, and pan, plus wireframe and auto-rotate. Rendered locally with WebGL — your model is never uploaded.
Drop files here, or click to browse
STL, OBJ, PLY, GLB, GLTF, MTL, BIN, PNG, JPG, WebP, GIF, BMP · processed on your device
or press Ctrl+V to paste from your clipboard
You can drop multiple files at once
Your files never leave your device. All processing happens locally in your browser.
Drop an STL, OBJ, PLY, GLB, or GLTF file to view it in 3D. Drag to orbit, scroll to zoom. For textured models, drop the OBJ with its .mtl and images (or the GLTF with its .bin and images) together.
Nothing to download or install — the viewer runs right here in your browser, on phones too.
💡 Rendered locally with three.js (WebGL) — your model never leaves your browser. Drag to orbit, scroll/pinch to zoom, right-drag to pan. GLB is the most reliable single-file format; for OBJ or GLTF, drop the .mtl, .bin and texture images along with the model.
How It Works
Views 3D models (STL, OBJ, PLY, GLB, GLTF) right in your browser with full orbit controls, rendered locally with three.js / WebGL.
- 1Drop a 3D fileSTL, OBJ, PLY, GLB, or GLTF. It is parsed and rendered in your browser — never uploaded.
- 2Orbit, zoom, panDrag to rotate, scroll or pinch to zoom, right-drag to pan. The model is auto-centered and framed.
- 3Toggle the viewAuto-rotate, wireframe, and reset-view controls, plus a triangle count. GLB is the most reliable single-file format.
The model is rendered entirely in your browser with WebGL. Nothing is uploaded.
Guide
Worked example
Press "Try a sample". It loads sample-torus-knot.obj, a torus knot built by the page itself, and the model starts turning because "Auto-rotate" is on. The toolbar shows "5,120 triangles" and the line below reads "Size: 65.6 × 68.4 × 31.8 mm". Press "in" in the first row of unit buttons and the line becomes 2.58 × 2.69 × 1.25 in. Now press "cm" beside "Model is in", which tells the tool the file was written in centimetres, and the line becomes 25.8 × 26.9 × 12.5 in. Press "Front" to stop the rotation and look from the front, then choose "4K" and press "Save PNG". The image is named sample-torus-knot-4k.png and its longest side is 3840 px. With "Screen size" selected the name is sample-torus-knot.png.
Which settings to use, and the limits
- Drop the model together with its extra files. The tool opens STL, OBJ, PLY, GLB and GLTF. The first model file you drop is the model. Every other file is an extra: .mtl, .bin and images in PNG, JPG, JPEG, WebP, GIF or BMP. Extras are matched by file name, and folder paths are ignored, so drop an OBJ with its .mtl and textures, or a GLTF with its .bin and images, in one go. The page then says "2 extra files added (materials or textures)". GLB is the most reliable choice because it is a single file.
- Move the camera with mouse, touch or keys. Drag to orbit, scroll or pinch to zoom, and right-drag to pan. When the viewer has focus, the arrow keys pan. "Auto-rotate" is on when a model loads; it stops when you press "Reset view" or one of "Front", "Side", "Top" or "3/4". "Orthographic" removes perspective, which helps when you compare lengths by eye. "Grid" draws a floor under the model. "Dark", "White" and "Transparent" change the background. The viewer is 60 percent of the screen height, kept between 320 and 560 px.
- Read the size, then check the unit. "Size:" shows the bounding box of the whole model in the axes the file uses, so for an STL, where Z is up, the third number is the height. STL, OBJ and PLY files carry no unit. A GLB or GLTF is always read as metres. For the others the tool assumes millimetres, unless the longest side is under 1, which it reads as metres. If the size looks wrong, change "Model is in" to mm, cm, m or in. The buttons mm, cm and in only change how the result is shown. Small values keep extra decimals so they never show as 0.
- Pick the PNG size and the background first. "Save PNG" saves what you see, with the current angle, background and grid. "Screen size" saves the canvas as it is on screen, at the pixel density of your device, up to 2. "2×" doubles the viewer size. "4K" makes the longest side 3840 px and keeps the shape. The file is named after the model, with -2x or -4k added. The "Transparent" background clears the canvas to zero opacity, which is meant to give a PNG with a see-through backdrop.
- Know how each format is drawn. An STL is treated as Z-up, the CAD and slicer convention, so it stands upright, and it is drawn with flat shading. A PLY with faces is a mesh drawn on both sides; a PLY with no faces is a point cloud. For points the toolbar shows a count such as "800 points", a "Point size" slider appears from 0.25 to 4 in steps of 0.05, and "Wireframe" is hidden. An OBJ without a usable .mtl gets a single teal material. A model with vertex colours keeps them.
- Add missing files when the model looks plain. An OBJ names its materials with a mtllib line, and the .mtl names the texture images. A GLTF names a .bin file and its images. When a .mtl or a texture is not found, the model still shows and the page says "Not found, so the model may look plain: wood.jpg." An "Add the missing files" box appears under it. Drop the files there and the model reloads with them. Data embedded inside the file is used as it is.
Common problems and how to fix them
- It says "Could not load this model."
- The loader threw an error that is not one of the tool's own messages, so you get this one text instead of the technical wording. The usual causes are a damaged or cut-off file, a file with the right extension but the wrong contents, a glTF older than version 2.0, or a GLB that uses Draco, Meshopt or KTX2 compression, which this page has no decoder for. A browser with WebGL turned off can also end here. Re-export the model as a plain GLB or STL, and try another browser if the sample fails too.
- It says "File type not supported: scene.fbx" (with your own file name).
- Only .stl, .obj, .ply, .glb and .gltf can be opened. Other 3D formats are refused when you add them, and if the page recognises the contents as another format, the message names that format instead. Export the model from the program that made it as GLB or STL. Dropping only a .mtl, .bin or image gives "Add a model file (STL, OBJ, PLY, GLB or GLTF). Materials and textures only go along with a model."
- It says "This glTF needs files that were not added: scene.bin. Add them below, or use a single-file .glb."
- A .gltf file points to separate files for its geometry. The tool lists every .bin it cannot find by name and draws nothing. Press the remove button on the file chip, then drop the .gltf again together with the .bin and the images, all named as the .gltf expects. A glTF with its data embedded in the file needs nothing extra, and a .glb is a single file, so export as GLB if you have the choice.
- It says "Not found, so the model may look plain: texture.png."
- The model loaded, but a texture or .mtl it refers to was not added, so those surfaces may look plain. Add the named files in the "Add the missing files" box. Names are compared without case and without folders or any ?query part, so a file called Texture.PNG matches "textures/texture.png". If the name still does not match, rename your file to what the model asks for.
- It says "This file has no triangles or points to show."
- The file parsed, but it holds nothing the viewer draws. Only triangles and points are shown, so a model made only of lines or cameras counts as empty. Open the source in the program that made it, check that the mesh is included in the export, and export again with the mesh or point cloud selected.
How it compares
This is a viewer for looking, rotating, checking the size and taking a picture. It cannot edit, repair, slice, measure volume, convert between formats or save a 3D file, and it opens only five formats. Desktop modelling and slicer programs are the place for editing, repair and slicing. The size shown is the bounding box in the file's own axes, not a weight or volume. Very large models depend on the memory and graphics hardware of your device. The drawing resolution is capped at twice the screen pixel density. In exchange nothing needs installing, and the model is drawn in your browser with three.js and WebGL.
Related Tools
3D Model Converter
Convert 3D models between STL, OBJ, PLY, GLB, glTF and USDZ. Opens 3MF, FBX, Collada (DAE), 3DS, AMF and VRML too. Stands the model upright for the new format and fixes metres vs millimetres. Runs in your browser; the model is not uploaded.
EML Email Viewer
Open and read .eml email files online — view the message, headers and attachments without Outlook or any email client. Parsed locally in your browser; nothing is uploaded.
Hex Viewer
Inspect the raw bytes of any file in a classic offset / hex / ASCII dump, with magic-number file-type detection. Read locally; never uploaded.