Overview


Fractal Explorer generates the Mandelbrot and Julia fractal sets, with unique display options and dynamic visual effects setting it apart from other fractal viewers.



Try the fractal explorer here →

Design and Implementation


The main technical consideration was to enable real-time rendering in a web browser on standard consumer devices. Fractal viewers typically prioritize deep zoom capabilities, which can only be achieved with 64 bit float values or higher. Since WebGL is limited to 32 bit floats, the workarounds for 64 bit precision require significantly more processing. This means they can not update in real time. There is already an abundance of slow and static 64 bit Mandelbrot viewers, but none with a focus on generating dynamic real time visuals. This was my most significant design tradeoff – use WebGL’s native 32 bits and emphasize real time rendering and effects, rather than allow deep zoom and high iteration counts.

An unusual choice I made was to render the Mandelbrot set ‘upright’. The orientation of the set is entirely arbitrary, convention dictates that it is always rendered in the ‘sideways’ position. I much prefer the vertical symmetry of the upright version, and so I have rendered it as such.

The primary UI consideration was how much functionality would be user-exposed. Given the technical nature of the topic, it seemed reasonable to prioritize unique and advanced features over accessibility. It was imperative that most of the screen space was reserved for the main viewing window, so this presented a challenge - how to offer advanced user controls while preserving screen space, without hiding them behind convoluted menus and keyboard shortcuts. I solved this by having all controls contained within two sidebar menus, which can both be collapsed to free the entire window for the fractal displays.