A PLY file is the Stanford Polygon format: a container that stores 3D geometry as a list of vertices and the faces connecting them. It is what LiDAR scanners, photogrammetry apps, and 3D research datasets write raw scan data into. Loft’s PLY viewer opens binary or ASCII PLY in a browser tab, in 3D, with nothing installed and nothing uploaded.
What a PLY file actually is
PLY came out of Stanford’s graphics lab in the mid-1990s, built to store scanned 3D objects — the famous Stanford Bunny ships as a PLY. The format is deliberately plain: a short header declares what each vertex carries (x, y, z, sometimes r, g, b, sometimes nx, ny, nz), then the body lists every element in that order. That simplicity is why it outlived flashier formats for scan work.
It comes in two flavours. ASCII PLY is human-readable — open it in a text editor and you can read the coordinates. Binary PLY packs the same data into raw bytes, which is smaller and faster but unreadable by eye. Loft parses both, including binary in little-endian and big-endian byte order, so a file from any scanner toolchain loads the same way.
Who needs to open one — and the usual pain
If you run a 3D scanner, shoot photogrammetry, or work with spatial datasets, PLY lands in your inbox or your output folder constantly. Apps like Meshroom, RealityCapture, and Polycam all export it; so do most LiDAR pipelines and academic datasets. The trouble starts when you just want to look at one.
The default answer is a desktop application — MeshLab, CloudCompare, Blender. All capable, all free, all a download-install-launch ritual before you see a single vertex. And the browser viewers that promise to skip the install usually upload your file to their server to render it. For a scan of a client site, a prototype part, or anything you’d rather not hand to a stranger’s backend, that upload is the whole problem.
How Loft’s viewer handles PLY
Drop a .ply onto the page — or use the file picker — and it renders immediately. Under the hood it runs the same engine as Loft’s other mesh viewers: a Three.js WebGL2 scene, shared across STL, OBJ, GLB, glTF, and 3MF. That shared core is why drag-and-drop format detection just works; the viewer sniffs the file rather than trusting the extension, so a mislabeled drop still opens.
The controls are the standard orbit set. Drag to orbit, right-click drag (or two fingers on a trackpad) to pan, scroll to zoom. A reset-camera button reframes the whole model in one click when you lose your bearings — and on a dense scan, you will. You can switch between shaded, wireframe, and shaded-with-edges render modes to read surface detail differently.
Two things make it more than a turntable. Point-to-point measurement: click Measure, click two points on the surface, and the distance prints in the status bar in the file’s native units. And a PNG screenshot button captures the current camera angle, which is the fast way to drop a scan into a slide or an email. The footer shows triangle count and file size so you know what you’re looking at, and the whole thing keeps working offline after your first visit because it’s cached as a PWA.
The privacy angle — nothing leaves the tab
Here’s the part that matters for scan data. Parsing and rendering both happen inside your browser tab. The PLY file is read into the page and handed straight to WebGL; it is never sent to a server, because there is no server in the loop. Loft’s whole model is local compute — the code that reads your file already lives on your machine after the page loads.
That’s the difference from the upload-based browser viewers. A scan of a building interior, a reverse-engineered part, an unreleased product captured in 3D — none of it has to travel anywhere for you to inspect it. You can open a confidential file on a borrowed or hotel computer and close the tab when you’re done; the bytes were never anywhere but local memory. If you want the longer version of how that works, the how-it-works pillar walks through the no-upload pipeline end to end.
Honest limits — what it does not do
This is a viewer, not an editor. It will render, orbit, measure, and screenshot your model, but it won’t let you edit it — no decimating, cleaning, retopologising, or re-meshing. For that you’re back to MeshLab, CloudCompare, or Blender, which is the right tool for surgery on a scan.
The bigger caveat is point clouds specifically. PLY is heavily used for raw point-cloud data, and Loft will open those — but it’s a mesh viewer at heart. Loose points come in as small triangulated patches rather than crisp individual points, so a dense LiDAR capture won’t look as clean as it would in a dedicated point-cloud tool. If you’re working with millions of raw points, something built for that job — Potree is the open one people reach for, and CloudCompare on the desktop — will serve you better. Loft is the fast “what’s in this file” check, not the dense-cloud workstation.
Colour is the other rough edge. PLY can carry per-vertex colour, and support for surfacing that cleanly is still limited in this release — geometry may render with a default shaded material rather than the scan’s captured colour. The geometry is always faithful; the paint job isn’t guaranteed yet. I’d rather flag that here than have you wonder why your colourful Polycam export showed up grey.
File size and what happens to big scans
The viewer accepts files up to 100 MB, which covers most single-object scans and a lot of small site captures. Parsing happens in the browser, so a genuinely huge mesh — multi-million triangles — can cause a brief pause while it’s read. That’s the cost of doing the work locally instead of on a server farm, and on most scans you won’t notice it. If a file is too dense to be comfortable, that’s usually the signal it belongs in a desktop tool anyway.
The technique worth knowing if you go down this road is mesh decimation — reducing triangle count while preserving shape. Run a decimation pass in MeshLab or CloudCompare before you bring a heavy scan into a viewer and everything downstream gets lighter. It’s a one-word thing to google that saves a lot of waiting.
There’s nothing to install, so there’s nothing that’s Windows-only. The PLY viewer runs in any modern browser — desktop Chrome, Edge, Firefox, Safari, and the mobile versions of all of them. Open a scan on an iPad in a review meeting, on an Android phone in the field, on a Linux box where half the desktop CAD tools won’t even install. The same tab, the same scene, the same measurements, on whatever’s in front of you. WebGL2 is the only real requirement, and every current browser has had it for years.
Takeaway
PLY is the lingua franca of 3D scanning, and most of the time you don’t need to edit a scan — you need to open it, turn it over, measure something, and grab a picture. Loft’s PLY viewer does exactly that in a browser tab, opening binary and ASCII PLY, on any device, without sending your file anywhere. Keep the desktop tools for editing and dense point-cloud work; reach for this when you just need eyes on the file fast.
Open a scan at /tools/open-tools/ply-viewer/. It shares its engine with the STL viewer and the OBJ viewer, so if you live in mixed-format scan folders, the same drag-and-drop habit opens all three.