| --- |
| license: cc-by-nc-4.0 |
| library_name: torch-pointcloud |
| tags: |
| - point-cloud |
| - 3d |
| - pytorch |
| - torch-pointcloud |
| - utonia |
| - self-supervised |
| --- |
| |
| # Model card for utonia.pretrain.pointcept |
|
|
| A Utonia self-supervised pretraining model (single encoder across point cloud domains). |
|
|
| > **Non-commercial.** These weights are released by [Pointcept/Utonia](https://github.com/Pointcept/Utonia) under CC BY-NC 4.0 and may be used for research and evaluation only. |
|
|
| ## Model Details |
|
|
| - **Model Type:** Self-supervised pretraining |
| - **Model Stats:** |
| - Params (M): 137.3 |
| - Input channels: 9 |
| - **Paper:** [Utonia: Toward One Encoder for All Point Clouds](https://arxiv.org/abs/2603.03283) |
| - **Converted from:** [Pointcept/Utonia](https://github.com/Pointcept/Utonia) (CC-BY-NC-4.0) |
| - **Library:** [torch-pointcloud](https://github.com/arthurdjn/pytorch-pointcloud) |
|
|
| ## Install |
|
|
| ```bash |
| pip install torch-pointcloud |
| ``` |
|
|
| This checkpoint also needs `spconv` and `flash-attn`, which need a build matching your torch and CUDA: see the [installation guide](https://pytorch-pointcloud.org/installation/). |
|
|
| ## Usage |
|
|
| ```python |
| import torch |
| import torch_pointcloud as tp |
| from torch_pointcloud.utils.data import collate |
| |
| model, info = tp.create_model( |
| "utonia.pretrain.pointcept", |
| task="base", |
| pretrained=True, |
| return_info=True, |
| ) |
| model = model.cuda().eval() # GPU-only kernels |
| |
| # synthetic sample with the keys a dataset provides |
| num_points = 8192 |
| sample = { |
| "pos": torch.randn(num_points, 3), |
| "color": torch.rand(num_points, 3) * 255, |
| "normal": torch.randn(num_points, 3), |
| "segment": torch.zeros(num_points, dtype=torch.long), |
| "instance": torch.zeros(num_points, dtype=torch.long), |
| } |
| data = info["transform"](sample) |
| data = collate([data]) |
| data = {key: value.cuda() for key, value in data.items()} |
| |
| with torch.no_grad(): |
| out = model(data.get("x"), data["pos_grid"], data["batch"], pos=data["pos"]) |
| ``` |
|
|
| ## Citation |
|
|
| ```bibtex |
| @article{utonia2026, |
| title = {Utonia: Toward One Encoder for All Point Clouds}, |
| author = {Yujia Zhang and Xiaoyang Wu and Yunhan Yang and Xianzhe Fan and Han Li and Yuechen Zhang and Zehao Huang and Naiyan Wang and Hengshuang Zhao}, |
| journal = {arXiv preprint arXiv:2603.03283}, |
| year = {2026} |
| } |
| |
| @software{dujardin2026pytorchpointcloud, |
| author = {Arthur Dujardin}, |
| title = {PyTorch PointCloud}, |
| year = {2026}, |
| doi = {10.5281/zenodo.22159632}, |
| url = {https://github.com/arthurdjn/pytorch-pointcloud}, |
| } |
| ``` |
|
|