See [Wikipedia: Arithmetic Billiards](https://en.wikipedia.org/wiki/Arithmetic_billiards). This Python script uses matplotlib to draw pictures for a 3d arithmetic billiard, either as a 2d projection or as an axonometry.