3D File Viewer
One viewer for six formats. Select a file and MeshWrench automatically detects whether it's STL, OBJ, 3MF, GLB, PLY or binary FBX, then opens it locally in your browser — no upload required.
Your file stays on this device. MeshWrench detects its format and renders it locally in your browser.
Up to 150 MB. STL, OBJ, 3MF, GLB, PLY, and binary FBX 7.0–7.7 are all supported — format is detected from content, not the file name. You can also drag and drop a file here.
Processed locally — nothing was uploaded.
- File
- File size
- Detected format
- Detection confidence
- Width
- Height
- Depth
Model structure
Materials
Supported formats
How to use the 3D File Viewer
- Select any STL, OBJ, 3MF, GLB, PLY or binary FBX file using the picker above — or drag one onto the page.
- MeshWrench inspects the file's actual bytes and identifies its real format, entirely on your device.
- The matching format's own tested viewer engine loads and resolves the file in a background worker.
- Drag to rotate, scroll to zoom, and use the panel below the viewport to fit the view, toggle wireframe, switch color/shading modes, or show and hide individual parts.
How automatic detection works
Detection is based on file content, never a file's name or extension. GLB and binary FBX each have their own exact magic bytes; PLY requires a valid bounded header ending in end_header; a ZIP file is only
classified as 3MF once its actual package structure — content types and a resolvable model relationship — is confirmed, never just because it's a ZIP; binary STL is verified against its exact declared-triangle-count byte
length; ASCII STL and OBJ are identified from coherent structural evidence in a bounded prefix of the file's text, not a guess from a single keyword. If a file's extension disagrees with what its content actually is,
MeshWrench opens it according to the content and shows a brief mismatch note — the file itself is never renamed or modified. If content can't be confidently identified at all, MeshWrench shows a clear, safe message rather than
guessing from the extension.
Format-specific capabilities
Every format keeps its own real capabilities here — nothing is reduced to the lowest common denominator. STL shows triangle geometry. OBJ shows faces, lines, points and object/group structure. 3MF shows its real build/component hierarchy, declared unit and embedded colors. GLB shows its real node hierarchy, core PBR materials, embedded base-color textures, and points/lines. PLY shows surfaces, explicit edges and point clouds independently, with vertex colors and normals. Binary FBX shows its real model hierarchy, Lambert/Phong materials, embedded textures, and axis/unit normalization. Each dedicated viewer remains available for a format-focused workflow — this page automatically routes to the right one.
Units and dimensions
MeshWrench never invents a unit a format doesn't declare. OBJ and PLY have no measurement unit at all, so dimensions show in plain model units. 3MF's declared unit is preserved and converted to millimeters for reference. glTF/GLB always uses meters. Binary FBX's own declared unit scale and axis system are normalized to meters and a right-handed, Y-up system when they're fully and consistently declared — and left as raw model units, with a clear note, when they aren't.
Materials, colors and textures
STL, OBJ and PLY have no material system MeshWrench renders (OBJ material names are shown for reference only, never fetched). 3MF's embedded base-material and color-group colors render directly. GLB's core metallic-roughness materials and embedded base-color textures render, decoded entirely from bytes already in the file. Binary FBX's Lambert/Phong diffuse materials and embedded PNG/JPEG textures render the same way. No format's externally-referenced texture or media file is ever fetched.
Limitations
- ASCII FBX is detected but rejected with a clear message — only binary FBX 7000–7700 is supported.
- Animation, rigging, skinning and blend shapes are never applied in any format — only a static base mesh renders.
- A generic ZIP archive that isn't a valid 3MF package is rejected, not guessed at.
- Content that can't be confidently identified as one of the six supported formats is rejected with a clear message rather than a guess.
- Every format's own existing safety limits (triangle/vertex/node/file-size ceilings) still apply — this page never weakens them.
Is my file uploaded?
No. There is no server-side file-processing route in MeshWrench at all. Your browser reads the file, detects its format, hands its bytes to the matching Web Worker running on your device, and renders the result with WebGL — also on your device. You can verify this yourself: open your browser's developer tools, watch the network tab, and load a file. No request containing your file, or any value found inside it, will appear.
Frequently asked questions
Is my file uploaded?
No. Every format is read and resolved entirely in your browser, inside the exact same background Web Worker its own dedicated viewer uses. It's never sent to a server — check your browser's network tab while a file loads to confirm this yourself.
How does automatic format detection work?
By content, never by file extension. MeshWrench checks a bounded prefix of the file's actual bytes for each format's own real signature — glTF's binary magic, FBX's binary magic, a PLY header, a genuine 3MF package structure (not just any ZIP), STL's exact binary length formula, or coherent OBJ text records. A misleading extension is only ever used to show a mismatch warning, never to override what the content actually is.
What happens if MeshWrench can't identify my file?
You'll see a clear, safe message listing the six supported formats, with no guess based on the file's extension. Nothing is dispatched to a parser for content that couldn't be confidently identified.
Does this replace the dedicated format viewers?
No — it complements them. Each dedicated viewer (STL, OBJ, 3MF, GLB, PLY, FBX) still exists as its own focused page and remains the single source of truth for parsing that format. This page automatically picks the right one for whatever file you give it.
Does opening this page download every format's code?
No. Only the shared 3D viewport and the one adapter matching your file's detected format are ever loaded. Choosing an OBJ file never downloads the FBX or GLB parsing code, and vice versa.
Which browsers are supported?
Any recent version of Chrome, Firefox, Safari or Edge with WebGL and Web Worker support.
Explore free tools