PLY is the format that 3D scanning, photogrammetry and research pipelines reach for when a mesh needs more than geometry — colour, normals, confidence values and other per-vertex properties. A PLY viewer opens those files in the browser so you can inspect a scan or mesh without installing software or uploading sensitive data. This guide explains what PLY is, how the ASCII and binary variants differ, how to open one locally, and how PLY compares with OBJ and STL for scan data.
What PLY Is
PLY stands for Polygon File Format, and it is also called the Stanford Triangle Format after the university group that introduced it. It was designed to store the output of 3D scanning, where a surface comes with rich, per-point data — not just where each point is, but what colour it is, which way its normal points, and sometimes how confident the scanner was. That flexibility is why PLY is the natural home for scan and photogrammetry results.
Point clouds and meshes in one format
The same container covers two different things, and knowing which one you have matters:
- A point cloud is a set of vertices, often millions, with no faces connecting them. It is the raw output of a laser scan or a dense photogrammetry pass.
- A mesh adds faces that connect those vertices into a surface. Photogrammetry tools usually produce a mesh, sometimes with vertex colours; scanners may hand you a cloud first and a mesh after reconstruction.
A PLY file describes its contents in a short header at the top, listing the elements (vertices and, if present, faces) and the properties each element carries.
ASCII vs binary: which to use
PLY comes in two encodings, and the choice is a real trade-off, not a preference.
| Variant | How it stores data | Best for | Downside |
|---|---|---|---|
| ASCII | Plain text, one vertex per line | Debugging, scripting, small files, diffing by eye | Large and slow to parse on huge scans |
| Binary (little/big endian) | Packed bytes, same fields | Production scans, millions of points, sharing | Not human-readable; needs a real viewer |
ASCII is what you use when a human or a script needs to read the file — checking the header, verifying that property names are what you expect, or generating a tiny test file. Binary is what you use when the scan is large: the same points occupy far less space and load faster. If someone sends you a 400 MB PLY from a scanner, it is almost certainly binary, and a text editor will only show you garbage.
Why Open a PLY in a Viewer
Scans are heavy and often private. Uploading a client's scan to a random web service is both slow and unnecessary. A local browser viewer reads the file from your disk and draws it on your own machine using WebGL, so the file never leaves your device. That makes it practical to check a scan the moment it arrives — confirm the file is complete, see whether the surface has holes, and judge the density — before spending time in heavier software.
How to Open a PLY in the Browser
The viewer below is the same tool as the PLY viewer page, so you can follow these steps right here.
- Use the viewer above. It parses the file locally; nothing is uploaded.
- Select the
.plyfrom your device. The model appears on a dark stage once it has been read. - Orbit, zoom and pan. Drag to rotate, scroll or pinch to zoom, and right-click drag or two-finger drag to pan. Use reset camera to reframe, or fullscreen for a closer look.
- Read the surfaces. The viewer draws PLY meshes in a plain gray material, so evaluate shape, holes and topology — not colour.
- Convert if you need to. The browser 3D converter writes binary PLY from GLB, glTF, OBJ, STL and VOX, and can also convert a PLY to glTF, OBJ or STL.
Two honest caveats about this viewer. First, it displays PLY meshes with a plain gray material and does not display per-vertex colours stored in the file, even though those colours may still be present in the data and can be preserved when converting. Second, it draws surfaces; a file that contains only a bare point cloud with no faces may not render as a surface the way a full mesh does. If a scan looks empty, check whether it actually contains faces.
PLY vs OBJ vs STL for Scan Data
These three formats overlap, but for scan and reconstruction work they are not interchangeable.
| Feature | PLY | OBJ | STL |
|---|---|---|---|
| Vertex colour | Yes, per-vertex | No standard field | No |
| Extra per-vertex properties | Yes, declared in header | No | No |
| Faces | Optional | Yes | Yes (triangles only) |
| Materials / textures | No | Via separate .mtl | No |
| ASCII form | Yes | Always | Yes or binary |
| Binary form | Yes | No | Yes |
| Typical use | Scans, photogrammetry, research | Geometry exchange | 3D printing, CAD |
| Units | Unspecified | Unspecified | Unspecified |
Reading the table
PLY wins whenever the per-point data matters. It can carry colour and arbitrary properties such as scanner confidence, and it has both a text and a packed binary form so the same format scales from a toy example to a production scan. OBJ is a geometry carrier with a materials sidecar, but it has no place for per-vertex colour or custom properties, and no binary form. STL is the narrowest option: triangles only, no colour, no properties, and — like the others — no unit, so only relative size is meaningful. For archiving a scan with its colour, PLY is the format that keeps the most of what the scanner produced. If you only need the shape for printing, see the STL viewer guide for what STL keeps and drops.
Practical Notes for Working with Scans
- Check the header first if you can. In an ASCII PLY, the
element vertexandelement facelines tell you immediately whether you have a cloud or a mesh, and how big it is. - Expect no colour in the preview. The browser 3D viewer is for shape, not appearance. If you need to verify vertex colours, open the file in software that renders them.
- Large binary scans need a capable machine. The viewer sets no size limit of its own, but memory and graphics hardware decide what actually loads, and phones struggle with dense clouds.
- Decimate before sharing widely. Scan meshes are often far denser than a delivery target needs; reducing them makes files portable.
- Remember there are no units. Say what one unit means when you hand a scan to someone else, or they will guess.
If your goal is to animate a character rather than inspect a scan, PLY is the wrong end of the pipeline — that work belongs in a motion format. Our own tool turns a text prompt into a 3D human-motion draft you can preview and export as FBX or JSON, which is a different job from viewing scan geometry.
FAQ
Is PLY a point cloud or a mesh format?
It can be either. The same container stores vertices alone (a point cloud) or vertices plus faces (a mesh). The header declares which elements are present, so you can tell by reading it.
What is the difference between ASCII and binary PLY?
ASCII PLY stores data as plain text, which is readable but larger and slower for big scans. Binary PLY packs the same fields as bytes, so it is far more compact and faster to load, but not human-readable. Use ASCII for debugging and small files, binary for production scans.
Is my PLY file uploaded when I use the viewer?
No. The browser reads the file from your device and parses it locally with JavaScript, so nothing is sent to a server. Closing or reloading the page discards the model.
Why is my PLY model shown in gray without colours?
The viewer draws PLY meshes with a plain gray material and does not display per-vertex colours stored in the file. The colours may still be present in the data and can be preserved when converting; they are simply not shown in the preview.
Can a browser viewer open a PLY point cloud with no faces?
It is a mesh renderer, so a file that contains only points and no faces may not appear as a surface. If a scan looks empty, check whether the PLY actually includes face elements. Converting to a mesh first gives the viewer something to draw.
Is PLY better than OBJ or STL for scan data?
For scans, PLY is usually the best fit because it can carry per-vertex colour and extra per-vertex properties, and it offers both ASCII and binary forms. OBJ carries geometry plus a materials sidecar but no per-vertex colour, and STL carries triangles only.