Drop a STEP, IGES, BREP or mesh file to preview it here.
PERSP
Free online OBJ viewer
Open a Wavefront .obj file with its object groups intact — select and hide them individually, cut a section, measure a distance. The file is parsed in this tab and never uploaded.
Drop 3D files hereor click to browse — nothing leaves your browser
Drop your .obj file onto the viewer above. A JavaScript mesh loader parses the OBJ text in a Web Worker, triangulating polygons as it goes and computing normals where the file has none. Nothing is uploaded — the page reads the file you picked and keeps it on your device.
Browse the object groups. OBJ o and g groups arrive as separate entries in the tree, so you can select, hide and inspect each piece. Color by part gives each one a distinct color, which is the fastest way to see how the file is organised.
Measure, section and check the counts. Pick two points to measure with snapping, drag a section plane to look inside, and read per-object triangle count, bounding box, surface area and volume from the Properties panel.
What OBJ files are, and what writes them
OBJ is a plain-text mesh format from the world of computer graphics. It stores vertices, normals, texture coordinates and polygon faces, and nearly every 3D application — Blender, Maya, 3ds Max, game engines, renderers — can read and write it, making it a dependable lowest common denominator for mesh exchange.
Blender, Maya, 3ds Max, ZBrush, Cinema 4D and nearly every asset store export OBJ, and scanning tools use it as a neutral output. It is the plain-text lowest common denominator of mesh exchange, which is why it is still everywhere.
Human-readable and easy to debug
Universally supported across DCC tools and engines
Carries UVs and normals for texturing workflows
Best for: Exchanging textured meshes between modeling and rendering tools. There is a fuller write-up on the OBJ format reference page.
What you can inspect in OBJ files here
Object and group structure — one of the few mesh formats here where the tree is usually meaningful.
Per-object triangle counts and bounding boxes, after n-gons have been triangulated.
Section planes and snapped point-to-point measurement.
Whether the file has usable normals: if it did not, the viewer computed flat ones, which shows up as hard shading on curved surfaces.
Every format on this site also gets the same viewport tools: orbit, pan and zoom with fit-to-view, isometric and the six standard views, a perspective/orthographic toggle, shaded, shaded-with-edges, wireframe and X-ray display, hide-selected, and a PNG screenshot of the current view. The same controls are on the general 3D and CAD viewer, which accepts every importable format at once.
What this viewer does not show for OBJ
Worth knowing before you rely on it. A viewer that overstates what it can read wastes more of your time than one that is specific about its limits.
Materials live in a separate .mtl file and textures in separate image files. Only the file you dropped exists inside the page, so an OBJ renders in the default grey and its UV coordinates go unused.
Free-standing lines and points (l and p elements) carry no surface and are not drawn — only polygon faces become geometry.
No units. Coordinates are shown as stored, with a millimetre label.
Smoothing groups affect shading only and are not reconstructed; where the file omitted normals the viewer generates them per face.
Nothing is edited or re-exported by the viewer itself.
OBJ at a glance
OBJ files
Extensions
.obj
Geometry
Polygon mesh
Units
No
Colors & materials
Via MTL sidecar
Animations
No
Typical use
DCC tool interchange
OBJ has no unit declaration, so the dimension readout shows the file’s own numbers with a millimetre label. Compare it against a known feature if the scale matters.
Convert OBJ instead of just viewing it
OBJ can be both read and written here, so the useful conversions are into formats that keep materials in one file, or into a printable mesh. The converter runs on the same local pipeline as this viewer, so a conversion is just as private as a preview: OBJ to GLB is the usual choice.
Can I open an OBJ file together with its .mtl and textures?
No. The page only receives the single file you drop, and it does not fetch neighbouring files from your disk, so materials and textures cannot be resolved. If appearance matters, convert the model to GLB in a tool that has all the files, since GLB packs geometry and materials into one file.
Why is my OBJ grey?
Because its color lives in the .mtl sidecar, which is not part of the file. The geometry, groups, counts and dimensions are all exactly as authored — only the material assignment is missing.
Does the viewer keep my object groups?
Yes. Each o or g group becomes its own entry in the tree with its own visibility toggle and its own properties, so a multi-part OBJ is inspectable piece by piece.
Is the OBJ file uploaded?
No. Parsing happens in a Web Worker in your browser. The text of the file is never sent anywhere.
What does OBJ store, and how much of it does the viewer show?
Geometry: polygon mesh. Units: no. Colors and materials: via mtl sidecar. Animations: no. Of that, the viewer draws geometry and flat base colors; texture maps and animation are never displayed. OBJ has no unit declaration, so the dimension readout shows the file’s own numbers with a millimetre label. Compare it against a known feature if the scale matters.
If the model is heavier than it needs to be, the mesh simplifier reads .obj directly, decimates it in your browser and previews the result before you export. If the file is headed for a 3D printer, the G-code viewer shows the sliced toolpath layer by layer once your slicer has run.