Deep learning on point clouds, with PyTorch.
Models, pretrained weights, datasets, transforms and inferers, in the style of
timm and
PyG.
Documentation · Model zoo · Tutorials · Changelog
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. Read the installation documentation for further details.
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 information about the model, such as the transform used to preprocess the input, metrics, license and more.
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.
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 (create_model warns when loading them). Most were trained on research-only datasets, whose terms
also apply to the weights.
See THIRD_PARTY_NOTICES.md.
Metadata
Release files for torch-pointcloud 0.0.14
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.14.tar.gz | 583.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| torch_pointcloud-0.0.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / torch_pointcloud-0.0.14.tar.gz
| Download URL | torch_pointcloud-0.0.14.tar.gz |
|---|---|
| Size | 583.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
14f1789286da8c4cdb6d8e462ddb544a733fb4a909408060fb85a3464ab4584c
|
|
BLAKE2b-256 checksum How to use checksums |
c25a2dccff3f3265c4158451de7cf691b94699d38f1a942de79d11653c89e12e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.14-py3-none-any.whl
| Download URL | torch_pointcloud-0.0.14-py3-none-any.whl |
|---|---|
| Size | 716.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21b572931f4e22f501a124bcf61fc151fcf908d836ff7771e58c6867838d460d
|
|
BLAKE2b-256 checksum How to use checksums |
7c69b93ad63fa90c9b58e043a0d97874928329cee46f06e8bfc71a0e78896c8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}
|