For full functionality of this site it is necessary to enable JavaScript. Here are the instructions how to enable JavaScript in your web browser.

A **Möbius transformation** is **f( z ) = ( az + b ) / ( cz + d )** where **z**, **a**,
**b**, **c** and **d** are complex numbers. Drag the points to change the transformation.

To simplify the transformation, set **c** to zero (move it to the origin). Now **a** and **b** between
them give a similarity transformation: **a** controls the scale and rotation while **b** controls the translation.

The identity transformation is given when **b**=**c**=0 and **a**=**d**.

A *normalized* Möbius transformation is one where **ad - bc = 1**.

A *unitary* Möbius transformation has **c = -b̅** and **d = a̅** (where **z̅** is the complex conjugate of **z**).

A normalized Möbius transformation is *loxodromic* if **a+d** is not on the real line. Set **Non-loxodromic: ON** to enforce that **a+d** is real, and **Normalize: ON** to ensure that the transformation is normalized. Then if **|a+d| < 2** the Möbius transformation is *elliptic*. If **|a+b|=2** then it is *parabolic*. Otherwise, with **|a+d| > 2**, it is *hyperbolic*.

A Möbius transformation with **|a|² - |b|² = 1, c = b̅, d = a̅** maps the unit circle to itself. Set **Unit circle group: ON** to enforce this contraint. When **a** is real this gives a translation of the hyperbolic plane in the Poincaré disk model.

With **Drawing mode: ON**, draw on the screen. Multiple copies of the drawing (blue) under iterations of the Möbius transformation (green) and its inverse (red) are shown.

Read the book Visual Complex Analysis by Tristan Needham. To see the relationship with the Riemann sphere, see this video. To explore the possibilities of iterating Möbius transforms, see the book Indra's Pearls, by David Mumford, Caroline Series and David Wright.

Source code: https://github.com/timhutton/mobius-transforms