This repository contains a 3D engine build from scratch that is capable of simulating downhill rolling of common deep learning optimizers
Currently it can:
- Initialize the optimization landscape to a custom function
- Edit the landscape post initialization
- Optimize!
Simply install the packages in requirements.txt and g++ and call python run.py
If you want to, you can edit the configuration file config.json
or specify another one by runing with -config=path
Move with WASD, press RMB to move the camera
Keys from 1 - 5 change the input mode
1 - free movement
2 - landscape painting
3 - visualizer postion change
4 - running the optimization
5 - text input custom function to initialize landscape
It obviously isn't a gamechanger in 3D or ML so why? The only purpose for creating this was to teach myself the basics of 3D graphics - how to actually rasterize triangles, calculate lightning, shade individual pixels, move the camera etc.