Skip to content

<notatio-complex-plot>

<notatio-complex-plot value="PolyLog(2, z)"> -- domain-colouring of a complex-valued expression over the complex plane, one GPU invocation per pixel: hue is the argument, brightness a compressed log-magnitude, poles white and zeros black.

Any expression the complex emitter can lower works, so this replaces a hand-written shader per function. Under <notatio-manipulate> every constant becomes an axis:

``html <notatio-manipulate params="{s, 0.5, 6, 0.05}"> <notatio-complex-plot value="PolyLog(_s, z)" mask="1" /> </notatio-manipulate> ``

A slider moves a literal, not the expression's shape, so the compiled pipeline is reused and the frame costs one small uniform upload -- which is what lets Manipulate interpolate between slider steps and still hold frame.

mask dims everything outside that radius, for a series whose disk of convergence is part of the story (the polylog's |z| < 1). Drag to pan, scroll to zoom.

Framing is manipulable too: extent="_e" takes a wildcard directly, and center accepts the notatio list form [_c, 0] as well as a bare re,im.

Stories in the playground·packages/notatio-lit/src/notatio-complex-plot.ts· in Vue: <ComplexPlot>

Attributes

AttributeTypeDefaultNotes
valuestring""The complex-valued expression to colour, in notatio.
varstring"z"The complex variable; defaults to z.
centerstring"0,0"Centre of the view in the complex plane, as re,im. Dragging pans it.
extentnumber2.4Half-width of the view. Scrolling zooms it.
masknumber0Dim everything outside this radius; 0 masks nothing.
heightnumber460Canvas height in pixels.
fpsbooleanfalseShow a frame-rate readout.