Aaron Montag

Dr. Aaron Montag

Geometry and Visualization

montag (at) ma.tum.de

Tel: +49-(0)-89-289 18353

Raum: 02.06.053



Mission Statement

My mission is it to ease the process of creating GPU accelerated visualizations for Mathematicians and Educators. I have developed CindyGL, which embeds shader programming into the dynamic geometry software CindyJS. Several mathematical concepts from geometry, complex analysis, differential equations, and statistics can be investigated and communicated through this framework.

GPU accellerated visualizations

CindyGL makes it possible to use the GPU within dynamic geometry software.  Let me present you here a small collection of interactive visualizations that I generated through this framework.

Stereographic projection of spherical footage.

In this applet, you see how the stereographic projection of a sphere onto a plane is obtained. For each point on the surface, a ray from the north-pole through this point is constructed. The intersection of the ray with the plane is the projected point.

Arbitrary spherical footage can be put onto the sphere.


This is a collection of video-feedback loops generated within CindyJS. This setup was used for a demonstration at the Open Doors Day at Technical University of Munich 2016.

In order to run these examples you require a webcam that points to your screen. You might use an external screen and your internal webcam or a USB-connected camera..

Raycasting algebraic surfaces

CindyGL is powerful enough to implement a raycaster, that can render surfaces, defined as zero-sets of algebraic functions in three variables.

In the picture on the left, the set $x^2+z^2-1/3*(1+y)^3*(1-y)^3=0$ is rendered. The lightning is obtained via a Monte Carlo simulation, which implementation can also be found in TUMinteractive.

Deformations of spherical footage

Spherical footage, if interpreted to be laid on the Riemann sphere, can be conformally edited using analytic functions.

If you enter a complex function in this applet, it is pulled back through the stereographic projection. Each pixel with complex coordinate $z$ gets the color of the pixel with coordinate $f(z)$. On the picture on the left, the function $f(z)=z^2$

Nice effects can be obtained if conformal functions that describe Droste effect are applied in this setting. If this effect applied to spherical footage, it is possible to investigate how a mathematical continuation looks like if you turn around.

Simulation of PDEs

CindyGL can also be used to simulate PDEs. For instance, the Navier Stokes equations can be approximated with it or reaction–diffusion systems can be simulated with it.

Interplay with gesture detection

It is possible to access PoseNet/Tensorflow in CindyJS. The detection of poses of a webcam videostream combined with a framework that enables GPU accellerated computation make it possible for instance to render a Human tree based on detected gestures or the Julia sets can be intuitively controlled by gestures.