The optimal Rubik's cube solver that I wrote a while back. It uses pattern databases to somewhat efficiently solve the puzzle optimally (finds the fewest turns required to solve it).
A Jupyter kernel for the sqlite3 shell. This project was just a proof of concept. You should probably check out xeus-SQLite: https://blog.jupyter.org/a-jupyter-kernel-for-sqlite-9549c5dcf551