isogram

Craft: making a diagram that explains

Lessons carried over from anatomy (dozens of reviewed figures) and iso-glow (twenty figures), adapted to feature diagrams that live on product and docs pages.

1. The object is the explanation

Readers understand a mechanism they recognise. Pick a machine, instrument or piece of furniture whose working maps one-to-one onto the feature, and say in one sentence what moves and what that motion means.

Feature Object
Call routing rules A router with rule keys that light in turn and a rotary selector that swings to the chosen line
A multi-step process (a recipe, onboarding, a build) The real thing being made, step by step: a pumpkin that is cut, scooped, drawn on, carved and lit
Ring timeout → voicemail A handset that jiggles while a timer counts, then a tape recorder whose reels spin
A queue and workers A conveyor carrying cubes to a row of stamping presses; a press lights while busy
Retries with backoff A ball launcher that re-fires after longer and longer pauses, a counter on its side
A cache A drawer cabinet: a hit slides one drawer open; a miss walks to the archive cylinder and files a copy
Webhooks / fan-out A splitter box with one input and several outputs, a packet down each
Rate limiting A turnstile with a token hopper; no token, the arm stays locked
Search / indexing A card catalogue: cards drop into lettered trays
Sync between devices Two terminals and a relay tower; a change on one lights the other
Number provisioning A vending machine dispensing numbered tiles into a tray
Permissions A key rack and locked doors; the right key turns one lock

Two ways it fails: too abstract (labelled boxes, floating slabs) and too flat (one big slab with a few lines). The fix for both: a recognisable machine made of many small, purposeful parts. Take a reference's finish, never its object, and never a real product's silhouette or logo.

2. Truth first

Collect the real behaviour before geometry: the order of steps, the decision points, thresholds and defaults (ring timeout 20 s, 3 retries, 42 ms). Put them as named constants at the top of draw, compute every motion and every readout value from them, and say in the hand-over which numbers you assumed. A figure whose readout disagrees with its motion is worse than no readout.

3. Parts list

Write the parts before drawing, grouped:

A Figure has 25–60 parts. Every part sits on another part; every wire ends on a port. Give the long, detailed side of each object to the FRONT or SIDE face (only those and the top are visible).

4. Tone hierarchy and light

5. Motion

Parts that come out of other parts

Painter's order cannot put a part inside a solid. For a tile leaving a slot, a drawer opening, a card ejecting: draw the moving part as a box whose depth grows from ~0.5 to full while its back face stays flush with the host's face (it extrudes out of the slot), drawn right after the host. Going into something, shrink it the same way, or let it pass behind the host's front and fade (op). Don't move a full-size box through a wall: it shows through the face.

6. Words

Words stay out of the drawing except short engraved labels (one or two words, ≤ 8 characters if the pixel look matters) and screen text. The card carries the language: title, one caption per beat, a terse lowercase readout from the model (rules 2/3 passed, ringing sales · 12 s / 20 s). Captions are plain sentences a reader could repeat; keep them under ~32 characters (pixel trims longer ones) and readouts under ~22.

7. Per-look notes

8. Composition

The subject sits near the centre and the whole figure fills ~55–65% of the stage. Auto-fit covers everything drawn over the loop, so a tall mast or a far-off wire shrinks everything; trim outliers or set bounds. Keep one scale and one accent across a set of figures on the same page. Check it at 390 px wide.

9. Review checklist (read the PNGs)

Run export.mjs … --formats png,sheet for the target look and for pixel, read every image, and crop/zoom into busy areas (python3 -c "from PIL import Image; …crop(…).resize(…)").