Complexify

This project is a web application about the visualization of complex-valued functions. This is achieved with several standard methods such as domain coloring and the stereographic projection thereof onto the Riemann sphere. Using an equation editor, users can not only visualize complex-valued functions, but also interact with the plotted graph by dragging and zooming it.

Tech Stack

Complexify is a NextJS application with TailwindCSS and HeroUI (formerly NextUI) for components and stylization. Equations can easily be edited with a React-wrapper for MathQuill, which produces a LaTeX representation of the equations that need to be visualized. These equations need to be parsed both to JavaScript and to a shading language for the visualization (GLSL).

The visualization itself is achieved with a React-port of ThreeJS, a web-based implementation of OpenGL, which can render a 3D viewport in the browser. The parsed GLSL code can then be used as a fragment shader to render the mesh, and dynamically re-rendering the mesh on user interactions can be done by supplying uniform variables to the shader and changing them on-demand.