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

Very impressive, thank you for sharing this tool.

It's interesting to visualize the transformation from z to any other function with

e^z for example :


You can see how '-1' goes to e^(i*pi) ^^

Posted by: Christophe at January 7, 2016 06:05 PM

Hello David,

I've been playing around with the tool where the satellite view of the Earth is being plotted and I find some of the formulas to look really beautiful when plotted.

For example, this one: http://davidbau.com/conformal/#cos(e%5E%7Cz%2B35%7C)%2Fsin(z%5E2)&b=earth

I'd like to give a framed art print of a different but similar plot to my spouse as a gift. Would it be possible to be able to download a jpg of a higher resolution than the website currently allows? This would be greatly appreciated by the both of us. :)



Posted by: Gabriel at January 13, 2016 02:27 PM

This is super neat! It'd be awesome to have a 3D adaptation of this.

I have a question about the iterated function syntax though: I can tell the first argument is the function you want iterated, and the third is the number of iterations, but I can't for the life of me figure out what the second argument is.

Posted by: efriel at February 8, 2017 07:29 AM

I wish I could give you an award for this, sir.

A superb visualization tool.


Posted by: Tom Martin at September 25, 2017 02:47 AM

Thank you, thank you, thank you!

Posted by: Jose Luis Bejarano at October 16, 2017 06:33 PM

hi, may I ask what is the license?

may I use it (mirror) on my website, with possible edit?


Posted by: Xah Lee at December 3, 2017 05:06 AM

You made a mistake between the zē and the sqrt(z) graphs.

Posted by: Simcha Waldman at March 20, 2018 08:17 AM

> the conformal maps that output are actually the inverse of whatever function you enter... I know why that happens (as I am sure you do)

I don't know why this happens. Anyone care to share?

Posted by: Septimus at August 14, 2018 12:59 AM

I wonder if you can create an option so that each we can upload a photo and the complex function that we want to define will act on our picture. I think this would be enchanting for students.

It is a wonderful idea what you have done here!

Posted by: Maxim Bogdan at February 23, 2019 12:18 PM

Thank you very much for your grate work.
How can I refer to it in my paper?

Posted by: Rabha Ibrahim at June 18, 2019 06:17 AM

can you make it to you can see the values of z when you hover over the map

Posted by: at October 17, 2019 03:52 PM


plz help me insert this example into mathematica to illustrate the transformation

Posted by: Majda at May 7, 2022 06:39 AM

What happened to the "invert" option that was available in a previous version?

Posted by: Matt at October 16, 2023 01:42 PM
Post a comment

Remember personal info?