SOfA logo

One for All: Generalist Foundation Model
for Cross-Sensor Skeleton Representation Learning

Jeonghyeok Do     Yun Chen     Munchurl Kim
Corresponding author
Korea Advanced Institute of Science and Technology (KAIST), South Korea

Code and pre-trained weights will be released soon.

One Encoder for Any Skeleton Sensor

10
heterogeneous 3D skeleton datasets
unified into one corpus
1
shared encoder for 15/20/25/30-joint
topologies — no reconfiguration
6.59×
lower inference GFLOPs
than MAE-based SSL baselines
+6.8%p
on PKU-MMD over the best
sensor-specific specialist
Motivation of SOfA

(a) Previous methods couple the architecture to a fixed joint count and rigid absolute positional embeddings, so each sensor needs its own isolated encoder and the resulting features are mutually incompatible — a sensor-specific representation.
(b) SOfA (Ours) introduces a fixed-size set of learnable Canonical Joint Slots Sc. An arbitrary sensor sequence enters only as a condition, and a single shared encoder dynamically fills the slots to emit a standardized, sensor-unified representation regardless of the original joint count.

Conceptual comparison of skeleton representation learning paradigms
Property Standard SSL HSP (CVPR'25) SOfA (Ours)
Cross-Sensor Capability Intra-scene (Paired) Universal (Unpaired)
Alignment Strategy Skeletal interpolation Canonical Joint Slots + Semantic Joint Embedding
Sensor Flexibility Pre-defined 2D–3D pair Arbitrary 3D sensor
Dataset Dependency Homogeneous Heterogeneous (Paired) Heterogeneous (Independent)
Representation Scope Domain-specific Multi-modal fusion Generalist foundation
Standard SSL methods are constrained by fixed topologies, and the recent HSP is limited to intra-scene multi-modal fusion using paired data. SOfA is the first generalist foundation model, generalizing across entirely independent datasets and arbitrary sensor configurations.

Abstract

Self-supervised learning (SSL) has become the standard route to generalizable motion representations from large-scale unlabeled data. However, existing approaches are bottlenecked by the inherent heterogeneity of skeleton data — varying joint counts, indexing protocols, and topological structures across sensors — which forces separate, sensor-specific or even dataset-specific models.

We introduce SOfA (Skeleton One for All), the first generalist foundation model for sensor-unified skeleton representation learning across diverse sensors.

To absorb the dimensional gap caused by varying joint counts, we introduce a fixed-size set of learnable Canonical Joint Slots, a universal vessel that accommodates arbitrary skeletal topologies; SOfA fills these slots through an attention mechanism that dynamically aggregates skeletal information from sensor-specific inputs. To resolve joint index misalignment across sensors, we replace absolute positional embeddings with a Semantic Joint Embedding derived from a pre-trained text encoder.

We standardize ten 3D skeleton datasets for unified training. Extensive experiments show that SOfA serves as a truly universal encoder, achieving state-of-the-art performance across a wide range of downstream tasks and sensor types — often outperforming dataset-specific models with a single foundation model.


Overview of SOfA

Overview of the SOfA framework
SOfA establishes a sensor-unified representation within a teacher–student architecture, where both networks dynamically fill a fixed-size set of Canonical Joint Slots. Processing a masked view, the student encoder minimizes the canonical reconstruction error (ℒCano) to match the slot representations of the unmasked teacher, alongside a global distillation loss (ℒDINO) that aligns high-level semantics. Because the varying sensor tokens Wp enter only as a dynamic condition, they are discarded after encoding and the model exposes exclusively the unified canonical representation W = [wcls | Wc] to downstream tasks.

Semantic Joint Embedding & Canonical Joint Slots

Semantic Joint Embedding and Canonical Joint Slot aggregation

(Left) Semantic Joint Embedding (SJE). Absolute positional embeddings assign rigid numerical indices, so the same index refers to different anatomical joints across sensors — or to empty, zero-padded slots. SJE instead builds a prompt from each sensor's joint metadata ("A human skeleton joint of the {Left Wrist}") and encodes it with a pre-trained T5 text encoder, giving anatomically identical joints a consistent latent identity across every dataset and inheriting semantic relations between joint names.

(Right) Canonical Joint Slots (CJS). The class token, the canonical tokens and the condition patch tokens propagate jointly through masked self-attention, so the slots are filled by aggregating information from the visible joints. An attention mask assigns −∞ to zero-padded joint positions, so the final representation is computed strictly from valid skeletal information regardless of the input's original joint count.


A Unified Corpus of Ten Heterogeneous Datasets

Dataset Tracker Joints Classes Samples Evaluation Setting
NTU-60Kinect v2256056,880Pre-train & Downstream
NTU-120Kinect v225120114,480Pre-train & Downstream
PKU-MMDKinect v225517,096Pre-train & Downstream
ETRI-ActKinect v22555112,620Pre-train & Downstream
ETRI-LivingLabKinect v225558,605Pre-train & Downstream
MSR-Action3DKinect v12020567Pre-train & Downstream
NW-UCLAKinect v120101,494Pre-train & Downstream
UT-KinectKinect v12010199Pre-train & Downstream
SBU-InterCustom Tracker 1158282Unseen (OOD)
FlorenceCustom Tracker 2159215Unseen (OOD)
Eight datasets with 20- and 25-joint protocols form the pre-training corpus; the two 15-joint protocols are reserved exclusively for unseen evaluation. All sources are aligned to a shared hip-centered coordinate frame, with the vertical body axis mapped to y and coordinates normalized to meters.
Normalized skeleton samples from the ten datasets
Representative normalized skeletons from the ten heterogeneous datasets. Despite variations in joint count, tracking protocol and acquisition environment, all sequences share a common hip-centered frame and upright orientation after our unified preprocessing.

Performance Evaluation

Linear evaluation on NTU-60, NTU-120 and PKU-MMD (25-joint)
Method Publication NTU-60 NTU-120 PKU-MMD
X-SubX-ViewX-SubX-SetX-Sub
Sensor-Specific Representation:
GL-TransformerECCV'2276.383.866.068.7
CPMECCV'2278.784.968.769.648.3
CMDECCV'2279.886.970.371.543.0
AimCLRAAAI'2274.379.763.463.4
HYSPICLR'2378.282.661.864.6
HaLPCVPR'2379.786.871.172.243.5
ActCLRCVPR'2380.986.769.070.5
RVTCLRICCV'2374.779.1
SkeletonMAEICMEW'2374.877.772.573.536.1
MAMPICCV'2384.989.178.679.153.8
PTSLAAAI'2377.381.866.267.749.3
S-JEPAECCV'2485.389.879.679.953.5
IGMECCV'2486.291.280.081.4
MacDiffECCV'2486.491.079.480.2
HSPCVPR'2580.788.071.073.248.9
USDRLAAAI'2585.291.776.678.154.4
GFPICCV'2585.992.079.180.356.2
AMRCVPR'2687.492.381.181.960.3
Sensor-Unified Representation:
SOfA (Ours)85.792.1*79.280.465.4
SOfA-L (Ours)87.092.6*79.582.067.1
Top-1 accuracy (%) under the linear evaluation protocol, joint modality only, no multi-stream ensemble. Unlike the baselines — each of which trains an independent model per dataset — SOfA uses a single unified representation across every benchmark. Bold is best, underline is second best. X-View* denotes evaluation on leakage-free test samples only.
(a) ETRI-Act (25-joint)
MethodsETRI-Act
Fully-supervised:
IndRNN73.9
Beyond Joint79.1
SK-CNN83.6
ST-GCN86.8
Ensem-NN83.0
MANs82.4
HCN88.0
FSA-CNN90.6
Un-supervised (SSL):
SOfA (Ours)87.9
(b) NW-UCLA (20-joint)
MethodsNW-UCLA
Sensor-Specific:
LongT-GAN74.3
P&C84.9
MCAE-MP84.9
SeBiReNet80.3
Colorization91.1
GL-Transformer90.4
Masked-Color92.0
Sensor-Unified:
SOfA (Ours)92.9
Both benchmarks lie inside the pre-training domain. On ETRI-Act, SOfA reaches 87.9% within a close margin of strong fully-supervised models — without any action label during pre-training. On the 20-joint NW-UCLA it outperforms every sensor-specific model using the exact same weights as the 25-joint results above, with no per-dataset reconfiguration.
Computational complexity on PKU-MMD
Method Tokens GFLOPs PKU-MMD
T × JTrainInferenceX-Sub
Sensor-Specific:
SkeletonMAE30 × 2519.6728.3236.1
MAMP30 × 2519.6728.3253.8
S-JEPA30 × 2547.9928.3253.5
GFP30 × 254.1828.3256.2
Sensor-Unified:
SOfA8 × (25+5)8.604.3065.4
SOfA-L8 × (25+5)14.907.4567.1
Aggressive temporal compression lets SOfA run inference at 4.30 GFLOPs — a 6.59× reduction against the 28.32 GFLOPs of MAE-based baselines — while improving PKU-MMD Top-1 by a large margin (65.4% vs. 56.2% for the strongest baseline). Even SOfA-L, at 7.45 GFLOPs, stays far cheaper than every baseline.

Generalization to Unseen Skeletal Protocols

(a) Florence (15-joint)
MethodsFlorence
Seen + Fully-supervised:
Seidenari et al.82.0
Devanne et al.87.0
Vemulapalli et al.90.9
HarSkel94.4
Unseen + Sensor-Specific:
SkeletonMAE66.8
MAMP73.7
Unseen + Sensor-Unified:
SOfA (Ours)91.7
(b) SBU-Inter (15-joint)
MethodsSBU-Inter
Seen + Fully-supervised:
Co-LSTM90.4
ST-LSTM93.3
VA-LSTM97.2
GCA94.9
LSTM-IRN98.2
IGFormer98.4
ISTA-Net98.5
Unseen + Sensor-Specific:
SkeletonMAE73.1
MAMP80.2
Unseen + Sensor-Unified:
SOfA (Ours)97.0
Both 15-joint datasets are completely excluded from pre-training and follow different joint layouts and indexing systems — they are not merely lower-dimensional versions of the seen protocols. With a frozen encoder and no fine-tuning, SOfA reaches 91.7% on Florence and 97.0% on SBU-Inter, while sensor-specific SSL methods collapse (66.8% and 73.1%). SOfA lands in the range of fully-supervised models that were trained end-to-end on these datasets with full label access.

More Downstream Tasks

Semi-supervised on NTU-60 (1% labels)
MethodsNTU-60
X-SubX-View
Sensor-Specific:
CPM56.757.5
CMD50.653.0
HaLP46.648.7
HiCo54.454.8
UmURL58.158.3
SkeletonMAE54.454.6
MAMP66.068.7
S-JEPA67.569.1
USDRL57.360.7
GFP71.872.9
Sensor-Unified:
SOfA71.674.2*
Action retrieval on NTU-60
MethodsNTU-60
X-SubX-View
Sensor-Specific:
LongT-GAN39.148.1
P&C50.776.3
ISC62.582.6
HaLP65.883.6
HiCo68.384.8
MAMP62.070.0
GFP70.987.1
Sensor-Unified:
SOfA72.186.8*
Under 1% label supervision SOfA sets a new best on X-View (74.2%) and stays within 0.2%-point of GFP on X-Sub. In retrieval it establishes a new state of the art on X-Sub (72.1% vs. 70.9%), trailing GFP by only 0.3%-point on X-View — a sensor-unified representation matches or exceeds sensor-specific pre-training even at instance level.
MSR-Action3D (20-joint)
MethodsMSR-Action3D
Fully-supervised:
HON4D82.2
Rahmani et al.82.7
Tran et al.84.5
Un-supervised:
SOfA82.2
UT-Kinect (20-joint)
MethodsUT-Kinect
Fully-supervised:
Xia et al.90.9
Devanne et al.91.5
Wang et al.96.5
Un-supervised:
SOfA97.0
On two more 20-joint benchmarks, SOfA matches fully-supervised methods on MSR-Action3D (82.2%, within 2.3%-point of the best reported 84.5%) and surpasses all of them on UT-Kinect (97.0% vs. 96.5%).

Ablation Studies

Contribution of CJS and SJE across heterogeneous topologies
Modules 25-Joint Datasets 20-Joint Datasets
CJSSJE NTU-60NTU-120PKU-MMD NW-UCLAUT-Kinect
75.270.750.968.977.0
84.978.764.772.380.0
76.471.452.386.791.0
85.779.265.492.997.0
CJS is what makes the canonical space work: removing it forces every sensor protocol through a single class token, an information bottleneck that costs 8.48% on average. SJE matters most where topologies diverge — dropping it collapses NW-UCLA from 92.9% to 72.3%, because roughly 90% of the corpus is 25-joint Kinect-v2 data and the network otherwise biases toward that indexing. SJE is the semantic anchor that bridges the index discrepancy.
Number of Canonical Joint Slots
Slots 25-Joint Datasets 20-Joint Datasets GFLOPs
CJS NTU-60NTU-120PKU-MMD NW-UCLAUT-Kinect Inference
076.471.452.386.791.03.60
585.779.265.492.997.04.30
1085.579.064.592.798.05.41
1585.378.963.591.897.06.55
Performance peaks precisely at Jc = 5, improving over the no-slot baseline by 9.3, 7.8, 13.1, 6.2 and 6.0%-point respectively. More slots gradually dilute the representation bottleneck and introduce redundancy, making the canonical space less compact for cross-sensor alignment. Beyond resolving joint-count discrepancy, Jc doubles as a tunable output resolution — compact prompts for motion diffusion, richer structural inputs for VLMs — with no architectural change.
Network scalability and extended synthetic topology
Method Modality NTU-60 NTU-120 PKU-MMD
X-SubX-ViewX-SubX-SetX-Sub
SOfAJ85.792.1*79.280.465.4
SOfA (J = 30)J85.591.9*79.080.165.6
SOfA-LJ87.092.6*79.582.067.1
Zero-padding to Jmax = 25 is a batching convenience, not an architectural ceiling. The J = 30 row feeds an extended synthetic topology built by interpolating joint pairs and describing them to SJE in text ("midpoint of Ja and Jb") — performance holds without retraining, because the attention backbone treats joints as a variable-length sequence and SJE generates valid embeddings for novel joints on the fly. Scaling from 8 layers / dim 256 / 8 heads (SOfA) to 12 layers / dim 384 / 12 heads (SOfA-L) improves every benchmark, indicating the unified corpus is large enough to support stronger backbones.

What Do the Canonical Slots Learn?

t-SNE visualization of Canonical Joint Slot assignments
t-SNE of the slot assignments across sensors. The five slots autonomously converge toward the semantic centers of distinct anatomical clusters — the torso and the four limbs — rather than acting as a generic compression bottleneck. If the slots were merely compressing, their optimal count would be arbitrary; instead performance peaks at exactly five, matching the five major regions of the human body. The learned canonical space is anatomically meaningful.

Leakage-Free Evaluation Protocol

Construction of the NTU pre-training corpus and evaluation sets

Because SOfA pre-trains a single encoder on a combined corpus, NTU-60 and NTU-120 need care: NTU-120 contains every NTU-60 sequence. We pre-train on NTU-120 only, keeping just the sequences assigned to training by both protocols (X-Sub ∩ X-Set) — 25,053 sequences, only 22% of NTU-120.

The official NTU-120 X-Sub / X-Set and NTU-60 X-Sub test sets are then usable directly. NTU-60 X-View is the exception: it splits by camera ID while X-Set splits by setup ID, so some official X-View test sequences appear in the pre-training corpus. We remove all 5,392 overlapping sequences by sequence ID before evaluation, leaving 13,568 sequences reported as X-View*. The filtering is completed before evaluation and does not depend on model predictions.


BibTeX

@article{do2026sofa,
  title={One for All: Generalist Foundation Model for Cross-Sensor Skeleton Representation Learning},
  author={Do, Jeonghyeok and Chen, Yun and Kim, Munchurl},
  journal={arXiv preprint arXiv:2609.07078},
  year={2026}
}