Embed this tool on your site
About this tool
3D Model Viewer lets you inspect GLB, GLTF, OBJ, and STL files directly in your browser without installing any software. Powered by Three.js (loaded on demand from CDN), the viewer sets up a WebGL scene, adds orbit controls for mouse and touch interaction, and centers and scales each model so it fits the view on load. You can switch between three lighting setups — none, studio (ambient plus key and fill lights on a dark background), and outdoor (brighter lights with a sky-blue background). Wireframe mode shows the mesh topology, useful for inspecting geometry. An info panel shows the file name and triangle count. The screenshot button captures the current viewport as a PNG. Your model files never leave your device — everything runs in the browser's WebGL context.
Why use it
No installation — works instantly in any modern browser.
Supports the four most common 3D formats: GLB, GLTF, OBJ, STL.
Models stay on your device — zero server upload or storage.
Triangle count readout helps you judge mesh density at a glance.
Touch-friendly orbit controls work on phones and tablets.
No installation — works instantly in any modern WebGL-capable browser, including mobile Safari and Chrome.
How to use
- Drop a .glb, .gltf, .obj, or .stl file onto the drop zone, or click to browse.
- The model loads automatically with the camera fitted to its bounding box and a default studio environment applied.
- Rotate with left-click drag, pan with right-click drag, and zoom with the scroll wheel (or pinch on mobile, single-finger drag to rotate).
- Select a lighting environment from the dropdown (None / Studio / Outdoor).
- Toggle wireframe view, reset the camera, or download a PNG screenshot using the toolbar buttons.
When it helps
- Quickly checking a 3D model before sending it to a client or colleague.
- Inspecting mesh topology and geometry in wireframe mode for QC before importing to Unity, Unreal, or Blender.
- Checking an STL's shape and orientation before sending it to a slicer.
- Sharing a screenshot of a model without sending the original file.
- Quickly checking a 3D model before sending it to a client, colleague, or 3D print service.
Examples
InputBinary STL file of a tabletop miniature, 12 MB
Expected resultWebGL preview with outdoor lighting and a triangle count of ~250k — enough to inspect the mesh before slicing.
InputGLB of a low-poly weapon with PBR textures, 4 MB
Expected resultFull-shaded preview with embedded textures under studio lighting, plus a PNG screenshot at the viewport size for review.
InputOBJ export of a mechanical part, 8 MB, no material file
Expected resultGray-shaded preview in outdoor lighting — wireframe toggled on to inspect topology and confirm the part is manifold.
Tips
- For STL files use Outdoor lighting to get the best contrast on surface normals — STL has no material data so lighting is your only cue for shape.
- Wireframe mode is invaluable for spotting duplicate faces, holes, or non-manifold geometry that would cause slicer errors.
- The viewport size is fixed when the first model loads (up to 500 px tall at up to 2× pixel density), so widen the browser window before opening a model if you want a larger screenshot.
- GLB is the best format for this viewer as it bundles geometry, materials, and textures in a single self-contained binary file.
- If a GLTF model loads as gray, its textures are stored separately and the browser cannot reach them; re-export as GLB to bundle everything.
- For very large meshes (>1M triangles), expect lower frame rates on mobile — the viewer is best for inspection rather than animation playback.
Frequently Asked Questions
Which 3D file formats are supported?⌄
GLB (binary GLTF), GLTF (JSON GLTF with external assets in the same folder), OBJ (plain text mesh), and STL (stereolithography, binary or ASCII). FBX and BLEND are not currently supported.
Are textures and materials displayed for GLTF files?⌄
Yes for self-contained GLB files where textures are embedded. External texture references in GLTF files require those files to be in the same directory, which browsers cannot access from a single file upload.
Why does my OBJ model appear gray?⌄
OBJ files loaded without an MTL material file default to a neutral gray standard material. The geometry is still correct.
How are dimensions calculated?⌄
The size figures in the info panel come from the bounding box combined with the auto-fit scale factor, so the numbers labelled mm are not a reliable physical measurement. Check true dimensions in your slicer or CAD software.
Does this work on mobile?⌄
Yes. Orbit controls support pinch-to-zoom and single-finger rotate on touch devices. Performance depends on GPU capability — complex meshes may be slow on older phones.
My model loads but appears black or invisible. Why?⌄
The model may have inverted normals, be very small/large (outside camera frustum), or rely on textures that didn't load. Try switching to wireframe mode to inspect the geometry, or try the Outdoor environment for stronger lighting.
Glossary
- GLB
- A binary container format for GLTF that bundles geometry, materials, and textures into a single self-contained file — the recommended format for runtime delivery.
- GLTF
- GL Transmission Format — an open Khronos standard for 3D scenes and models, designed for efficient runtime delivery to WebGL/WebGPU; can reference external textures or be packed as GLB.
- OBJ
- A plain-text mesh format from Wavefront that stores vertices, faces, and texture coordinates; widely supported but lacks animation, scenes, and PBR materials.
- STL
- Stereolithography format — a simple binary or ASCII mesh format used almost exclusively for 3D printing; stores only triangle vertices and normals, no colour or material data.
- Mesh
- A collection of vertices, edges, and faces (typically triangles) that together describe the surface of a 3D object.
- Texture
- A 2D image mapped onto a mesh to give it surface detail (albedo/diffuse colour, roughness, metallic, etc.) without adding extra geometry.
- Normal map
- A texture that encodes surface normal directions in RGB channels, allowing low-poly meshes to display the lighting of high-poly detail without extra geometry.
- Bounding box
- The smallest axis-aligned box that completely contains a 3D object, used to compute size and auto-fit the camera.
- Orbit controls
- A camera controller that allows rotating around a target point, panning, and zooming — the standard navigation metaphor for 3D viewers.
A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.
Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.
✳
✳
✓ Free to use✓ No sign-up✓ 500+ possibilities