Skip to content

Repository files navigation

Making point clouds fun again

pyntcloud logo

pyntcloud is a Python library for working with 3D point clouds leveraging the power of the Python scientific stack.

Installation

pip install pyntcloud

Quick Overview

You can access most of pyntcloud's functionality from its core class: PyntCloud.

With PyntCloud you can perform complex 3D processing operations with minimum lines of code. For example you can:

  • Load a PLY point cloud from disk.
  • Add 3 new scalar fields by converting RGB to HSV.
  • Build a grid of voxels from the point cloud.
  • Build a new point cloud keeping only the nearest point to each occupied voxel center.
  • Save the new point cloud in numpy's NPZ format.

With the following concise code:

frompyntcloudimportPyntCloudcloud=PyntCloud.from_file("some_file.ply")
cloud.add_scalar_field("hsv")
voxelgrid_id=cloud.add_structure("voxelgrid", n_x=32, n_y=32, n_z=32)
new_cloud=cloud.get_sample("voxelgrid_nearest", voxelgrid_id=voxelgrid_id, as_PyntCloud=True)
new_cloud.to_file("out_file.npz")

Integration with other libraries

pyntcloud offers seamless integration with other 3D processing libraries.

You can create / convert PyntCloud instances from / to many 3D processing libraries using the from_instance / to_instance methods:

importopen3daso3dfrompyntcloudimportPyntCloud# FROM Open3Doriginal_triangle_mesh=o3d.io.read_triangle_mesh("diamond.ply")
cloud=PyntCloud.from_instance("open3d", original_triangle_mesh)
# TO Open3Dcloud=PyntCloud.from_file("diamond.ply")
converted_triangle_mesh=cloud.to_instance("open3d", mesh=True) # mesh=True by default
importpyvistaaspvfrompyntcloudimportPyntCloud# FROM PyVistaoriginal_point_cloud=pv.read("diamond.ply")
cloud=PyntCloud.from_instance("pyvista", original_point_cloud)
# TO PyVistacloud=PyntCloud.from_file("diamond.ply")
converted_triangle_mesh=cloud.to_instance("pyvista", mesh=True)

About

pyntcloud is a Python library for working with 3D point clouds.

Topics

Resources

Code of conduct

Contributing

Stars

1.5k stars

Watchers

43 watching

Forks

Releases

Packages

Used by

Contributors

Languages