The Wheel of Urines
Medieval physicians used urine color to judge health. The rota urinarum arranged twenty named colors around a wheel and linked them to stages of digestio, the supposed “cooking” of the body’s humors. Explore this reconstruction to see how that historical system connected an observation with a diagnosis.
The wheel presents the historical theory in its own arrangement. Select a color or diagnosis to follow the relationship and read its description.
Intent Mark · explanation
NetworkCustomChart: explanation for general-cultural. The historical wheel idiom teaches both the relationships and the worldview that organized them.
{ "ididVersion": "0.1", "chartId": "urine-wheel", "title": "Rota Urinarum", "intent": { "primary": "explanation", "secondary": [ "relationship", "situated-reading" ] }, "audience": { "primary": "general-cultural", "familiarityAssumptions": { "radialNetwork": "low", "diagnosticWheel": "low", "colorSpectrum": "high" }, "literacyTargets": [ { "feature": "historically situated evidence", "rationale": "Readers learn both the relationships and the worldview that organized them." } ] }, "reception": { "channels": [ "visual", "interactive", "screen-reader", "agent" ], "strengths": [ "memorable", "situated", "exploratory", "teaching-friendly" ], "risks": [ "unfamiliar form", "historical color semantics can be mistaken for modern medical evidence" ], "scaffolds": [ "legend", "layered description", "provenance annotations", "accessible table", "grouped navigation" ], "memorableForm": true }, "designContract": { "chartFamily": "NetworkCustomChart", "whyThisForm": "The historical wheel idiom teaches both the relationships and the worldview that organized them.", "whyNotDefault": "A bar chart would enumerate colors or diagnoses but erase the spectrum, the many-to-one relationships, and the situated act of reading the wheel.", "risks": [ "unfamiliar form", "historical color semantics can be mistaken for modern medical evidence" ], "misuse": [ "presenting historical associations as modern medical claims", "removing textual provenance", "using color without names and connections", "flattening the wheel into decorative radial placement" ] }, "accessibility": { "description": "A custom radial network connecting 20 named urine colors to 7 stages of digestion. Color nodes form a continuous white-to-gold-to-black ring; diagnosis nodes sit at the mean angle of the colors connected to them. Gold and ruddy colors gather around perfect digestion, while pale colors lead toward indigestion and dark colors toward burning and mortification. This is a situated explanatory chart: its historical wheel idiom teaches the medieval diagnostic worldview while interaction and text scaffolds keep that unfamiliar form receivable.", "navigation": true, "dataFallback": true, "manualChecks": [ "real screen-reader behavior", "keyboard order quality", "custom metaphor comprehension", "animation distraction" ] }, "provenance": { "reviewStatus": "historical interpretation reviewed in docs", "generatedBy": "Semiotic recipe intelligence" } }Reading the wheel
The color order follows a single spectrum that wraps the ring: the two pathological extremes — Albus (white, the raw, uncooked humor) andNiger (black, the humor burnt to death) — meet at the bottom, whileRufus and the golds, the urines of perfect coction, crown the top. Read clockwise down the right side and the urine grows ever more “cooked”: gold, red, wine-dark, green, lead, black. Continue up the left side and it runs back from cold white through the pales to gold. Hover any flask to trace it to the diagnosis it signifies; hover a roundel to light every color that points to it.
A network drawn in a ring
The twenty flasks sit evenly around the rim. Each diagnosis sits near the colors linked to it: the golds place “perfect digestion” toward the top, while the darkest colors place “mortification” near the bottom. The layout calculates those positions from the connections.
import { NetworkCustomChart } from "semiotic" import { networkHitTarget, polarToXY, xyToAngle, TAU } from "semiotic/recipes" function urineWheelLayout(ctx) { const { plot } = ctx.dimensions const center = { x: plot.width / 2, y: plot.height / 2 } const rOuter = Math.min(plot.width, plot.height) / 2 - 92 const rInner = rOuter * 0.45 const slot = (order) => (order / 20) * TAU // clockwise from the top // 20 colors at even angles around the rim. const colors = ctx.nodes.map((n) => n.data ?? n).filter((d) => d.kind === "color") const colorPos = new Map( colors.map((c) => [c.id, polarToXY(slot(c.order), rOuter, { center })]) ) // Each diagnosis settles at the *unit-vector mean angle* of its colors, so // "perfect" rides up under the golds and "mortification" sinks by the blacks. const place = (members, r) => { const a = members.map((c) => slot(c.order)) const angle = xyToAngle(mean(a.map(Math.sin)), mean(a.map((x) => -Math.cos(x)))) return polarToXY(angle, r, { center }) } return { // transparent, keyboard-navigable, annotation-anchorable hit nodes — // the visible flasks + roundels are drawn by hand in `overlays`. sceneNodes: nodes.map((n) => networkHitTarget({ x: n.x, y: n.y, r: n.hitR, datum: n.raw, id: n.id })), overlays: <WheelArt colors={colorPos} diagnoses={diagPos} />, } } <NetworkCustomChart nodes={URINE_NODES} edges={URINE_EDGES} layout={urineWheelLayout} layoutConfig={{ language, showTree }} // geometry-changing config only selection={{ name: "urine-wheel-active" }} // highlight restyles, no relayout annotations={physiciansNotes} // pointId-anchored, with provenance description="A medieval uroscopy wheel…" accessibleTable frameProps={{ background: "transparent", tooltipContent: renderTooltip }} />What the custom layout inherits
Use a pointer or keyboard to move between flasks and diagnoses, or open the data table to read their relationships. The Latin/English control changes the labels, and the export control saves the wheel as SVG or PNG.
Color names and their similes (ut aurum — “like gold”) follow the uroscopy tradition of Gilles de Corbeil and the Articella; the seven central glosses echo the prognostic phrases inscribed in printed wheels such as Ullrich Pinder'sEpiphanie Medicorum (1506). The arrangement, colors, and translations are encoded as data; all positions are generated at render time.