plyfile
PLY file reader/writer
What it is and what it does
plyfile is a Python library for reading and writing PLY (Polygon File Format) files in both ASCII and binary forms. PLY is a standard format for storing 3D geometry data—vertices, faces, edges, and custom properties—commonly used in computer graphics, 3D scanning, and computational geometry workflows. The library wraps numpy arrays to represent mesh elements, making it straightforward to load PLY data into scientific Python pipelines or export computed geometry back to PLY format.
The package is actively maintained, supports modern Python versions (3.10–3.14), and depends only on numpy. It is licensed under GPLv3+, which means any code that modifies or redistributes plyfile must also be open-source under a compatible license. The library is stable (Production/Stable status) and has been in use since 2015, with a recent release cycle indicating ongoing support.
Use it for:
- Load 3D point clouds from LiDAR or photogrammetry scans stored as PLY files for analysis or visualization.
- Export mesh geometry computed by a 3D modeling or CAD algorithm back to PLY format for external tools.
- Batch convert PLY files between ASCII and binary formats to optimize storage or transmission.
- Extract and manipulate vertex attributes (position, color, normal, etc.) from PLY data using numpy operations.
- Integrate PLY I/O into scientific visualization or computational geometry pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
plyfile reads and writes ASCII and binary PLY (Polygon File Format) files, commonly used for 3D mesh and point cloud data.
Yes. plyfile is a straightforward, well-maintained library for a specific and widely-used file format. Low install friction, no security issues, and active development make it a safe choice for projects needing PLY support. The GPLv3+ license is a constraint only if you need to distribute proprietary software; for internal or open-source use, it poses no barrier.
Install
plyfile on PyPI
pip
pip install plyfileuv
uv add plyfilepoetry
poetry add plyfileInstalling plyfile
Before you install
Installs with low friction—a pure Python wheel with only numpy as a runtime dependency. Actively maintained with a recent release (17 days old) and no known vulnerabilities.
License in practice
Released under GPLv3+, a copyleft license. Any derivative work or modification must also be licensed under GPLv3+; proprietary applications cannot incorporate plyfile as a library without adopting the same license.
Quickstart
pip install plyfile
from plyfile import PlyData
ply_data = PlyData.read('model.ply')
vertices = ply_data['vertex'].data
Requires Python 3.10 or later.
Verify before relying
- Whether the package handles malformed or truncated PLY files gracefully or with specific error modes.
- Performance characteristics on large PLY files (e.g., multi-gigabyte point clouds).
- Whether binary format support includes all PLY-specified data types and endianness variants.
Package facts
| License | GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license… (full text in the JSON record) (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 17 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,107,280/month — #4,362 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: plyfile-1.1.5-py3-none-any.whl
Keywords: ply, numpy
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
numpy-stlReads, writes, and modifies STL mesh files…
permissive · top 15,000 on PyPI
rhino3dmrhino3dm provides Python bindings to OpenNURBS…
permissive · top 15,000 on PyPI
lib3mflib3mf reads, writes, and validates 3D…
permissive · top 15,000 on PyPI
meshioplusplusmeshioplusplus reads and writes mesh files in…
permissive · top 15,000 on PyPI
py-lib3mfProvides Python bindings to Lib3MF, enabling…
permissive · top 15,000 on PyPI
pyshpPyShp reads and writes ESRI Shapefiles in pure…
permissive · top 5,000 on PyPI
PyGEL3DPyGEL3D provides Python bindings for a C++…
permissive · top 15,000 on PyPI
meshioReads and writes mesh files in dozens of…
permissive · top 5,000 on PyPI
pycolladapycollada reads, writes, and edits COLLADA 3D…
permissive · top 5,000 on PyPI
pygltflibReads, writes, and manipulates GLTF and GLB 3D…
permissive · top 5,000 on PyPI