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.
Iterative Closest Point — nearest-neighbour correspondences + Kabsch SVD per iteration (no SGD).
| metric | value | meaning |
|---|---|---|
rmse (final) | 0.0124 |

import torch
state = torch.load("transform.pt", map_location="cpu") # this repo's checkpoint
# Rebuild the exact module from the lab notebook (see "Reproduce"), then:
# model.load_state_dict(state); model.eval()
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.
Converges to the wrong alignment under a large initial rotation or low overlap (needs a coarse/global init).
One click: open the notebook in Colab → Runtime → GPU → Run all, then run its Publish to the Hugging Face Hub cell.
From a shell:
git clone https://github.com/ChaoYue0307/ropedia-academy.git && cd ropedia-academy
pip install torch numpy matplotlib scikit-learn scikit-image gymnasium
jupyter nbconvert --to notebook --execute notebooks/training/B_icp_registration.ipynb --output run.ipynb
# optional: override training length, e.g. STEPS=2000 (or EPISODES=600) before running
figure.pngmetrics.jsontransform.ptCode & weights: MIT (this repository) — educational use encouraged.
Data: generated procedurally in the notebook — no external dataset.
If you use this model or the course materials, please cite:
@misc{ropedia_academy,
title = {Ropedia Academy: an interactive course on embodied & spatial AI},
author = {Ropedia Academy},
year = {2026},
howpublished = {\url{https://chaoyue0307.github.io/ropedia-academy/}}
}
Method / original work: Besl & McKay, A Method for Registration of 3-D Shapes (ICP), 1992; Arun et al. (Kabsch), 1987.
Part of the Ropedia Academy trained-model collection. Contributions & issues welcome on GitHub.
5 commits
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.
Iterative Closest Point — nearest-neighbour correspondences + Kabsch SVD per iteration (no SGD).
| metric | value | meaning |
|---|---|---|
rmse (final) | 0.0124 |

import torch
state = torch.load("transform.pt", map_location="cpu") # this repo's checkpoint
# Rebuild the exact module from the lab notebook (see "Reproduce"), then:
# model.load_state_dict(state); model.eval()
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.
Converges to the wrong alignment under a large initial rotation or low overlap (needs a coarse/global init).
One click: open the notebook in Colab → Runtime → GPU → Run all, then run its Publish to the Hugging Face Hub cell.
From a shell:
git clone https://github.com/ChaoYue0307/ropedia-academy.git && cd ropedia-academy
pip install torch numpy matplotlib scikit-learn scikit-image gymnasium
jupyter nbconvert --to notebook --execute notebooks/training/B_icp_registration.ipynb --output run.ipynb
# optional: override training length, e.g. STEPS=2000 (or EPISODES=600) before running
figure.pngmetrics.jsontransform.ptCode & weights: MIT (this repository) — educational use encouraged.
Data: generated procedurally in the notebook — no external dataset.
If you use this model or the course materials, please cite:
@misc{ropedia_academy,
title = {Ropedia Academy: an interactive course on embodied & spatial AI},
author = {Ropedia Academy},
year = {2026},
howpublished = {\url{https://chaoyue0307.github.io/ropedia-academy/}}
}
Method / original work: Besl & McKay, A Method for Registration of 3-D Shapes (ICP), 1992; Arun et al. (Kabsch), 1987.
Part of the Ropedia Academy trained-model collection. Contributions & issues welcome on GitHub.
5 commits