# torch-points3d: the manifest says 0.2.0, the newest release is 1.3.0, and every model link points at the old owner

> A PyTorch framework for point cloud tasks, wrapping fourteen published models behind a Hydra configuration tree. Its dependency pins, its license field and its own documentation links disagree with each other in ways that decide whether your install works on the first try.

**torch-points3d/torch-points3d** — Pytorch framework for doing deep learning on point clouds.

- Repository: https://github.com/torch-points3d/torch-points3d
- Website: https://torch-points3d.readthedocs.io/en/latest/
- Stars: 2,718 · Forks: 402
- Language: Python
- License: NOASSERTION
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/torch-points3d-torch-points3d

## The manifest reads 0.2.0 while the releases stop at 1.3.0

The package manifest declares version 0.2.0, with a comment on that line reading This will be overriden by the CI at publish time. That comment is the reason the two numbers differ, and it is the only explanation on offer. The published releases tell the other side of the story: 1.3.0 on 2021-04-30, 1.2.0 on 2020-12-18 and 1.1.1 on 2020-08-04. So the version you read from a clone is not the version you install from an index, and there is no tag in the visible list that matches the string in the file. The names in that list are also inconsistent, since the parenthetical field after 1.3.0 reads v 1.3.0 with a space, after 1.2.0 it reads 1.2.0, and after 1.1.1 it reads Bug fix rather than a version string. The most recent commit recorded for the repository is dated 2026-08-24, more recent than every tag above.

## Every model link on the page still points at the previous owner

The project now lives under the torch-points3d organization, and the documentation has not moved with it. Each implemented model links into a path that begins github.com/nicolas-chaulet/torch-points3d, for example the PointNet module reference and the directory links for PointNet++, RSConv, RandLA-Net, PointCNN, KPConv and MinkowskiEngine. The coverage and build badges at the top do the same, pointing at nicolas-chaulet for the continuous integration and coverage services. So a reader following any source link is sent to a different repository path than the one they cloned, and whether that path redirects is not something the page states. The chat link has the same shape of problem in a different form: the Slack invite points at the torchgeometricco workspace, which is the PyTorch Geometric community rather than a room of this project's own.

## The recommended Docker image ships a PyTorch the manifest does not allow

The requirements section asks for CUDA 10 or higher for a GPU build, Python 3.7 or higher with headers, and PyTorch 1.8.1 or higher, with 1.9 or higher recommended. Then it recommends Docker as the smoother route and names an image.

```bash
docker pull pytorch/pytorch:1.10.0-cuda11.3-cudnn8-devel
```

That image carries PyTorch 1.10, while the manifest constrains the dependency as torch = "~1.8.0", which in Poetry means the 1.8 line and nothing above it. The page and the manifest therefore disagree about which PyTorch the project supports, and the image it tells you to pull is the version the manifest excludes. Two more pins narrow the same corner: numpy is held below 1.20.0, and torch-sparse is held between 0.6.10 and 0.6.13, a window three releases wide. Anyone following the Docker advice first and the manifest second will hit the resolver before they reach any model code.

## Three dependency files, one install command

The install line is short.

```bash
pip install torch-points3d
```

Underneath it there are three separate definitions of what gets installed. The Poetry manifest declares the runtime set, including hydra-core = "~1.0.0", open3d = "0.12.0", pytorch_metric_learning = "^0.9.87.dev0" and torch-points-kernels = "^0.7.0", with python = "^3.7" as the interpreter floor. A poetry.lock sits beside it, and a requirements.txt lists the same dependency graph fully pinned with environment markers, including Darwin only packages, a PyPy specific pin and Windows only colorama. The page mentions none of these three by name, so a reader has no statement about which of them is authoritative. Two placement details are worth noticing on their own: the type stubs types-six and types-requests are runtime dependencies rather than development ones, and the build backend is poetry.masonry.api rather than the current poetry-core.

## The license is described three ways and named in none

The license field recorded for this project is NOASSERTION, meaning no license was determined. The package manifest carries no license key at all: it has a name, a version, a description, two authors, a packages entry, a readme reference and a documentation link, and nothing else of that kind. The root of the tree holds a LICENSE.md file. Those three facts are the whole of what can be said here, and they do not resolve into a single answer. Nothing in the visible pages names a license, and this project is not in a position to guess which one the file contains or whether the file covers the code, the model weights or the documentation. Read LICENSE.md in the clone before you build on it, particularly if your use is commercial.

## The structure listing leaves out train.py, and the Makefile has one target

The project structure block is a short list, and it is worth reading literally.

```bash
├─ benchmark               # Output from various benchmark runs
├─ conf                    # All configurations for training nad evaluation leave there
├─ notebooks               # A collection of notebooks that allow result exploration and network debugging
├─ docker                  # Docker image that can be used for inference or training
├─ docs                    # All the doc
├─ eval.py                 # Eval script
├─ find_neighbour_dist.py  # Script to find optimal #neighbours within neighbour search operations
├─ forward_scripts         # Script that runs a forward pass on pos
```

Eight entries, two typos in the comments, and no train.py even though the tree has one at the root next to eval.py. The tree also holds examples, scripts, test, mypy.ini, a coverage config, a pre-commit config, a devcontainer directory, CHANGELOG.md, requirements.txt, poetry.lock and pyproject.toml, none of which the block mentions. The Makefile is smaller still: one phony target named staticchecks that runs flake8 with the select list E9,F402,F6,F7,F5,F8,F9 and then mypy torch_points3d. There is no make target for the tests, for training, or for evaluation.

## The tasks table ends inside its last row

Datasets and models are split by task, and five subfolders are named: segmentation, classification, registration, object_detection and panoptic, each holding the dataset for that task. That split is the organizing idea of the whole tree, and it is also the thing the tasks table fails to deliver. The table lists Classification / Part Segmentation, Segmentation, Object Detection, Panoptic Segmentation and Registration, with an Examples column beside each, and the last row stops partway through its first cell at the fragment Registration, with no closing markup and no example beside it. So the five datasets the framework is organized around are announced in one place and tabulated in another that does not finish. The examples column is empty in every visible row for the same reason, and the notebooks linked elsewhere on the page are the only worked material named.

## Fourteen models, six of them hosted in other repositories

Fourteen methods are listed as implemented: PointNet, PointNet++, RSConv, RandLA-Net, PointCNN, KPConv, MinkowskiEngine, VoteNet, FCGF, PointGroup, PPNet (PosPool), TorchSparse, PVCNN and MS-SVConv. How they are sourced differs, and the difference matters for reading the code. Seven link into paths under the project's own repository, while the rest link outward to other authors' trees: chrischoy/FCGF, Jia-Research-Lab/PointGroup, zeliu98/CloserLook3D, mit-han-lab/torchsparse, mit-han-lab/pvcnn and humanpose1/MS-SVConv. For those, the page points you at an upstream implementation rather than at a module in this repository. The list also carries small errors that make it harder to use as an index: the PointNet++ line names its author twice, from Charles from Charles R. Qi, two entries drop the period after et al, and the PVCNN entry is prefixed model for semantic segmentation where the others are not.

## Conclusion

This suits a researcher reproducing a published point cloud baseline who wants the model implementations in one tree with configs beside them. It does not suit a project that needs a current PyTorch: the manifest pins torch to the 1.8 line while the page recommends 1.9 or higher, numpy is capped below 1.20.0, and torch-sparse is held between 0.6.10 and 0.6.13. Before you commit, read three files in your own clone. LICENSE.md, because the license field for the project records NOASSERTION and the manifest has no license key at all. pyproject.toml, because its 0.2.0 version is overridden by CI at publish time and the tag list reaches 1.3.0. And the conf directory, because the page names no single entry point beyond train.py and eval.py at the root.

## FAQ

### What version of torch-points3d should I install?

The package manifest declares 0.2.0 with a comment that the CI overrides it at publish time, while the releases go 1.1.1 from 2020-08-04, 1.2.0 from 2020-12-18 and 1.3.0 from 2021-04-30. The last recorded commit on the repository is dated 2026-08-24, more recent than any of those tags.

### Which PyTorch version does torch-points3d support?

The requirements section asks for PyTorch 1.8.1 or higher and recommends 1.9 or higher, while the manifest constrains torch to the 1.8 line with torch = "~1.8.0". The Docker image it recommends, pytorch/pytorch:1.10.0-cuda11.3-cudnn8-devel, carries a PyTorch above that constraint.

### What license is torch-points3d released under?

The license field recorded for the project is NOASSERTION, the package manifest carries no license key, and the tree holds a LICENSE.md file. Neither visible page names a license, so the file in your own clone is the place to check.

### How do I install torch-points3d?

With pip install torch-points3d, after either a native setup or the recommended image pytorch/pytorch:1.10.0-cuda11.3-cudnn8-devel. The stated requirements are CUDA 10 or higher for the GPU version, Python 3.7 or higher with headers, PyTorch 1.8.1 or higher, and optionally a sparse convolution backend.

### Where are the configs for a torch-points3d run?

In the conf directory, which the structure listing describes as holding all configurations for training and evaluation, with train.py and eval.py at the root of the tree and notebooks for exploring results. Runs are driven through Hydra, which the framework relies on heavily.

### Which point cloud tasks does torch-points3d cover?

Datasets are split into five folders: segmentation, classification, registration, object_detection and panoptic. Fourteen models are listed as implemented, from PointNet and PointNet++ through KPConv, MinkowskiEngine, VoteNet, PointGroup, TorchSparse and PVCNN, several of which link to upstream repositories rather than to modules here.

## Sources

- [Issues](https://github.com/torch-points3d/torch-points3d/issues)
- [Project website](https://torch-points3d.readthedocs.io/en/latest/)
- [README](https://github.com/torch-points3d/torch-points3d/blob/master/README.md)
- [Releases](https://github.com/torch-points3d/torch-points3d/releases)
- [torch-points3d/torch-points3d on GitHub](https://github.com/torch-points3d/torch-points3d)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/torch-points3d-torch-points3d
