Over the past 2 weeks I have been working on my Computer Sciences end-year project. I decided to make a fractal explorer allowing the user to navigate 2D and 3D fractals. It was made in Java only because that is the course requirement. I much rather have done it in C++ so we could get some real time rendering. It is still not too too slow however, as I have threaded it.
I use the ray marching technique to render the fractals as it seems to be quite fast, clean and efficient. Below I have listed most of the software’s key features as well as links to the executable and source (It is licensed under the GPL v3). Feel free to fiddle around with SiFrax (its name) or you can read up on how to use it by going to “Help”->”How To…” on the top menu bar.
I just want to mention one nice thing about the “underneath” side of the program for the software developers reading this. I have designed in such a way that one could eaily write their own number system (i.e. Bicomplex numbers), and pass an instance of an object of that type to the RayMarcher.SetNumberSystem(…) method. And just like that (s)he can render the exact same shape using his/her own number system. (S)he just has to adhere to the NumberSystem interface. This was a little tricky to code with Java. I used some polymorphism and generic programming to get it done. You can see how I did it for yourself in the source code below. I would love to hear your comments on the software! Thanks for reading!
Continue reading →