I started this as an introduction to WebAssembly with Rust, but as I made progress I got fascinated by it. I liked the idea that I could do infinite zoom just by updating the coordinates of the complex plane. Recaclulation of the set is not a problem since it is all done in Rust. The flamegraph in the Firefox profiler helps to improve perfomance if you build in debug mode so that wasm functions are named. Zoom is infinite up to the numerical precision of 64 bit floating point numbers, only then the colors are distored. It is awesome that npm and webkit are not necessary to deploy, and the final web files are just some js script and a 49Kb wasm binary. I had some fun with different color palettes and plotting algorithms, but not too much. With a few more features, like zooming with the wheel or preview without calculation it can be even more spectatular!
I created an svg out of 1 million digits of pi. The direction of the path depends on the digit: If the digit is 1 turn 36 degrees, if it is 2 turn 72 degrees, and so on. I took the idea from numberphile. The result is about 20Mb.
This is intented to be an asynchronous http server using io_uring for the Linux kerner I/O operations. Work in progress.
I was working on this for months. I studied reinforment learning a lot, I read books, attented online courses, I was just so much interested in it. I used Tensorflow to build the neural network and tkinter for the graphics. When I managed to train the snake and saw it growing, I felt satisfied and worried at the same time!
This was fun. I just wanted to make a bot on twitter using its API. It has some problems – it has never been a robust bot – but never enough time to fix them. Maybe I will come up with a better bot!
I did this way back when I was studying machine learning algorithms. I was already using the Eigen library at my job at the time, so I used it for solving the linear system. I remember I had spent a lot of time reading several papers like this one. It would be worth to test if it works on real and big datasets.