February 10, 2013

Conformal Map Viewer

Have you ever wanted a visualization tool for complex functions?

While reading some complex number proofs I wanted one, but online I could only find installable software or Java applets (to be avoided because of security problems). So I wrote a Javascript conformal map viewer, which you can see here (click here to view it as a full page - it is about 1000 lines of javascript on a single page, and it is a nice example of doing canvas rendering with web workers):

The starting function "(z)" is the identity function, and shows how the tool colors the complex plane, with a ring at |z| = 1 and a small circle at |z| < 1/16, and 1/16th unit colored checkers on the rest of the plane. There is also a colored circle shown towards infinity, at |z| > 16. Colors are turquoise in the positive direction, red in the negative, gold-green in the "+i" direction, and they get darker as you go out towards infinity. The tool draws a quick fuzzy preview; wait a minute for it to complete the computation for a clear antialiased rendering. Lots of other functions can be typed into the box. For example, notice that |z|*e^(i*arg(z)) is the same as z.

Try visualizing the complex values in z^2, sin(z), e^z, log(z), sech(z), arctan(z), z^3-1, sin(z^3-1)/z, Jacobi elliptical functions sn(z,0.3), the Gamma function gamma(z), or a polynomial to squeeze a circle into a square 0.926(z+7.3857e-2 z^5+4.5458e-3 z^9).

Or try this: iter(z+z'^2,z,12). Recognize it?

Posted by David at February 10, 2013 01:54 AM

Thank you so much for your work! This is great!

Posted by: Peter Webb at March 8, 2013 05:34 PM

yes, thank you David. Beautifully executed!

The earth projection reminds me of an enjoyable article in "The Best Writing on Mathematics 2012" titled "Mathematics Meets Photography: The Viewable Sphere", a portion of which is available online at:


Given that article, a nice extension to this function viewer would be to allow pointing it at an arbitrary image. Input images could be expected in the equirectangular projection.

Posted by: Roice Nelson at September 10, 2013 01:33 PM

Thanks David, this is fantastic. I've always wanted to see (or make) something like this that used vector fields rather than colours.


Posted by: Leon at October 14, 2013 09:54 PM

Can Quasi-conformality also be included here !

Posted by: Chetan Waghela at April 21, 2014 04:02 AM

Dear David Bau

I have had an addiction to Doritos for over a century. Your complex grapher has freed me from my chains. I love you. Please make more. Also, sometimes i like to print out the graphs i make and hang them in my room along the wall.

I love you

Posted by: Steve Drambus at December 13, 2014 02:50 PM

Dear David,

Your app is very useful! Thank you to have developed and distributed to us. I was searching for a program to show me what a conformal map do in some curve of the complex plane, for instance as log(z) maps the complex unit circle, or a given straight line. Would be very interesting if you could add a option like that, for instance, the user gives the map (a complex analytic function) and a curve where the map should act, (for instance e^(I*x), where x is real, for the complex unit circle) and the app return the mapped curve. Is this possible?
Thank you very much!

Posted by: Ricardo Vieira at February 9, 2015 04:24 PM

Thanks for the great script! Not only is it fantastic, it also isn't Java! One thing I noticed is that the conformal maps that output are actually the inverse of whatever function you enter. I wrote a conformal mapping script in Python that does the same thing, and I know why that happens (as I am sure you do). You might want to add that caveat to the users of this script, lest people start getting intuition for the wrong maps.

Posted by: Kyle Hovey at March 26, 2015 06:44 PM

This has helped me immensely. You should incorporate a drawing tool, where one can draw a circle of shape and watch as it transforms.

Posted by: Randy at October 14, 2015 03:07 PM
Post a comment

Remember personal info?