How to view a 3D or CAD file in your browser
- Drop a file onto the viewport. STEP, IGES and BREP are parsed by a full CAD geometry kernel compiled to WebAssembly; mesh formats load through JavaScript parsers in a Web Worker. One file at a time, and nothing is uploaded — the bytes are read straight off disk and stay in the tab.
- Walk the assembly and set up the view. The tree on the left lists every part by name: click to select, use the eye to hide a part or a whole subassembly. Switch between shaded, shaded-with-edges, wireframe and X-ray, snap to one of seven standard views, toggle orthographic, cut a section on X, Y or Z, or pull a multi-part model apart with the explode slider.
- Measure, inspect, and keep a picture of it. The measure tool takes a two-point distance and snaps to vertices and edges. The properties panel reports triangle count, bounding box, surface area and volume for the selected part, and the screenshot button saves the current view as a PNG named after your file.
What this viewer opens
Two different pipelines sit behind the drop zone. STEP, IGES and BREP are true CAD files holding exact boundary-representation surfaces; they go through a full CAD geometry kernel compiled to WebAssembly, which reads the product structure and tessellates each solid into triangles the GPU can draw. Everything else — STL, OBJ, PLY, glTF, GLB, 3MF, COLLADA, AMF, FBX, 3DS and OFF — is already a mesh and loads through a JavaScript parser.
The full readable list is STEP, IGES, BREP, STL, OBJ, PLY, GLB, glTF, 3MF, COLLADA, AMF, FBX, 3DS, OFF. Formats that only exist as conversion outputs, such as USDZ, are not readable here — the format reference says which direction each one works in, and the 3D converter is the tool for writing files rather than reading them. Printing toolpaths are a different animal and get their own G-code viewer.
Assembly tree, sections and display modes
A STEP assembly is not one lump of geometry, and the viewer does not flatten it into one. The left-hand tree mirrors the product structure with each part under its subassembly, keeping the names the CAD system wrote. Selecting a row highlights that part in the viewport, and clicking geometry in the viewport selects its row — the eye icon hides a single part or an entire branch, so you can strip a housing away and look at what is inside without editing anything.
The toolbar covers the inspection basics: shaded, shaded with edges (the default, because edges are what make a mechanical part readable), wireframe and X-ray; perspective or orthographic projection; and seven standard views — isometric, front, back, left, right, top, bottom. Section cuts the model with a plane on the X, Y or Z axis that you slide through it and can flip, which is how you check a wall thickness or an internal bore. Explode pushes parts apart along a slider and is available whenever a model has more than one part. Color by part gives every part its own hue for models that arrive colourless.
With the viewport focused, keyboard shortcuts do the same work: F fits the model, 0 is isometric, 1–6 are the orthographic views, H hides the selected part and Esc clears the selection and any measurement.
Measuring and inspecting parts
The measure tool takes a distance between two picked points and snaps to vertices and edges, with the snap target highlighted before you commit to it and the dimension drawn at the midpoint of the line, CAD-style. Selecting a part fills the properties panel with its name, triangle count, bounding box, surface area and volume.
Be clear-eyed about what those numbers are: everything is computed from the tessellated triangles, not from the original analytic surfaces, so a cylinder's volume is the volume of the faceted approximation. At the 0.1%-of-bounding-box tolerance used here that is close, and it is right for sanity-checking a clearance or a print size — it is not a replacement for the mass properties your CAD package reports. What tessellation quality actually controls explains the trade-off, and the converter exposes the tolerance as a setting when you need a finer mesh on export.
Why running locally matters for confidential CAD
Most online CAD viewers upload your file, convert it on a server and stream back a preview. For a part under NDA, an unreleased product or a supplier drawing, that single action is the problem: the geometry now exists on infrastructure you do not control, under a retention policy you did not read, often with a shareable link attached to it. Nothing about looking at a model requires that.
This page ships the geometry kernel to you instead of sending your file to the kernel. The kernel runs as WebAssembly in your tab, the renderer draws with WebGL on your GPU, and the only thing the network is used for is fetching the page itself — verifiable in the network tab, and unchanged whether you are online or not once it has loaded. It also means there is no queue, no file-size tier and no account. Is online CAD conversion safe? goes through what the alternatives actually do with your uploads.
Frequently asked questions
Is my model uploaded in order to view it?
No. The file is read from disk by your browser and rendered on your own GPU. There is no server-side conversion step and no upload endpoint — open the network tab while you load a model and you will see no request carrying it. That is the whole reason this viewer exists: NDA-covered geometry can be inspected without it leaving the machine.
Which files can it open, and are sidecar files supported?
Readable formats are STEP, IGES, BREP, STL, OBJ, PLY, GLB, glTF, 3MF, COLLADA, AMF, FBX, 3DS, OFF (.step .stp .iges .igs .brep .brp .stl .obj .ply .glb .gltf .3mf .dae .amf .fbx .3ds .off). It opens one file at a time and does not resolve references to neighbouring files, which matters in two cases: an OBJ renders in a neutral grey because its colours live in a separate .mtl, and a .gltf that points at external .bin buffers or texture files will not find them — export it as a single-file .glb instead.
How exact is the geometry, and can I trust the measurements?
STEP, IGES and BREP hold exact surfaces, but a GPU can only draw triangles, so the CAD kernel tessellates them on load at a tolerance of 0.1% of the model’s bounding box. Distances, surface areas and volumes are computed from those triangles, so they are close approximations rather than the exact analytic values your CAD system would report — good enough to check a clearance, not a substitute for an inspection report. Dimensions on this page are reported in millimetres.
Why is my model plain grey, and where did the textures go?
Each part keeps one flat base colour taken from its material; textures, PBR maps and lights in the source file are not rendered, because this is a geometry inspector rather than a rendering tool. When a model arrives with no usable colours, turn on "Color by part" — every part gets its own hue, which is usually more informative for a mechanical assembly than the original shading anyway.
How large a model can it handle?
There is no imposed limit; the ceiling is your device’s memory and GPU. Multi-hundred-megabyte assemblies do open, but tessellating a large STEP file takes time and the file is held in memory while it does. The status bar shows the live triangle count, draw calls and frame rate, so you can see when you are pushing it — hiding subassemblies from the tree is the fastest way to bring an unwieldy model back to an interactive frame rate.