MandelBulb is a program that is not only built for solving fractal equations and testing single core performance but also for showing the use of C and Assembly code in Rust.
A Mandelbulb is a 3-Dimensional Fractal whereas a Mandlebrot is a 2-Dimensional Fractal. A complex number can be defined as a + bi
where a
and b
are real numbers and i^2 = -1
. Hypercomplex numbers consist of 3 numbers representing the x, y, and z of a point in a Cartesian system.
A Mandlebrot is defined as z -> z^n + c
, where z
and c
are triplex or hypercomplex numbers. A Mandlebulb, however, incorporates triplex numbers instead of complex numbers.
How do we find the n^th value of a Mandlebulb? White and Nylander already figured this out but we must use polar or spherical coordinates instad of cartesian. To find the n^th power of a vector v = (x,y,z) is
v^n := r^n(sin(nθ) * cos(nΦ), sin(nθ) * sin(nΦ), cos(nθ))
where
r = sqrt(x^2 + y^2 + z^2)
Φ = arctan(y/x) = arg(x + yi)
θ = arctan(sqrt(x^2 + y^2)/z) = arccos(z/r)
You will need to make sure you have Rust, Cargo, and CMake installed on you system.
Clone the repository to your local system. Make sure you have git installed.
git clone https://github.com/Reested/MandelBulb.git
Change directory into the repository you just installed.
cd MandelBulb
Build and Run with Cargo
cargo run
- Kiss3D - 3D Graphics Engine
- PB - Progress Bar for Rust
- CMake - C Compiler Toolset
- NAlgebra - Linear Algebra Library
- Evon Dionne - Initial work