Real-time Mandelbulb Explorer



Real-time Mandelbulb Explorer (img)

Description:

The Real-Time Mandelbulb Explorer is an interactive 3D fractal visualization and exploration game that I built in Unreal Engine 5. The goal of the project was to create a fully immersive, real-time experience that allows a player to explore the infinite complexity of the Mandelbulb and its associated Julia sets. Unlike 2D fractal viewers or pre-rendered 3D fractals, I wanted users to move freely through a volumetric fractal environment, experiencing the intricate detail at any scale. The primary challenge was balancing real-time rendering with the mathematical demands of fractals. To achieve this, I implemented a ray marching algorithm in an HLSL shader using signed distance functions to represent the surfaces. Depth buffers, dynamic lighting, shadows, and Phong shading were integrated to enhance realism. A key design decision was to make the camera velocity proportional to the distance from the fractal surface, which gives the illusion of infinite zoom and allows users to feel the scale of the fractal intuitively.

The build process began with research into GPU ray marching and SDFs, including following tutorials and reading forums to understand best practices. I initially worked with static step sizes but encountered banding artifacts in the depth map. Switching to dynamic step ray marching solved this while improving performance. Shadows were added by marching rays from the surface to the light source and testing for intersections, creating a realistic depth effect. For interactivity, I mapped Xbox controller inputs to adjust camera movement and fractal parameters such as recursive power and rendering options. Since most of the computation occurs on the GPU, debugging was visual and iterative, which required careful observation of visual artifacts.

The highlight of the project is its interactive quality and the sense of scale it conveys. By combining real-time rendering with depth-aware camera motion, the experience allows the user to explore fractals as living, explorable spaces. This project also pushed me to understand the underlying mathematics of fractals deeply and to apply complex shader programming techniques. One limitation was floating-point precision: extreme zooms caused blocky errors, but these artifacts became an unexpected feature that visually illustrated computational limitations. Overall, the project successfully fulfills my goals of education, exploration, and interactivity, providing a unique, hands-on way to experience the infinite complexity of fractals.

 

FULL DOCUMENTATION: 

Tools:

All the tools that I used in this project:

Unreal Engine HLSL Python Blender C++ Blueprint