How this site is made

The figure library

Every picture here is generated from code at build time. This page lists the generators by the family that declares them; each one has a page of its own showing what it draws and which essays call it.

No figure on this site is a drawing that was made once and saved. Each one is a function: it takes a circuit's parameters, solves the network, and returns SVG. The same generator draws a capacitor with a nanohenry of lead and one with twenty, and neither is redrawn by hand — which is also why every frame a reader can reach on a slider has passed the same assertions as the one printed on its page.

That is the reason the collection can keep growing without the illustrations drifting apart. A generator is written once, checked once, and every essay that calls it inherits the same line weights, the same colour roles, and the same behaviour in dark mode. There are 135 of them so far, and between them they carry several hundred assertions that run at build time — a figure whose circuit does not do what its caption says stops the build rather than shipping.

Each generator's own page says how many essays call it, which is the number worth knowing before editing one. This page used to render all of them inline and had reached 182 kB compressed, growing by one figure every time a generator was written; the split happened in the scale phase, for that reason and because the count only goes up.

The line in italics under each name is the edge that generator states at its defaults — the frequency, amplitude or size at which the model in the picture stops being true — and it is the one slot of the caption strip that is never used for anything else. It is not copied from the source: each was read back out of the finished SVG, because almost every one of them is a number the solver produced and the only place the sentence exists is the drawing. An essay usually calls the generator at its own numbers rather than these, so the edge a reader meets on the page will be a different number arrived at the same way.

Networks, and how a solve is checked

9 generators, in lib/figures/networks.js

Frequency, which is the same solve

8 generators, in lib/figures/frequency.js

Before the steady state

11 generators, in lib/figures/transients.js

Filters, measured not tabulated

13 generators, in lib/figures/filters.js

Feedback, and the margin

13 generators, in lib/figures/feedback.js

Where the models stop

6 generators, in lib/figures/limits.js

Power, and the part that does no work

7 generators, in lib/figures/power.js

Devices, and where they stop being linear

13 generators, in lib/figures/semi.js

Lines, where a wire has a length

8 generators, in lib/figures/lines.js

Measurement, which is a circuit on a circuit

11 generators, in lib/figures/instruments.js

The floor, and what is under it

6 generators, in lib/figures/noise.js

Where a signal becomes a number

9 generators, in lib/figures/digital.js

Two windings, and the band between them

13 generators, in lib/figures/magnetics.js

Circuits that do a job, and the range they do it over

8 generators, in lib/figures/applied.js