Skip to content
Novus Examples
ply557 B

PLY — NaN Vertex Coordinates

A structurally perfect ASCII PLY in which one vertex reads `nan nan nan` — the value an exporter writes after dividing by a zero-length vector. The header, counts and face list are all correct, so the file parses; every bounding box, centroid and normal computed from it is then poisoned.

ply

model/ply

557 B
Format
PLY (ASCII)
Vertices
8
Faces
12
Nan Vertices
1
Nan Literal
nan
Header Valid
true

Binary ply — no in-browser preview. Download it above to open in a compatible application.

Specifications

Format
PLY (ASCII)
Vertices
8
Faces
12
Nan Vertices
1
Nan Literal
nan
Header Valid
true
Geometry Valid
false

Testing contract

Expected to fail
Scenario
Parse the file, compute the bounding box, and compute a per-face normal for each of the three faces touching vertex 6.
Expected result
Parsing succeeds; the bounding box and those three normals are NaN. A robust importer rejects or repairs the vertex instead of propagating NaN into the scene graph.

What is a .ply file?

PLY (.ply, Polygon/Stanford Triangle Format) is a flexible 3D format storing a list of vertices and faces with arbitrary per-element properties (position, colour, normals, confidence), in ASCII or binary. It is standard for scanned meshes and point clouds.

How to use this file

Use an example .ply file to test mesh/point-cloud parsers (Open3D, MeshLab), per-vertex colour handling, and PLY conversion.

How to use this file for testing

“PLY — NaN Vertex Coordinates” is a deterministic Novus Examples fixture for Mesh repair testing, Error handling. A watertight mesh paired with a deliberately broken twin (holes, missing faces, open ends) — the input and intended result for a mesh-repair / hole-filling tool.

Documented properties for this file: PLY (ASCII). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

3D and CAD fixtures carry one small, documented solid or scene. Convert and inspect against the known geometry, units, and structure; format twins let you diff interchange fidelity, and the 3D viewer previews the actual mesh.

Code examples

import trimesh  # pip install trimesh

mesh = trimesh.load("nan-coordinates.ply")
print(mesh.bounds, mesh.faces.shape)

Generated by generation/models_p7.py. Free for any use, no attribution required — license.