Utonia
Utonia pretrained encoder and linear-probing segmentation model.

Classes:
-
UtoniaSegmentation–Utonia linear-probing segmentation model.
UtoniaSegmentation
¶
UtoniaSegmentation(
in_channels: int,
num_classes: int,
serialization_orders: Sequence[SerializationOrder] = (
"z",
"z-trans",
"hilbert",
"hilbert-trans",
),
shuffle_serialization_orders: bool = True,
strides: Sequence[int] = (2, 2, 2, 2),
encoder_depths: Sequence[int] = (3, 3, 3, 12, 3),
encoder_channels: Sequence[int] = (
54,
108,
216,
432,
576,
),
encoder_num_heads: Sequence[int] = (3, 6, 12, 24, 32),
encoder_patch_size: Sequence[int] = (
1024,
1024,
1024,
1024,
1024,
),
norm: Union[str, Callable] = "layer_norm",
act: Union[str, Callable] = "gelu",
mlp_ratio: float = 4.0,
qkv_bias: bool = True,
qk_scale: Optional[float] = None,
attn_drop: float = 0.0,
proj_drop: float = 0.0,
drop_path: float = 0.3,
use_flash_attn: bool = True,
upcast_attn: bool = False,
upcast_softmax: bool = False,
rope_base: float = 10.0,
dropout: float = 0.0,
pooling: str = "grid",
stem_type: str = "linear",
act_kwargs: Optional[Dict[str, Any]] = None,
norm_kwargs: Optional[Dict[str, Any]] = None,
legacy: bool = False,
)
Bases: SegmentationModel
Utonia linear-probing segmentation model.
Linear-probe variant from
Utonia: Toward One Encoder for All Point Clouds
(ICML 2026). Architecturally similar to Sonata / Concerto's
linear-probe head, with one key change: every attention layer adds a 3D
rotary position embedding (Point3DRoPE) on top of
(q, k), indexed by the real-valued metric position rather than the
integer voxel grid. The position is mean-pooled at every encoder stage so
each level operates at its natural scale.
Note
The default (and registered) configuration enables flash attention (use_flash_attn=True),
which requires the flash-attn package and a CUDA device; pass use_flash_attn=False to
run without it. The xCPE sparse convolution still needs a spconv build matching the
device; the standard CUDA wheel cannot run the forward on CPU.
Methods:
-
configure_encoder–Build the
PointTransformerV3Encoderbackbone with rotary position embeddings. -
forward–Forward pass.
Attributes:
-
num_features(int) –Channel count \(C\) entering the head: every encoder stage unpooled and concatenated.
num_features
property
¶
Channel count \(C\) entering the head: every encoder stage unpooled and concatenated.
configure_encoder
¶
configure_encoder() -> PointTransformerV3Encoder
Build the PointTransformerV3Encoder backbone with rotary position embeddings.
forward
¶
Forward pass.
Parameters:
-
x(Tensor) –Per-point features of shape \((N, C)\).
-
pos(Tensor) –Real-valued metric positions of shape \((N, 3)\) used by 3D RoPE.
-
pos_grid(Tensor) –Integer voxel-grid coordinates of shape \((N, 3)\) used by the encoder for serialization and sparse convolutions.
-
batch(Tensor) –Per-point batch index of shape \((N,)\).