pytorch-pointcloud
A PyTorch library for deep learning on point clouds: models, pretrained weights, datasets, transforms and inferers,
behind one create_model factory in the spirit of timm.
|
Object classification pointnet2-ssg.modelnet40.xu-yan
|
Part segmentation pointnext-sm.shapenetpart.openpoints
|
Indoor segmentation / detection ptv3-base.scannet20.pointcept
|
|
Outdoor segmentation / detection spvcnn-119gmacs.semantickitti.mit-han-labsecond.kitti.openpcdet
|
Large scale segmentation utonia-lp.scannet20.pointcept
|
Features extraction sonata-lp.scannet20.fair
|
🎉 Highlights
- 35 architectures for classification, part and semantic segmentation, 3D detection and self-supervised pretraining: PointNet, PointNet++, DGCNN, KPConv, RandLA-Net, PointNeXt, PointMLP, PointConv, PVCNN, Point Transformer V1/V2/V3, SpUNet, SPVCNN, OctFormer, SphereFormer, Sonata, Concerto, Utonia, Point-MAE, Point-BERT, PointGPT, PointMamba, VoteNet, 3DETR, PointPillars, SECOND, PointRCNN, VoxelNeXt, LION and more.
- 134 pretrained checkpoints, each carrying its benchmark metrics measured through this library with the
reference protocol, and loaded with a single
create_model(..., pretrained=True). - Datasets with download and preprocessing: ModelNet40, ScanObjectNN, ShapeNetPart, S3DIS, ScanNet, SemanticKITTI, nuScenes, KITTI, SUN RGB-D, Paris-Lille-3D, Semantic3D and Toronto3D.
- Transforms as MONAI-style dict transforms with tensor-level functional equivalents, and inferers for the usual evaluation protocols (test-time augmentation, voxel partition, sliding window, potential sphere voting).
- Packed batches everywhere: a flat $(N, \ldots)$ tensor plus a $(N,)$ batch index, never padded tensors.
- Fully typed (mypy strict), Python 3.10 to 3.13, an optional Lightning integration.
📦 Installation
pip install torch-pointcloud
The CUDA extensions (PyG kernels, spconv, flash-attention, Mamba, ocnn, torchsparse) are optional and only needed by the architectures that use them. See the Installation page for the exact install command.
🚀 Quickstart
import torch
import torch_pointcloud as tp
model = tp.create_model(
"pointnext-sm.scanobjectnn.openpoints",
task="classification",
pretrained=True,
).eval()
pos = torch.randn(2048, 3) # (N, 3) coordinates
x = torch.cat([pos, pos[:, 1:2] - pos[:, 1].min()], dim=1) # (N, 4) features: xyz + height
batch = torch.zeros(2048, dtype=torch.long) # (N,) batch index
with torch.no_grad():
logits = model(x, pos, batch) # (1, 15)
Every checkpoint ships the transform that turns a raw point cloud into what the network expects:
model, info = tp.create_model("ptv3-base.scannet20.pointcept", task="segmentation", pretrained=True, return_info=True)
info["transform"] # the preprocessing pipeline of that checkpoint
info["weights"]["metrics"] # {"mIoU": 76.29}
tp.list_models("pointnext*") # every registered PointNeXt config
tp.list_models(task="detection", pretrained=True) # all detection checkpoints
The examples directory for hands-on usage (benchmarks and training recipes).
📚 Documentation
The documentation covers installation, a get-started guide, the model zoo, datasets, transforms, tutorials and the full API reference.
📝 Citation
If you find this project useful, please consider citing:
@article{pytorch-pointcloud,
title={PyTorch PointCloud},
author={Arthur Dujardin},
journal={GitHub},
year={2026}
}
📄 License
Apache 2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file torch_pointcloud-0.0.1.tar.gz.
File metadata
- Download URL: torch_pointcloud-0.0.1.tar.gz
- Upload date:
- Size: 542.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89a4f243e8cd282f12002c9e891cd7e6f701e2bdded8b347bf8f99184b3daea2
|
|
| MD5 |
6900c931e5ad22a4457a122a0805632b
|
|
| BLAKE2b-256 |
316379bdb50988a75a8e30a837f77cb368f1b6e75aafa66cc6701383962b5bd6
|
File details
Details for the file torch_pointcloud-0.0.1-py3-none-any.whl.
File metadata
- Download URL: torch_pointcloud-0.0.1-py3-none-any.whl
- Upload date:
- Size: 650.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47edbde4f86942cf903de10dd99be22f1a803caae9d3dd9aec330dcd60c42524
|
|
| MD5 |
afff77b75a36df19b383685a2b52fbd0
|
|
| BLAKE2b-256 |
45ae3cb3e869b90a7aa79497d5170299e3193ea87aaa6f02184078120643301f
|