Open-source project
Pointcept/Pointcept avatar
Pointcept/Pointcept

Pointcept's README is a link index, not an install guide

Pointcept: Perceive the world with sparse points, a codebase for point cloud perception research. Latest works: Utonia (ICML'26), Concerto (NeurIPS'25), Sonata (CVPR'25 Highlight), PTv3 (CVPR'24 Oral)

3,244 stars414 forksPythonMIT

At a glance

What is it?
Pointcept ships configs, libs and per-dataset Python files for point cloud perception research, but the document you are pointed at is a table of tagged links with no install command and no package name.
Who is it for?
Pointcept is worth reading as a map of the point cloud perception literature rather than as a library to install, and the map is unusually candid about what lives where.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 24 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Three tags carry the whole taxonomy

Pointcept organises its work with short bracketed tags instead of prose documentation, and reading them tells you what kind of artefact each entry is. The newest works are tagged `[Pretrain]`: Utonia, Concerto, Sonata. Model architectures are tagged `[Backbone]`: PTv3, OA-CNNs, PTv2 and PTv1. One entry carries a task tag instead, `[SemSeg]` for the context-aware classifier. That is the entire classification scheme at the top of the file, three tags doing the work a table of contents would otherwise do, which says plainly that this repository is a switching board between methods rather than the documentation of one method. The same categories reappear further down in a second, longer list grouped by Backbone, Semantic Segmentation, Instance Segmentation and Pre-training. A reader hunting for instance segmentation finds exactly one name in that category, PointGroup, and a reader hunting for a backbone finds eleven.

The second list repeats the first and says so

Below the official implementations sits a second list, introduced as work Pointcept integrates and followed by the parenthetical contain above. That is an admission the two lists overlap, and the overlap is large: OACNNs, PTv1, PTv2, PTv3, Masked Scene Contrast, Point Prompt Training, Sonata, Concerto, Utonia and the context-aware classifier all appear in both. What the second list adds is everything Pointcept did not write. Its Backbone category reaches out to MinkUNet, SpUNet, SPVCNN, StratifiedFormer, OctFormer, Swin3D and LitePT, and its Pre-training category reaches to PointContrast and Contrastive Scene Contexts. Those outside names are bare links to their own repositories, with no venue line, no author list and no weight link. That difference in treatment is the one that matters in practice: the first list claims implementation, the second claims availability, and only the first tells you where the code for a method actually is.

Weights and inference code sit in three other places

For the newest entries the runnable artefact lives somewhere else entirely. Utonia links an inference repository and a weight file on Hugging Face, and Concerto links both as well, both under the same organisation as this codebase. The Point Transformer V3 backbone, tagged Oral at CVPR 2024, has a repository of its own rather than living here. The context-aware classifier is split by medium, with this repository holding the 3D part while the 2D part belongs to a separate project under another author's account. Sonata goes the other way: its demo and its weights both sit in a different organisation's namespace on Hugging Face. So following a paper to its weights can take you to three different hosts depending on the row, and the three newest methods are the ones that need a second repository before anything runs at all.

One label, five destinations

The same words mean different destinations depending on the row, which is the main way this index misleads a reader in a hurry. A demo link points at a hosted Hugging Face Space for Utonia and Concerto, but at a GitHub repository you have to run yourself for Sonata. Inference is a separate link from demo and points at a repository in the two newest rows, so you get both a page to try and the code to run. Citations are spread the same way: one row sends you to a citation anchor on a project page, several send you to plain bib.txt files on a personal domain, and the rest send you to arXiv. Count the hosts and you get five, GitHub, Hugging Face, arXiv, a GitHub Pages site and a personal domain, all carrying reference material for a single repository. Reading the individual row is the only dependable way to know which one you are about to open.

configs/ is grouped by dataset, not by model

The root listing includes a configs/ directory, and the one path from it that appears anywhere in the file is attached to Mix3d: configs/scannet/semseg-spunet-v1m1-0-base.py, linked down to its fifth line as the attribution for that mixed-in result. That single path says a lot about the layout. The first segment is the dataset, so configuration is grouped per dataset rather than per method. The file name then carries the task, the backbone, a version marker and a scale or variant marker in that order, which is why a SpUNet result can live under a scannet directory and still be named for the semseg task. Beside it the root holds libs/, pointcept/, scripts/ and tools/, and environment.yml, which is the only environment declaration in the listing.

environment.yml and no packaging file

The root listing is worth reading closely before anyone plans an install. It contains a LICENSE, a README, environment.yml, and directories for the package code, libraries, scripts, tools and configs, plus .github/ and .gitignore. It contains no packaging manifest, and the README gives no install command and never names the distribution you would pass to a package index, so there is no pip install line to copy and no requirement list to freeze. The conda environment file is the only declared environment. The practical consequence is that the two documented ways in are cloning a per-paper inference repository, or building the environment yourself from environment.yml and running from a checkout. Anyone who has come across this codebase described through pip will not find that path written down anywhere here.

Release tags are named after the newest paper

The three most recent releases are titled after the paper each one adds, which makes the version history read as a research log. v1.6.0 is titled for Sonata and was published on 2025-03-25. The patch that follows, v1.6.1, is titled for Concerto and dates from 2026-02-28. v1.7.0 is titled for Utonia and dates from 2026-04-02. The default branch, though, was last pushed on 2026-09-11, five months after that release, so the tip of main sits well ahead of the newest tag and anything pinned to a release is pinned to April. Note also which entries have no release named after them: PTv3 and OA-CNNs, both from 2024, appear in the README without a matching version, so a paper's presence in the file tells you nothing about which release contains its code.

One research group runs most of the list

Nine of the ten official implementations name the same two people, Xiaoyang Wu and Hengshuang Zhao, and the remaining authorships follow the same small circle: Yujia Zhang on Utonia and Concerto, Yixing Lao on Concerto and PTv2, Zhuotao Tian on OA-CNNs, the context-aware classifier and Point Prompt Training. The venues cluster just as tightly, with four of the ten at CVPR and the rest at NeurIPS, ICCV and AAAI, two of them marked Oral and Sonata marked Highlight, while the project description names Utonia as ICML'26. One entry also splits itself by medium, since the context-aware classifier is the 3D part of an AAAI 2023 paper whose 2D part is credited to another repository. For a reader choosing what to build on, that pattern is the relevant fact: this is one group's programme, and the integrated names are the wider field it borrows from.

Editorial conclusion

Pointcept is worth reading as a map of the point cloud perception literature rather than as a library to install, and the map is unusually candid about what lives where. Before you plan around it, check three things: whether the method you want is one of the officially implemented entries or one of the integrated names that only links elsewhere, whether the weights and inference code sit in a repository under this organisation or somewhere else entirely, and whether the config you need comes from the April 2026 release or from five months of unreleased work on main. If what you need is a package you can pin from an index, nothing in the root listing offers one.

Frequently asked questions

Does Pointcept's README document how to install it?

It gives no install command and never names a distribution to pass to a package index. The root of the repository holds an environment.yml and no packaging manifest, so the conda file is the only declared environment and the two newest methods link to inference repositories of their own.

What do the Pretrain, Backbone and SemSeg tags mean in Pointcept?

They mark what kind of artefact an entry is, separating self-supervised pretraining methods, model architectures and task methods. The integrated list further down reuses those names and adds the categories Instance Segmentation and Semantic Segmentation under their own headings.

Which Pointcept papers keep their code in another repository?

Utonia and Concerto each link an inference repository under the same organisation, and the Point Transformer V3 backbone has a repository of its own. Sonata points the other way, with its demo and its weights under a different organisation's namespace on Hugging Face.

How does Pointcept organise its configuration files?

By dataset. The single path shown in the README is configs/scannet/semseg-spunet-v1m1-0-base.py, where the directory is the dataset and the file name carries the task, the backbone and a version marker in that order.

What is the newest Pointcept release and when was it published?

v1.7.0, titled for Utonia, published on 2026-04-02, following v1.6.1 for Concerto on 2026-02-28 and v1.6.0 for Sonata on 2025-03-25. The default branch was last pushed on 2026-09-11, five months after that release.

Official sources

  1. Issues
  2. License: MIT
  3. Pointcept/Pointcept on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pointcept-pointcept.svg)](https://hysenlabs.com/projects/pointcept-pointcept)