PLY (file format)
   HOME

TheInfoList



OR:

PLY is a computer file format known as the Polygon File Format or the Stanford Triangle Format. It was principally designed to store three-dimensional data from 3D scanners. The data storage format supports a relatively simple description of a single object as a list of nominally flat polygons. A variety of properties can be stored, including color and transparency, surface normals, texture coordinates and data confidence values. The format permits one to have different properties for the front and back of a polygon. There are two versions of the
file format A file format is a standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file format ...
, one in
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
, the other in binary.


The file format

A Ply file starts with the "header" attribute, which specifies the elements of a mesh and their types, followed by the list of elements itself. The elements are usually vertices and faces, but may include other entities such as edges, samples of range maps, and triangle strips. The header of both ASCII and binary files is ASCII text. Only the numerical data that follows the header is different between the two versions. The header always starts with a " magic number", a line containing: ply which identifies the file as a PLY file. The second line indicates which variation of the PLY format this is. It should be one of the following: format ascii 1.0 format binary_little_endian 1.0 format binary_big_endian 1.0 Future versions of the standard will change the revision number at the end - but 1.0 is the only version currently in use. Comments may be placed in the header by using the word comment at the start of the line. Everything from there until the end of the line should then be ignored. e.g.: comment This is a comment! The element keyword introduces a description of how some particular data elements are stored and how many of them there are. Hence, in a file where there are 12 vertices, each represented as a floating point (X,Y,Z) triple, one would expect to see: element vertex 12 property float x property float y property float z Other property lines might indicate that colours or other data items are stored at each vertex and indicate the data type of that information. Regarding the data type, there are two variants depending on the source of the ply file. The type can be specified with one of char uchar short ushort int uint float double, or one of int8 uint8 int16 uint16 int32 uint32 float32 float64. For an object with ten polygonal faces, one might see: element face 10 property list uchar int vertex_index PLY implementations vary wildly in the property names. vertex_indices is more often used than vertex_index, for example in
Blender A blender (sometimes called a mixer or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary blender consists of a blender container with a rotating me ...
and
VTK The Visualization Toolkit (VTK) is an open-source software system for 3D computer graphics, image processing and scientific visualization.''Visualization Handbook'', Academic Press, 2005, Chapter 30: the Visualization Toolkit/ref> VTK is distribu ...
. The extended specification lists a "Core List (required)", "Second List (often used)" and "Third List (suggested extensions)" of property names. The word list indicates that the data is a list of values, the first of which is the number of entries in the list (represented as a 'uchar' in this case). In this example each list entry is represented as an 'int'. At the end of the header, there must always be the line: end_header


ASCII or binary format

In the ASCII version of the format, the vertices and faces are each described one to a line with the numbers separated by white space. In the binary version, the data is simply packed closely together at the endianness specified in the header and with the data types given in the property records. For the common property list... representation for polygons, the first number for that element is the number of vertices that the polygon has and the remaining numbers are the indices of those vertices in the preceding vertex list.


History

The PLY format was developed in the mid-90s by Greg Turk and others in the Stanford graphics lab under the direction of Marc Levoy. Its design was inspired by the Wavefront .obj format. However, the Obj format lacked extensibility for arbitrary properties and groupings, so the property and element keywords were devised to generalize the notions of vertices, faces, associated data, and other groups.


See also

*
STL (file format) STL is a file format native to the stereolithography CAD software created by 3D Systems. STL has several backronyms such as "Standard Triangle Language" and "Standard Tessellation Language". This file format is supported by many other softwar ...
, another common file format for 3D printing * Additive Manufacturing File Format *
Wavefront .obj file OBJ (or .OBJ) is a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file format is open and has been adopted by other 3D graphics application vendors. The OBJ file form ...
, a 3D geometry definition file format with ''.obj'' file extension *
glTF glTF is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb ( binary). Both .gltf and .glb files may reference external binary and texture resources. A ...
- a
Khronos Group The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation ...
file format for 3D Scenes and models.


Open source software

*
CloudCompare CloudCompare is a 3D point cloud processing software (such as those obtained with a laser scanner). It can also handle triangular meshes and calibrated images. Originally created during a collaboration between Telecom ParisTech and the R&D divis ...
having a focus on
point cloud Point or points may refer to: Places * Point, Lewis, a peninsula in the Outer Hebrides, Scotland * Point, Texas, a city in Rains County, Texas, United States * Point, the NE tip and a ferry terminal of Lismore, Inner Hebrides, Scotland * Poin ...
s with some additional functions for meshes. *
GigaMesh Software Framework The GigaMesh Software Framework is a free and open-source software for display, editing and visualization of 3D-data typically acquired with structured light or structure from motion. It provides numerous functions for analysis of archaeologic ...
: numerical computations on meshes in PLY (or OBJ). *
MeshLab MeshLab is a 3D mesh processing software system that is oriented to the management and processing of unstructured large meshes and provides a set of tools for editing, cleaning, healing, inspecting, rendering, and converting these kinds of meshes ...
: generic application for visualizing, processing and converting three-dimensional meshes to or from the PLY file format.


References


External links


Library of Congress Format Description

PLY - Polygon File Format



rply - An Ansi C software library for reading and writing PLY files (MIT license)

libply - A C++ software library for reading and writing PLY files (GNU license)


* ttp://graphics.stanford.edu/data/3Dscanrep/ A repository of 3D models stored in the PLY format CAD file formats 3D graphics file formats Computer-related introductions in the 1990s {{compu-storage-stub