Skip to content

Reested/MandelBulb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project logo

MandelBulb

GitHub issues GitHub stars GitHub license


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.

📝 Table of Contents

🧐 About

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)

🏁 Getting Started

You will need to make sure you have Rust, Cargo, and CMake installed on you system.

Step 1 - Clone Repo

Clone the repository to your local system. Make sure you have git installed.

git clone https://github.com/Reested/MandelBulb.git

Step 2 - Run Cargo

Change directory into the repository you just installed.

cd MandelBulb

Build and Run with Cargo

cargo run

⛏️ Built Using

  • Kiss3D - 3D Graphics Engine
  • PB - Progress Bar for Rust
  • CMake - C Compiler Toolset
  • NAlgebra - Linear Algebra Library

✍️ Authors

🎉 Acknowledgements

📸 Screenshots

Inside MandelBulb Inside Video MandelBulb