Shows the continuous 6D rotation representation is far easier for a network to regress than Euler angles.
Trained from scratch in Ropedia Academy — an interactive, bilingual course on embodied & spatial AI. Educational model: small and quick to train; the value is the method and a reproducible pipeline, not a leaderboard score. Try it live in the Ropedia demos Space.
At a glance
Base model
Trained from scratch (random initialization) — no pretrained base model.
Task
3D rotation regression
Training objective
Regress 3D rotations under a geodesic loss, comparing the continuous 6D parameterization against Euler angles.
Size / stats: uniform rotations via random quaternions; input = rotation applied to 8 fixed 3D points (24-D); 256/batch
Split: generative (infinite)
Source: procedural
Training config
Adam (lr 1e-3), 3000 steps; geodesic rotation loss; two heads (6D vs Euler) compared.
Evaluation results
metric
value
meaning
geo_6d (final)
0.0126
geo_euler (final)
0.1313
figure
Inference example
python
1import torch
2state = torch.load("rot6d.pt", map_location="cpu")# this repo's checkpoint3# Rebuild the exact module from the lab notebook (see "Reproduce"), then:4# model.load_state_dict(state); model.eval()
Limitations
Educational scale. Trained quickly on CPU on small or synthetic data, so absolute numbers are not competitive with production systems — the value is the method and a reproducible pipeline. No large-scale data, no hyperparameter sweep, and no multi-seed variance is reported. Not for production use.
Failure cases
The Euler baseline fails near gimbal lock / the ±180° wrap (a representation discontinuity) — exactly what 6D fixes.
Reproduce / train your own
One click: open the notebook in Colab → Runtime → GPU → Run all, then run its Publish to the Hugging Face Hub cell.