The final simulation code can be found here
All other used code is submitted as assignments. Some intermediate / unused / backup code files exist in the repository