About¶
torch-pointcloud is a PyTorch library for deep learning on point clouds: models, pretrained weights, datasets, transforms, losses, metrics and inferers. The design was heavily inspired by timm and PyTorch Geometric. Point clouds expect packed batches, the PyG layout, so a model trained on one benchmark runs in another codebase without changing the tensor layout.
This project is independent and has no affiliation with the PyTorch team.
Scope¶
torch-pointcloud does not replace research codebases such as Pointcept, OpenPCDet and MMDetection3D. Instead this project focuses on providing a common interface for different models to ease benchmarking and reusability of common architectures without reinventing the wheel every time.
Design¶
- Packed batches. Every point cloud is \((N, \cdot)\) with a
batchindex, nothing is padded. See the data format page. - One factory and a registry.
create_model(name, task=..., pretrained=...)builds every model. A name reads<arch>[-<size>][.<dataset>[.<author>]]and ships weights when it ends with an author tag.model_infoandlist_modelsread the registry without building anything. - Dict transforms. A transform reads and writes the keys it is given and returns a new dict, like MONAI. The preprocessing of a checkpoint is a transform like any other.
- Free functions.
ops,losses,metricsandoptimare functions over tensors and dicts, with the argument names ofsklearn,torchmetricsandtorch.optim. - Inferers. Running a model on a scene larger than one forward pass (tiling, windows, test-time augmentation) is a reusable object.
- Optional kernels.
spconv,flash-attn,mamba,ocnn,torchsparseandsptrare imported lazily. A model that needs one raises anImportErrornaming it, and the rest works without it.
Citation¶
If you find this project useful, please cite it as follows:
@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¶
The code is Apache-2.0, see LICENSE. Pretrained weights keep the license of their source, listed in THIRD_PARTY_NOTICES.md.
Contributing¶
Bug reports and feature requests go through the issues, fixes through pull requests. CONTRIBUTING.md has the development setup and the checks a pull request runs. CODE_OF_CONDUCT.md applies to every contribution.