How to View and Convert STL Files Online (Free, No Upload) [2026]
STL, OBJ, GLB, PLY. Four formats that look similar from the outside but serve very different purposes. This guide covers what each one is for, how to open any of them in a browser without installing software, how to convert STL to OBJ or GLB for Blender or web use, and why keeping your CAD files off third-party servers matters.

Table of Contents
What is an STL file and who uses it
STL stands for Standard Tessellation Language, sometimes called Standard Triangle Language. It was created by 3D Systems in 1987 as an output format for stereolithography printers, and it has been the lingua franca of 3D printing ever since. Every slicer program (PrusaSlicer, Cura, Bambu Studio, ChiTuBox) and almost every CAD application (Fusion 360, SolidWorks, FreeCAD, Blender, OpenSCAD) can export STL.
The format represents a 3D surface as a collection of triangles. Each triangle stores a normal vector (pointing outward from the surface) and three vertex coordinates. That is all. STL knows nothing about:
- Color or texture maps
- Material properties (roughness, metalness, emission)
- Scene hierarchy or multiple objects
- Animations or rigging
- Units (it stores raw numbers; millimeters is assumed by convention)
STL files exist in two variants. Binary STL is the compact form: a fixed-size header, a triangle count, and a packed binary record for each triangle. It is smaller and faster to parse. ASCII STL is human-readable text that starts with the keyword solid and spells out every normal and vertex as floating-point numbers. For anything beyond a few hundred triangles, ASCII STL becomes impractically large and slow to load. Most exporters default to binary.
The dominant use cases for STL are 3D printing (slicers consume STL), CNC machining exports from CAD tools, and legacy file exchange between engineers. Outside of those contexts, STL has largely been superseded by richer formats for visualization, game development, and web use.
STL vs OBJ vs GLB vs PLY: what each format is for
The four formats supported by the SammaPix 3D Viewer serve different needs. Choosing the wrong format for a pipeline wastes conversion steps and sometimes loses data.
| Format | Geometry | Materials/Color | Animation | Best for |
|---|---|---|---|---|
| STL | Triangles only | None | No | 3D printing, slicers, CAD exchange |
| OBJ | Polygons (n-gons) | Basic (MTL file) | No | DCC apps, Blender, Maya, wide compatibility |
| GLB/glTF | Triangles + scene | Full PBR + textures | Yes | Web 3D, game engines, AR/VR, Three.js |
| PLY | Polygons + point clouds | Per-vertex color | No | Photogrammetry, 3D scanning, research |
STL. Use STL when your destination is a 3D printer or a slicer. It is the most universally supported format in that pipeline. Do not use STL when you need color, materials, or animations.
OBJ. OBJ is the safest choice for moving geometry between applications that do not share a native format. Almost every 3D application (Blender, Maya, 3ds Max, Cinema 4D, Houdini, Rhino) can import and export OBJ. The geometry is stored as plain text, which makes it easy to inspect and debug. A companion .mtl file can carry diffuse color and basic texture references, though support varies across importers.
GLB / glTF. glTF was designed specifically for real-time rendering. The binary container (GLB) packs everything into a single file: geometry buffers, PBR material parameters, textures, skeleton bones, and animation clips. Three.js, Babylon.js, React Three Fiber, Unity, Unreal, and WebXR all support GLB natively. If your target is the web or a game engine, GLB is the modern standard. It loads significantly faster than OBJ because it is already in a GPU-friendly binary layout.
PLY. PLY originated in the Stanford Computer Graphics Laboratory as a flexible format for 3D scan data. It supports per-vertex custom properties (color, confidence, intensity), which makes it the standard output format for photogrammetry tools (Meshroom, RealityCapture, COLMAP) and structured-light scanners. It is less common in production pipelines than the other three formats.
Open any 3D file in your browser, no upload
Drop an STL, OBJ, GLB, GLTF or PLY file. Orbit controls, mesh stats, export to any format. Runs entirely via Three.js locally.
Open 3D Viewer, FreeHow to view an STL file in a browser (step by step)
Viewing a 3D file in a browser requires a WebGL-capable renderer. Three.js is the most widely used JavaScript 3D library and handles all the heavy lifting: parsing the file, building a vertex buffer, uploading it to the GPU, and running a render loop with orbit controls.
- Open the 3D Viewer. Go to sammapix.com/tools/3d-viewer in any modern browser (Chrome, Firefox, Safari, Edge). No sign-up, no extension needed.
- Drop your file. Drag an STL, OBJ, GLB, GLTF, or PLY file onto the drop zone. Alternatively, click the zone to open a file picker. The file is read by the browser File API and handed directly to the Three.js loader. No bytes leave your device.
- Navigate the model. Drag with the left mouse button to rotate around the model (orbit). Scroll to zoom. Drag with the right mouse button or two fingers to pan. The camera uses damping so rotation feels smooth.
- Check the stats panel. The right panel shows triangle count, vertex count, bounding box dimensions in mm or inch, approximate volume (for closed meshes), and surface area. Toggle between mm and inch with the button in the panel header.
- Take a screenshot. Click the Screenshot button in the toolbar above the canvas. The tool captures the current WebGL canvas as a PNG via
canvas.toBlob()and downloads it. Rotate to the angle you want before clicking.
The viewer uses Three.js loaders matched to the file extension: STLLoader for STL, OBJLoader for OBJ, GLTFLoader for GLB and GLTF, and PLYLoader for PLY. Each loader is dynamically imported only when needed, so the initial page load stays lightweight.
For large files, loading may take a few seconds on mobile devices since the parser runs on the main thread. The renderer targets 60 fps and includes studio lighting (ambient, key, fill, and rim lights) plus a grid ground plane for orientation reference.
Converting STL to OBJ or GLB for Blender and the web
Once your file is loaded in the 3D Viewer, the Export row appears below the canvas. Click any format button (STL, OBJ, GLB, PLY) to download a converted version immediately. The conversion happens locally using Three.js exporters.
STL to OBJ: when to choose this
Convert STL to OBJ when your target application is Blender, Maya, Cinema 4D, or another DCC tool that handles OBJ well. The conversion is a straight format rewrite: the triangle list is serialized as v (vertex), vn (vertex normal), and f (face) statements in the OBJ text format. No geometric information is lost. Because STL has no color or material data, the resulting OBJ also has no material file. You will need to assign materials manually in Blender after import.
# Blender import path for converted OBJ File > Import > Wavefront (.obj) Then: Materials tab > New > set Principled BSDF
STL to GLB: when to choose this
Convert STL to GLB when your target is a web-based renderer, a game engine, or an AR/VR platform. GLB is the format Three.js, Babylon.js, React Three Fiber, Unity (via the glTF importer), Unreal (via the Interchange plugin), and model-viewer all expect as their native input. The resulting GLB will contain the geometry with a default Principled BSDF-equivalent material using the standard gray color applied by the viewer. You can edit the material in Blender after import by opening File > Import > glTF 2.0 (.glb/.gltf).
GLB is significantly more efficient than OBJ for web delivery. Vertex data is stored as binary typed arrays (Float32Array) rather than ASCII text, so a GLB is typically 30 to 60% smaller than an equivalent OBJ for the same mesh. The GPU uploads the buffer directly without a parsing step.
A note on triangle count after conversion
When converting STL to OBJ or GLB via Three.js, the triangle count is preserved exactly. There is no decimation or remeshing. If your STL has 200,000 triangles, your OBJ or GLB will also have 200,000 triangles. For 3D printing, this is correct behavior. For real-time rendering, you may want to decimate the mesh in Blender (Modifier > Decimate) to reduce the polygon count before using it in a game engine or on the web.
Convert STL to OBJ or GLB, no upload
Drop your STL. Click the export format. Download the converted file. Runs locally via Three.js exporters. No server, no account.
Why no-upload matters for proprietary CAD files
Most online 3D viewers work by uploading your file to a remote server for parsing and rendering. The server returns either a rendered image or a streaming WebGL session. This is technically convenient but has serious implications when the file contains proprietary geometry.
Consider what an STL file from a CAD tool actually contains: the exact three-dimensional shape of a part. That shape may represent:
- Aerospace components. The geometry of a structural bracket, fitting, or housing can reveal manufacturing methods and tolerances that are covered by export control regulations (ITAR in the US, EAR, or equivalent).
- Medical device designs. The geometry of an implant or instrument may be a patented design that should not be transmitted to third-party servers.
- Consumer product internals. The enclosure shape, mounting boss positions, and connector cutouts of an unreleased product are competitive intelligence.
- Client deliverables under NDA. If you are a contract engineer working under NDA, uploading your client's geometry to any third-party service may breach the agreement.
The SammaPix 3D Viewer processes everything using the browser's File API and Three.js running locally. The file is read into an ArrayBuffer in memory. It is parsed in the browser JavaScript context. The resulting geometry is uploaded to the GPU via WebGL. No network request carries your geometry data to any server at any point. You can verify this in Chrome DevTools: open the Network tab, load a 3D file, and filter for requests. You will see the Three.js library modules loading (which are static assets), but no outgoing request containing your file content.
What about 3MF?
3MF (3D Manufacturing Format) was developed by the 3MF Consortium (Microsoft, Autodesk, HP, Stratasys, and others) as a modern replacement for STL in the 3D printing pipeline. Unlike STL, 3MF can store:
- Color and material per triangle or per vertex
- Print settings (layer height, infill, supports) embedded in the file
- Multiple objects in a single file with positions and orientations
- Metadata (author, creation date, description)
The 3MF Consortium has published the format specification openly, but production-quality browser support is limited because the Three.js ecosystem does not include a maintained 3MF loader. The format is an XML-based ZIP archive, which makes it straightforward to parse in principle, but edge cases (multi-material meshes, print settings extensions) add complexity.
If you need to view or convert a 3MF file in a browser today, the practical approach is: open the 3MF in PrusaSlicer, Bambu Studio, or Windows 3D Viewer, export it as STL, and then open the STL in a browser viewer. PrusaSlicer supports all the major 3MF extensions and exports clean, valid STL files.
Reading mesh statistics: triangles, bounding box, volume
The stats panel on the right side of the viewer shows seven values computed directly from the vertex buffer without any server-side processing.
Triangle count. The number of triangles in the mesh. This is the primary complexity metric. For 3D printing, triangle count affects slicer parse time but does not directly affect print quality. For real-time rendering, triangle count directly affects GPU draw call cost. A typical game asset is 1,000 to 50,000 triangles. A high-detail 3D scan or CAD export can be millions.
Bounding box (X, Y, Z). The axis-aligned bounding box dimensions in mm or inch. These are the raw values from the vertex coordinates. As noted above, STL files do not store units. The viewer assumes millimeters. If your file was designed in inches, multiply each dimension by 25.4 to get the correct mm value.
Volume (approx.). Volume is computed using the divergence theorem applied to each triangle (signed volume summation). This gives an exact result for closed watertight meshes. For open meshes (meshes with holes or boundary edges), the result is an approximation and may not correspond to the enclosed physical volume. The value is in mm cube or in cube depending on the selected unit.
Surface area. The sum of all triangle areas in the mesh, in mm squared or in squared. Useful for material cost estimation (how much resin, how much powder) and for comparing two meshes with similar visual appearance.
Batch converting multiple 3D files at once
The viewer includes a Batch Convert mode (accessible via the tab at the top of the tool) that lets you convert multiple STL, OBJ, GLB, GLTF, or PLY files to a single target format and download them as a ZIP archive. Single-file view and conversion is free. The batch ZIP mode requires a Day Pass ($2.99, valid for 24 hours on all SammaPix tools) or a Pro plan.
The batch workflow is fully client-side. Each file is loaded, parsed, and converted by Three.js locally. The resulting blobs are packed into a ZIP using JSZip, also running locally. Nothing is uploaded at any point in the batch flow.
Practical use case: a designer receives a set of 12 STL parts from a manufacturer and needs to import them all into Unity. Rather than converting each file individually, they drop all 12 into the batch panel, select GLB as the target format, and download a ZIP with 12 GLB files ready to drag into the Unity project folder.
3D file tools for designers and engineers
View STL files in WebGL, convert to OBJ or GLB, batch convert multiple files to ZIP. All browser-based. No upload. No software install.
Related tools
- 3D Model Viewer: view and convert STL, OBJ, GLB, GLTF, PLY in your browser. Orbit controls, mesh stats, export to any format. No upload.
- SVG to PNG: rasterize SVG vector files to PNG at any resolution. Useful for exporting 2D design elements from the same pipeline as 3D assets. See the SVG to PNG developer guide.
- Image to Base64: encode texture images as Base64 Data URIs for embedding in glTF JSON files or HTML without a separate file request.
FAQ
What is an STL file?
STL (Standard Tessellation Language, sometimes called Standard Triangle Language) is the most widely used format for 3D printing and CAD export. It describes a 3D surface as a mesh of triangles, storing the normal vector and three vertices for each triangle. STL files come in two variants: binary (compact, smaller file size) and ASCII (human-readable text). STL does not store color, texture, material, or scene hierarchy. It is purely geometry. Slicers like PrusaSlicer, Cura, and Bambu Studio all read STL natively.
What is the difference between OBJ, GLB, and PLY?
OBJ is a plain-text geometry format from Wavefront that supports polygon meshes and can reference a separate .mtl file for materials. It is widely supported across CAD, game engines, and DCC tools but does not support animations or scene graphs. GLB is the binary container format for glTF (GL Transmission Format), designed for efficient delivery of 3D models on the web and in real-time engines. It can store geometry, materials, textures, animations, and a scene hierarchy in a single file. PLY (Polygon File Format) originated from point cloud data in computer vision and 3D scanning. It stores vertices and faces and can carry per-vertex color and custom properties, making it common in research and photogrammetry workflows.
Is it safe to open proprietary CAD files in an online viewer?
It depends on the tool. Many online 3D viewers upload your file to a server for parsing. For proprietary 3D geometry, aerospace parts, product design files, or medical device models, this is a serious IP risk. The SammaPix 3D Viewer runs entirely in your browser using Three.js and the File API. Your 3D file is never transmitted anywhere. You can verify this by opening browser DevTools, going to the Network tab, loading a file, and observing that no outgoing request contains your file data.
Should I convert STL to OBJ or GLB for Blender?
Both OBJ and GLB are supported natively in Blender 3.x and later. OBJ is the safer choice for pure geometry without materials since it is a well-established text format and easier to inspect or edit in a text editor if something goes wrong. GLB is better when you want to carry PBR materials and textures through the conversion, or when your target is a web-based renderer or game engine. For basic mesh work in Blender (modeling, sculpting, decimation, remeshing), OBJ is usually simpler. For game assets or web 3D, GLB is the modern standard.
What is 3MF and can I open it in a browser?
3MF (3D Manufacturing Format) is an XML-based format developed by the 3MF Consortium (Microsoft, Autodesk, HP, and others) as a successor to STL for 3D printing. Unlike STL, 3MF can store color, material, print settings, and support structures in a single file. Browser support for 3MF is limited because the format is complex and the Three.js ecosystem does not include a production-ready 3MF loader. For 3MF, desktop tools like PrusaSlicer, Windows 3D Viewer, or Microsoft 3D Builder are the most reliable options. You can convert 3MF to STL first in one of those tools and then open the STL in any browser viewer.
Why does my STL have a different size in the browser than in my slicer?
STL files do not store physical units. The numbers in the vertex coordinates are dimensionless. A slicer assumes millimeters by convention. A browser-based viewer also assumes millimeters. If your STL was designed in inches and exported without scaling, a measurement of 1.0 that you intended to mean 1 inch will read as 1 mm in the viewer. The fix is to scale in your CAD tool before export (multiply by 25.4 to convert inches to mm) or to use an STL unit-aware tool at export time. Many slicers detect this mismatch and prompt you to scale on import.