pytorch-pointcloud
A PyTorch library for deep learning on point clouds: models, pretrained weights, datasets, transforms and inferers, inspired by timm.
Check out the documentation at pytorch-pointcloud.org!
|
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
|
Feature extraction sonata-lp.scannet20.fair
|
Installation
pip install torch-pointcloud
Most models also need pyg-lib, and some a CUDA extension (spconv, flash-attn, ...), built for your torch and
CUDA versions. The installation page writes the commands.
Quickstart
import torch
import torch_pointcloud as tp
# Requires pyg-lib
model = tp.create_model(
"pointnext-sm.scanobjectnn-hardest.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)
Each checkpoint ships the transform that turns a raw point cloud into what the network expects:
import torch_pointcloud as tp
# Requires spconv and flash-attn
model, info = tp.create_model("ptv3-base.scannet20.pointcept", task="semantic-segmentation", pretrained=True, return_info=True)
info["transform"] # the preprocessing pipeline of that checkpoint
info["weights"]["metrics"] # {"mIoU": 77.40, "OA": 92.01}
tp.list_models("pointnext*") # every registered PointNeXt config
tp.list_models(task="detection", pretrained=True) # all detection checkpoints
See the examples directory for benchmarks and training recipes.
Why torch-pointcloud?
torch-pointcloud is a library of pretrained models that makes common layers and backbones easy to reuse. It does
not replace research-first codebases such as
Pointcept, OpenPCDet and
MMDetection3D or OpenPoints
but it complements them with a common interface that makes benchmarking and interoperability across architectures easier.
It builds on PyG for the packed batch format and the neighbor search,
and adds what PyG does not ship for point clouds: the models, their weights, the datasets and the transforms.
Documentation
The documentation covers installation, a get-started guide, the model zoo, datasets, transforms, tutorials and the full API reference.
Contributing
Contributions are welcome. See CONTRIBUTING.md for the development setup and the pull request checks.
Citation
If you find this project useful, please consider citing:
@software{dujardin2026pytorchpointcloud,
author = {Dujardin, Arthur},
title = {PyTorch PointCloud},
year = {2026},
url = {https://github.com/arthurdjn/pytorch-pointcloud},
doi = {10.5281/zenodo.22159632},
license = {Apache-2.0}
}
License
Apache 2.0. See LICENSE.
Pretrained weights and adapted code keep the license of their source, and some checkpoints are restricted to non-commercial use. Most were trained on research-only datasets, whose terms also apply to the weights. See THIRD_PARTY_NOTICES.md.
Release files for torch-pointcloud 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| torch_pointcloud-0.0.8.tar.gz | 562.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| torch_pointcloud-0.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / torch_pointcloud-0.0.8.tar.gz
| Download URL | torch_pointcloud-0.0.8.tar.gz |
|---|---|
| Size | 562.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2fa84bfd88f43bcac100c476fbbb9bb0d2b47ae0c6cf8eb07149b6ce464b92e5
|
|
BLAKE2b-256 checksum How to use checksums |
e5513304c194a0ead90de6d1b84df278282771a16b14967375b18d2a021974b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / torch_pointcloud-0.0.8-py3-none-any.whl
| Download URL | torch_pointcloud-0.0.8-py3-none-any.whl |
|---|---|
| Size | 680.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e0556bf53d6d9abde1b742f914b990b03b0d9c97f1db27a7451df1bba4a4761
|
|
BLAKE2b-256 checksum How to use checksums |
d786db2552ffcac7181c478f7654f089293000623f863eaf225d500e9617491f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|