Python 3 package for illustrating crystallography
moire pattens can be seen by translating/rotating an indetical lattice/structure over the top of itself.
from PyCrystallography.moire import linear_rot_pattern
# n being a angle in degrees
linear_rot_pattern(n)
from PyCrystallography.moire import grid_rot_pattern
# n being a angle in degrees
grid_rot_pattern(n)
from PyCrystallography.moire import radial_seperation_pattern
# d being the seperation
radial_seperation_pattern(d)