Hover over canvas

Domain Colouring

Hue = arg f(z) (angle, 0→360°). Brightness contours mark |f(z)| = 2ⁿ. Zeros where all colours converge. Poles where colours swirl in reverse.

Navigation

Scroll / pinch to zoom. Drag to pan. Hover to read z, |f(z)|, arg f(z) at cursor. Save as PNG.

Identifying Features

Order-n zero: n rainbow cycles converging. Order-n pole: n cycles diverging. Essential singularity: infinitely many cycles.

Conformal Maps

Holomorphic f with f'(z)≠0 preserves angles. Locally, image regions look like scaled rotations of the domain.

What Is Domain Colouring?

A complex function f: ℂ → ℂ has a 4-dimensional graph — impossible to visualise directly. Domain colouring (popularised by Frank Farris and Hans Wegert) resolves this by mapping each input point z to a colour determined by f(z): the hue encodes the argument arg(f(z)) ∈ (−π, π] cycling through the full colour wheel, and the brightness encodes |f(z)| using logarithmically spaced contour rings (each ring boundary marks a power of 2 in magnitude).

Colour(z) = HSL( arg(f(z)) / 2π, 0.85, brightness(|f(z)|) ) brightness(r) = 0.5 + 0.45·sin(10π·frac(log₂ r)) Zeros: |f(z)| → 0 ⟹ all hues converge to a point Poles: |f(z)| → ∞ ⟹ colours diverge from a point (reverse winding)

Reading the Image

FeatureVisual SignatureExample Function
Simple zero (order 1)One clockwise rainbow cycle converging to a single pointf(z) = z, f(z) = z−a
Zero of order nn clockwise rainbow cycles convergingf(z) = zⁿ
Simple poleOne anti-clockwise rainbow cycle divergingf(z) = 1/z
Pole of order nn anti-clockwise rainbow cyclesf(z) = 1/zⁿ
Essential singularityInfinite colour oscillation near the pointf(z) = exp(1/z) at z=0
Branch cutSharp discontinuity in hue along a rayf(z) = √z (cut along negative real axis)
Conformal regionLocally, grid-squares look like scaled rotationsAny f with f'(z) ≠ 0
Critical point f'(z)=0n colours converge without a magnitude zerof(z) = z² at z=0 (winding 2, no pole)

8 Built-in Functions

FunctionKey FeaturesTopology
1 zero of order 2 at origin; 2 rainbow cycles converge there2-to-1 map, double cover
1 zero of order 3; 3 rainbow cycles; critical point at 03-to-1 away from 0
sin(z)Zeros at nπ (n∈ℤ); vertical period 2πi; exponential growth im axis∞-to-1; essential sing. at ∞
exp(z)No zeros; periodic vertically with period 2π; no finite singularities∞-to-1; whole function
(z−1)/(z+1)Zero at z=1; pole at z=−1; Möbius transformationBiholomorphism of ℂ̂
1/zSimple pole at 0; conformal everywhere else; inverts unit circleAutomorphism of ℂ̂
z²−1Two simple zeros at ±1; no poles; entire function2-to-1 outside zeros
z·sin(z)Higher-order zero at 0 (order 2); additional zeros at ±nπEntire; exponential type

Frequently Asked Questions

What is domain colouring?
Domain colouring represents complex functions as images: hue encodes arg f(z) and brightness encodes |f(z)|. Zeros appear as bright convergence points, poles as dark divergence points. Developed by Frank Farris in the 1990s and popularised by Elenald Wegert's book "Visual Complex Functions" (2012), it is now a standard tool for teaching complex analysis.
How can I identify zeros and poles visually?
A zero of order n shows n full rainbow cycles converging to the point as you trace a small circle around it. A pole of order n shows n rainbow cycles diverging in the reverse (anti-clockwise) direction. Essential singularities create infinitely many oscillating cycles. Branch cuts appear as sudden hue jumps along rays.
What is conformal mapping?
A holomorphic function f with f'(z) ≠ 0 is conformal: it preserves angles between curves locally. In the colouring, this means small squares remain approximately square-shaped in the image. Möbius transformations f(z) = (az+b)/(cz+d) are globally conformal on the Riemann sphere and map circles and lines to circles and lines. Conformal maps are used in fluid dynamics, electrostatics, and aerodynamics to transform complicated boundary shapes into simple ones.
Why does exp(z) look like vertical stripes?
Because exp(x+iy) = eˣ·(cos y + i·sin y). The argument cycles with period 2π in y (vertical), producing one rainbow band per 2π height. The magnitude eˣ grows exponentially as x increases (rightward), making brightness values larger. Since exp(z) is never zero and has an essential singularity only at ∞, the image has no convergence/divergence points.

Explore More Mathematics