My entire team is inspired by mathematics and computer science as well as the beauty, chaos, and mystery within these complex fractals. That's why we decided to pursue this project.
What it does
This program takes 2D slices of a 4D fractal defied by a recursive function of time with the help of quaternions. It then colors these images based on many properties of the fractal generated and finally outputs it as a video.
How we built it
We entirely used python with the help of NumPy to efficiently generate these fractals. We also used a few other tools including PILow and FFmpeg for the visualization part of the project.
Challenges we ran into
We ran into many challenges along the way, however, two stand out to me: time, and rotation. Initially, the program was extremely slow and therefore challenging to use. However, after some major efficiency improvements, such as finding more efficient libraries, as well as the implementation of many processes, the program can compute many frames per minute. The other challenge was figuring out of to effectively rotate a rectangle defined on a 2D plane into 4D space. However, we figured out how to do this with the help of 4D rotation matrices.
Accomplishments that we're proud of
We are most proud of how well we worked together. Creating a program that is this technical is not easy to do, especially considering that we live in different states. However, we managed to persevere and create an amazing result that has both real-world applications as well as is beautiful.
What we learned
We learned many new things about fractal geometry, 4D space, quaternions, and matrices. However, what stands out to me is the observation of patterns in these sets. For example, most fractals became circular when certain cross-sections were taken. In addition, as it turns out, there are definite patterns in the orbits that are formed in most fractals.
What's next for Cross-Sectional Representation of 4-Dimensional Fractals
In the future, we hope to do the following: 1) Improve efficiency/Implement on a GPU, 2) Add more coloring options, 3) Increase the selection of functions to define fractals with, and 4) add a GUI.