Volt — Volume Transformer

Volume Transformer: Revisiting Vanilla Transformers for 3D Scene Understanding
ECCV 2026 · Long Oral

Kadir Yilmaz*, Adrian Kruse*, Tristan Höfer, Daan de Geus, Bastian Leibe
RWTH Aachen University · Eindhoven University of Technology
* Equal contribution

Paper · arXiv · Project website · Code · Citation

Introduction

Volt adapts the vanilla Transformer encoder to 3D scene understanding. It represents a scene as volumetric patch tokens, combines full global self-attention with 3D rotary positional embeddings (RoPE), and predicts semantic labels with a lightweight decoder. Volt also serves as a backbone for 3D instance segmentation.

The paper studies how to train this architecture with limited 3D supervision: strong augmentations, regularization, and distillation from a convolutional teacher improve generalization, while joint training across datasets increases supervision scale.

This model repository provides Volt-S and Volt-B checkpoints, experiment configs, training logs, and UNet teacher weights. Use the official implementation to run the models.

Architecture

Volt architecture: volumetric patch tokenization, a global Transformer encoder, and voxel-level decoding.

The architecture overview has three stages:

  1. Tokenize: partition the scene into non-overlapping volumetric patches and linearly embed each patch.
  2. Encode: process patch tokens with global self-attention and 3D RoPE.
  3. Decode: upsample tokens to voxel resolution using a single transposed convolution, then apply a linear semantic classification head.

The released ScanNet joint-training configs use the following encoder settings:

Variant Transformer blocks Embedding dimension Attention heads
Volt-S 12 384 6
Volt-B 12 768 12

See volt_base.py for the backbone implementation. Instance segmentation uses a task-specific pipeline; SceneFun3D uses semantic predictions followed by clustering, as described in the official instructions.

Benchmark results

These are the validation results reported in the official model zoo. Scores are percentages; higher is better. They are release reference results, not measurements rerun for this model card.

Semantic segmentation

Single-dataset and joint-training results are shown separately.

Dataset Volt-S · single dataset Volt-S · joint training Volt-B · joint training
ScanNet 77.3 80.2 80.5
ScanNet200 36.1 38.5 40.0
ScanNet++ 51.1 — 51.7
nuScenes 81.1 81.8 82.2
SemanticKITTI 70.3 72.8 —
Waymo 71.2 72.5 73.7

Instance segmentation

Dataset Backbone Validation mAP50
ScanNet Volt-S 78.5
ScanNet200 Volt-S 49.0
ScanNet++ Volt-B 53.1
SceneFun3D Volt-B 53.7

Checkpoints

Each experiment directory contains config.py, train.log, and model/model_best.pth plus model/model_last.pth. The table links to model_best.pth and its matching config. Keep the dataset-specific preprocessing, label mapping, and evaluation settings from that config.

Task / training Model Dataset Checkpoint Config
Semantic · single dataset Volt-S ScanNet Weights Config
Semantic · single dataset Volt-S ScanNet200 Weights Config
Semantic · single dataset Volt-S ScanNet++ Weights Config
Semantic · single dataset Volt-S nuScenes Weights Config
Semantic · single dataset Volt-S SemanticKITTI Weights Config
Semantic · single dataset Volt-S Waymo Weights Config
Semantic · joint Volt-S ScanNet Weights Config
Semantic · joint Volt-S ScanNet200 Weights Config
Semantic · joint Volt-S nuScenes Weights Config
Semantic · joint Volt-S SemanticKITTI Weights Config
Semantic · joint Volt-S Waymo Weights Config
Semantic · joint Volt-B ScanNet Weights Config
Semantic · joint Volt-B ScanNet200 Weights Config
Semantic · joint Volt-B ScanNet++ Weights Config
Semantic · joint Volt-B nuScenes Weights Config
Semantic · joint Volt-B Waymo Weights Config
Instance Volt-S ScanNet Weights Config
Instance Volt-S ScanNet200 Weights Config
Instance Volt-B ScanNet++ Weights Config
Instance Volt-B SceneFun3D Weights Config

Distillation teachers are available in teacher_weights/, including single-dataset teachers and joint indoor/outdoor teachers.

Quick start

1. Set up the official implementation

The upstream environment targets Linux x86-64, Python 3.12, PyTorch 2.8, and CUDA 12.6. Follow the setup instructions, with CUDA 12.6 available before installing:

git clone https://github.com/YilmazKadir/Volt.git
cd Volt
uv sync

2. Obtain a checkpoint and its config

With the Hugging Face CLI (hf) available, the following example downloads the joint-training Volt-B ScanNet release. Its config also constructs a distillation teacher during model initialization, so include the corresponding teacher checkpoint.

hf download KadirYilmaz/Volt \
  --include "Volt_experiments/joint_training_base/scannet/config.py" \
            "Volt_experiments/joint_training_base/scannet/model/model_best.pth" \
            "teacher_weights/joint_indoor_unet_teacher.pth" \
  --local-dir weights

3. Prepare data and evaluate

Follow the data preprocessing instructions and make the processed ScanNet data available at data/scannet, as expected by the selected config. This config evaluates the validation split and uses color and normal features.

Run from the cloned code repository on a CUDA GPU, using the official testing entry point:

PYTHONPATH=. uv run python tools/test.py \
  --config-file weights/Volt_experiments/joint_training_base/scannet/config.py \
  --num-gpus 1 \
  --options \
    weight=weights/Volt_experiments/joint_training_base/scannet/model/model_best.pth \
    save_path=exp/volt-base-scannet-eval

The teacher path in this config is weights/teacher_weights/joint_indoor_unet_teacher.pth, matching the download layout above. Evaluation writes logs and predictions under exp/volt-base-scannet-eval; use a fresh output directory for each run. For other checkpoints, use their matching configs and check dataset and teacher paths, since saved experiment configs may reference the original training environment.

See the training instructions for distillation and joint training, and the instance segmentation instructions for task-specific preprocessing and training.

Citation

If you use Volt in your research, please cite the paper:

@inproceedings{yilmaz2026volt,
  title     = {{Volume Transformer: Revisiting Vanilla Transformers for 3D Scene Understanding}},
  author    = {Yilmaz, Kadir and Kruse, Adrian and H{\"o}fer, Tristan and de Geus, Daan and Leibe, Bastian},
  booktitle = {European Conference on Computer Vision (ECCV)},
  year      = {2026}
}

License and Usage Restrictions

See LICENSE.md for checkpoint-specific licensing and the bundled Waymo Dataset License Agreement for its full terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for KadirYilmaz/Volt