PLY Viewer: Open Point Clouds and Scan Meshes for Free

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.

VariantHow it stores dataBest forDownside
ASCIIPlain text, one vertex per lineDebugging, scripting, small files, diffing by eyeLarge and slow to parse on huge scans
Binary (little/big endian)Packed bytes, same fieldsProduction scans, millions of points, sharingNot 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.

  1. Use the viewer above. It parses the file locally; nothing is uploaded.
  2. Select the .ply from your device. The model appears on a dark stage once it has been read.
  3. 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.
  4. Read the surfaces. The viewer draws PLY meshes in a plain gray material, so evaluate shape, holes and topology — not colour.
  5. 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.

FeaturePLYOBJSTL
Vertex colourYes, per-vertexNo standard fieldNo
Extra per-vertex propertiesYes, declared in headerNoNo
FacesOptionalYesYes (triangles only)
Materials / texturesNoVia separate .mtlNo
ASCII formYesAlwaysYes or binary
Binary formYesNoYes
Typical useScans, photogrammetry, researchGeometry exchange3D printing, CAD
UnitsUnspecifiedUnspecifiedUnspecified

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 vertex and element face lines 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.