Inspiration
I wanted to make a project that turns an abstract mathematical idea into something people can directly explore. The equation behind the Mandelbrot and Julia sets is simple, but repeated iteration creates infinite detail. Infinity Math came from the idea that mathematics, algorithms, visual computing, and device performance can all be experienced through one interactive tool.
What it does
Infinity Math is an interactive complex-dynamics laboratory. I can explore Mandelbrot and Julia sets, zoom and pan through fractals, adjust the iteration limit, and export the generated image as a PNG. When I click a point, Infinity Math reveals its complex coordinates and calculates every step of the orbit using zₙ₊₁ = zₙ² + c. It shows whether the orbit escaped, reached the iteration limit, or entered a detected bounded cycle, then plots that orbit on an Argand diagram. It also includes an educational maths section and a performance lab for comparing rendering times at different resolutions and iteration limits.
How we built it
I built Infinity Math as a frontend-only application with React, Vite, and TypeScript. The fractals are rendered directly to an HTML Canvas using the escape-time algorithm and smooth colouring. I wrote the complex-number arithmetic, orbit calculation, coordinate transforms, escape detection, and pixel renderer from scratch. Rendering work runs in a Web Worker so the interface remains responsive during heavier calculations. I also added automated tests with Vitest for complex arithmetic, orbit classification, escape detection, viewport mapping, and pixel-buffer generation.
Challenges we ran into
The biggest challenge was balancing mathematical accuracy with a smooth, understandable experience. A fractal renderer can easily become slow when resolution or iteration count increases, so I had to make rendering efficient and move it off the main thread. Another challenge was making orbit states honest: an orbit that has not escaped after a finite number of steps is not always proven bounded. Infinity Math distinguishes escaped orbits, detected repeating cycles, and points that simply reached the chosen iteration ceiling. I also had to refine responsive canvas sizing and mobile navigation so the scientific interface stayed usable on smaller screens.
Accomplishments that we're proud of
I’m proud that Infinity Math is more than a pretty fractal viewer. It makes the individual calculation behind a pixel visible, including the full iteration sequence and its path through the complex plane. I’m also proud of the combination of maths and computer science: the same application teaches recursion and complex numbers while showing the real performance cost of rendering millions of iterations. The interface is polished enough for a short hackathon demo, while the underlying calculations are tested.
What we learned
I learned how much depth can come from a very small mathematical rule. I also learned that visualising an algorithm makes concepts like recursion, escape conditions, coordinate systems, and computational complexity much easier to understand. Technically, I learned more about Canvas rendering, transferable pixel buffers, Web Workers, responsive interaction design, and the importance of separating mathematically proven states from finite approximations.
What's next for Infinity Math
Next, I’d like to add deeper zoom levels with progressive rendering, additional fractal families, custom palettes, saved exploration locations, and side-by-side Mandelbrot/Julia connections. I’d also like to extend the performance lab with worker-versus-main-thread comparisons, benchmark history, GPU rendering experiments, and an optional guided learning mode with interactive challenges.

Log in or sign up for Devpost to join the conversation.