A Smith normal form calculator for integer matrices written in Python, that also outputs and explains all the steps of the algorithm. The implementation uses sympy for the handling of matrices, so it can be easily extended to arbitrary PIDs. This project is intended for educational use.