Skip to content
STLBench

Free online PLY viewer

PLY viewer that keeps the colour the scanner captured

A .ply opens here in either encoding, with no account and nothing sent anywhere, and its per-vertex colour is rendered rather than thrown away — which is what most viewers do to scan output. Below the model: its dimensions, how many of the stored points survive welding, its surface area, and the count of edges left hanging open. That last figure is the one that decides a scan's fate, because reconstructions are almost never closed, and this page reports it instead of printing a volume that would be fiction.

  • 100% free
  • No signup
  • Vertex colours rendered
  • ASCII and binary
  • Nothing uploaded
Convert to

Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.

How to open a PLY file

Three steps, and you know how much of the scan is actually usable.

  1. Drop the .ply

    Both encodings are read — ASCII, which is legible and roughly four times larger, and binary, little-endian or big-endian, which is what a scanner writes. The header is plain text in every case, so if you are ever unsure what a PLY contains, opening the first twenty lines in a text editor tells you exactly which properties per vertex it declares.

  2. See the colour that other viewers drop

    When the file declares red, green and blue properties per vertex, those colours are rendered — interpolated across each triangle the way the scanner intended. A great many viewers ignore vertex colour and show a grey mesh, which for photogrammetry output means throwing away most of what was captured. The line under the file name confirms which case you have.

  3. Read the two vertex counts

    Scan output is full of near-duplicate points, and the panel reports both what the file stores and what survives welding onto a grid one millionth of the model's diagonal. A large gap means heavy duplication; an equal pair means the mesh was already cleaned. The watertight row is the other one to check — raw scans are almost never closed, and the volume figure stays blank rather than inventing a number.

Technical specifications

Extension.ply — Stanford Triangle Format
EncodingsASCII and binary, both endiannesses
KeptGeometry, per-vertex colour, normals when present
Not drawnPoint clouds — files with vertices and no faces
Typical source3D scanners and photogrammetry reconstruction
UnitsNone stored; scans usually arrive in whatever the rig used

Frequently asked questions

What is a PLY file?

The Stanford Triangle Format, written in the mid-1990s to distribute the scanned models that became graphics research staples — the bunny, the dragon, Michelangelo's David. Its distinguishing idea is a self-describing header: the file declares which properties each vertex carries before listing them, so one reader handles files that store colour, or confidence values, or surface normals, or nothing but coordinates. That extensibility is why scanners and photogrammetry tools still write it thirty years on.

Why does my PLY have no volume?

Because it is almost certainly not a closed surface, and volume is only defined for one. A scan captures what a camera or laser could see: the underside of the object, the parts in shadow and anything the rig could not reach come back as holes. The panel counts the edges with a triangle on one side and nothing on the other, which puts the size of the problem in a single number. Closing those holes is what mesh repair does, and it is a separate operation — a viewer that guessed a volume for an open surface would be making the number up.

Can it open a point cloud?

Not usefully. A PLY that declares vertices and no faces is a point cloud, and this page is built around triangles: it would load the points and then have nothing to draw or measure, since area, volume and edge counts all assume faces. Meshed PLY output — the usual result of a photogrammetry reconstruction — is what this page is for. For raw clouds, CloudCompare is the free tool that does the job properly.

Why are the colours flat or missing?

Two different causes. If the line under the file name says “no colour data”, the file has no red/green/blue vertex properties at all — the colour lived in a texture the scanner exported separately, or the export dropped it. If it says “vertex colours” but the model still looks washed out, that is the nature of vertex colour: it interpolates across a triangle, so its detail is limited by how dense the mesh is. A low-poly reconstruction cannot hold photographic colour no matter how good the photographs were.

Is PLY good for 3D printing?

It is a fine container and a poor starting point, for a reason that has nothing to do with the format. Scans are open surfaces with noise and duplicated points, and a slicer needs a closed solid — so the work is repair, decimation and possibly remeshing, and only then a conversion to STL or 3MF. This page is the first step of that: it tells you how open the surface is and how much duplication is in it before you decide which tool to reach for.

How big can a scan be before this struggles?

There is no hard limit; a scan larger than 100 MB gets a warning about memory rather than a refusal. For binary PLY with colour, 100 MB is around 2 million vertices. The practical limit arrives earlier than the memory one: welding builds a table with one entry per stored point, so a several-million-point scan spends a few seconds in that pass before the first frame appears. Once it is drawn, orbiting stays smooth — the cost is in the measuring, which happens once.

About PLY and the meshes scanners produce

PLY was designed at Stanford around one requirement: describe an arbitrary set of per-vertex measurements without inventing a new format each time. The header declares the properties — x, y, z, then perhaps red, green, blue, then perhaps confidence or intensity — and the body lists them in that order. A reader that understands the header understands every dialect, which is why the format absorbed thirty years of scanning hardware without breaking. It is the opposite design philosophy to STL, which fixed its contents forever and gained universality by having nothing to negotiate.

What makes scan meshes distinctive is not the container but their defects, and they are worth naming because they decide what you can do next. They are open, because a scanner sees surfaces rather than solids. They carry duplicated points where passes overlapped, which is why this page reports stored and welded counts side by side. They are dense in a way that has no relationship to the shape's complexity — a flat wall gets as many triangles as a detailed edge. And their colour lives on the vertices, so it thins out exactly where the mesh does.

The consequence for anyone trying to print a scan is that format conversion is the smallest part of the job. Repairing the holes, reducing the point count and checking wall thickness all come first; only then does it matter whether the file ends up as STL or 3MF. Both of those would drop the vertex colour anyway — 3MF can carry colour, but not the per-vertex kind a scan produces, which is one more reason to keep the PLY as your master file.

Where your scan is read

Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.

One clause specific to this page: scans are frequently of people, places and objects that are nobody else's business. Nothing about that file — its geometry, its colours, its name — is transmitted or stored, because there is no endpoint here to transmit it to.