### Todo:
1. `grid.rs`
    - Remove need for `deposit`/`deposit_all`
      - Possible solution: Make it so when data is called, it generates it in a function when needed
2. GPU compute 
    - Tried [ArrayFire-rust](https://github.com/arrayfire/arrayfire-rust) didn't work well, looking for another library
    - Try using [emu](https://github.com/calebwin/emu) (seems to be a very good option)
      - emu seems to be the way to go
      - May have to completely rewrite simulation to run on the gpu (that'll be fun *pain*)
3. Auto create a video from generated images
    - Instead of using the command `ffmpeg -r 20 -i tmp/out_%d.png -vcodec libx265 -crf 25 -s 512x512 test.mp4` maybe use a rust library to do the same (more research needed)
4. Live output
   - Might want to do after #3 ("Auto create a video from generated images")
5. Make collisions for walls of grid
6. Add config and cmd arguments when running the binary to adjust simulation settings7.
7. sin and cos optimizations
    - sin/cos table
      - precompute before simulation
    - Cache sin/cos values in hashmap to be recalled later
      - In order to peruse this route, I have to figure out how to access a hashmap in parallel