Recovers a rigid transform between two point clouds with Iterative Closest Point (nearest-neighbour + Kabsch).
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.
Size / stats: two linked rings (~800 points, 3-D); target = source under a known rigid transform + 0.01 noise
Split: 1 source/target pair
Source: procedural
Training config
Iterative Closest Point — nearest-neighbour correspondences + Kabsch SVD per iteration (no SGD).
Evaluation results
metric
value
meaning
rmse (final)
0.0124
figure
Inference example
python
1import torch
2state = torch.load("transform.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
Converges to the wrong alignment under a large initial rotation or low overlap (needs a coarse/global init).
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.