summaryrefslogtreecommitdiff
path: root/main.c
AgeCommit message (Collapse)Author
2023-08-27(main)+commentsAryadev Chavali
2023-08-27(main)+kill threads when avalanche has completedAryadev Chavali
After the so-called "avalanche", where the fractal has finished forming as there are no more candidates for toppling, we no longer need the threads to be working. As an intensive operation, it makes no sense to continue processing when we are sure there is no further dynamic behaviour possible. Using a tick based solution, every DELTA ticks we check if the avalanche is completed. If so, we clean up all the threads AND ensure that we no longer need to be checking for avalanches.
2023-08-27~file-handler->files,(main~>files)~migrated png save code to files.cAryadev Chavali
2023-08-26+further multithreadingAryadev Chavali
I split the grid into 4 quadrants which are managed by their own thread. Improves speed and uses more resources correctly.
2023-08-26+write to image supportAryadev Chavali
Writes output to "data.png"
2023-08-25~modified step,~state data is now unsigned 64 bit integerAryadev Chavali
Stopped adding a grain of sand per step. Collapsing should work properly for any amount of sand grains, regardless of whether it's 4 or 4000. Previous code fixed it at 4 always, and how it distributed was so as well. Now we distribute as much sand as we can. This comes from the idea that, instead of incrementing while rendering, let's just set some n pixels in the centre and see how the model distributes them.
2023-08-25(main|file-handler)~fixed some stuffAryadev Chavali
Big bug with file handler: I can write data well, but reading it causes some trace error which I cannot be bothered to fix. So I'll just work on making the step function way more efficient.
2023-08-25(file-handler)+implemented write_to_fileAryadev Chavali
First line is the data width, then the sand particles of each cell per row.
2023-08-25(main~>lib.h)+header for data structures,~migrate lib.hAryadev Chavali
+some file handlers for writing and reading (may help with very large renders by doing them piecemeal when I can)
2023-08-25(main)+threading for stepsAryadev Chavali
Doing this experiment with threads shows a strong improvement in render speed by separating "steps" from the direct render.
2023-08-25(main)~fixed bug with zooming out too farAryadev Chavali
Stopped presenting the simulation after a while.
2023-08-25(main)+zoom in and out by keyboard,+translation by mouseAryadev Chavali
2023-08-25(main)+cameraAryadev Chavali
This will be useful for zooming in.
2023-08-25(main)+colouring for differing sandpile proportionsAryadev Chavali
Based on Wikipedia page colouring.
2023-08-25(main)+state data structure and iteration logicAryadev Chavali
Per iteration, increment the centre of the grid, and perform any collapsing necessary (if >= 4 then sand pile "collapses" onto its cardinal directions).
2023-08-25INITIALAryadev Chavali
Simple hello world in raylib, with a Makefile to do the compilation for me!