Proof

Every number

The tables behind the proof page, in full and in one place: 27 connection gains, 50 other free parameters, and both shuffle ladders rung by rung. Nothing here is a summary of anything. The proof page states the claims and the results; this is the arithmetic under them.

Every number below is read when the site is built, either out of the code the piece runs or out of a results file written by the scripts that prepared the data. None of it is typed into this page.


(a)
Read from the connectome.
(b)
A published physiology result implemented as a rule.
(c)
A physical model or a published measurement.
(d)
A stated free parameter.

  1. Connection gains — the ring
  2. Connection gains — the colour column
  3. Every other free parameter
  4. Every rung of both shuffle ladders

Connection gains — the ring(d)

Synapse counts are never edited. Tuning enters the model in exactly one place: a gain per (pre, post) pair that multiplies the raw count. The whole table is below, generated from the gain table the engine runs on, so it cannot drift out of date with the model that uses it.

The names in this table are classes, not cell types. Unlike every other name on these pages, they will not be found in the Cell Type Explorer, and they are deliberately not linked to it. EPG covers EPG and EPGt; PEN covers PEN_a(PEN1) and PEN_b(PEN2); D7 is Delta7; ER covers ER2_a, ER2_b, ER2_c, ER2_d, ER4d and ER4m; FC2 covers FC2A, FC2B and FC2C. In the colour table below, R16 is R1–R6, L is L1, L2 and L3, Tm5 is Tm5a, Tm5b and Tm5c together, and R7, R8 and Dm8 each cover their pale and yellow subtypes. The class of every type is mirrored from gate_a.json, and the real type strings are in the roster.

The aggregation is a choice and it cuts both ways. It is the level at which the architecture in Hulse et al. 2021 distinguishes pathways, and keying the table by subtype would inflate the count of free parameters with subtypes that were never fitted separately. But it also means a row below is a statement about a group of cell types rather than about one: every ER2 and ER4 cell in the model shares one number, and nothing here measures whether they should.

EPGPEN
0.002
free (pathway and sign from Hulse et al. 2021 architecture; value fitted to bump FWHM ~90 deg)
PENEPG
0.002
free (pathway and sign from Hulse et al. 2021 architecture; value fitted to bump FWHM ~90 deg)
EPGPEG
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
PEGEPG
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
EPGD7
0.009
free (pathway and sign from Hulse et al. 2021 architecture; value fitted to bump FWHM ~90 deg)
D7EPG
0.009
free (pathway and sign from Hulse et al. 2021 architecture; value fitted to bump FWHM ~90 deg)
EPGEPG
0.001
free (pathway and sign from Hulse et al. 2021 architecture; value fitted to bump FWHM ~90 deg)
EREPG
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
EPGPFL3
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
FC2PFL3
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
PFL3DNa02
0.0003
free; held at the default — the grid search did not distinguish it from the floor.
every other pair
0.0003
A real pathway that nobody fitted still conducts. Setting unfitted pairs to zero would be deleting data to make the model tidier, so they run at one stated background gain, which is itself a free parameter.

11 of the 11 named gains are marked free, plus the background gain.

That count is the ceiling, not the result, and the honest number is smaller. 6 of the 11 named pairs hold exactly the background value: the grid search did not distinguish them from the floor, and their rows above say so rather than repeating the provenance of a fit they were not moved by. 5 pairs differ from the floor, and between them they take 3 distinct values, so the whole ring table is 4 numbers: 0.0003, 0.001, 0.002, 0.009.

Connection gains — the colour column(d)

The colour column has its own gains. They were fitted rather than hand-set, and the objective they were fitted against is printed below so the fit can be judged, not just the result. Provenance, from gate_b.json: all free; structure from Christenson et al. 2024. The rows below are ordered class pairs, and there are more rows than there are numbers; the count is underneath them.

These rows are read from the table the engine multiplies synapse counts by, and a test asserts every one of them against gate_b.json, where they were fitted. That is not a formality: publishing the fitted numbers while the engine ran on different ones would make this page a description of a model nobody is watching.

R7Dm9
0.01409
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
R8Dm9
0.01409
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Dm9R7
0.01985
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Dm9R8
0.01985
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
R7Dm8
0.03895
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Dm8Tm5
0.4
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
R8Tm20
0.005
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
R16L
0.02256
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
LTm5
0.0053
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
LTm20
0.0053
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Tm5Tm5
0.0665
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Tm20Tm20
0.0665
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Tm5Tm20
0.0665
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
Tm20Tm5
0.0665
free (pathway and sign from the connectome; value fitted to the hue sensitivity indices and preferred colour bands published by Christenson et al. 2024)
every other pair
0.002
Fitted by log-uniform random search then coordinate polish: 4,000 random draws and 4 polish rounds, seed 20260915, final loss 1.283.

That is 14 rows carrying 8 numbers, or 9 counting the default. The sharing is deliberate and not an accident of the fit: 4 of the 8 were fitted as a single parameter across more than one ordered class pair, because they are the same pathway. 0.0665 is Tm5->Tm5, Tm20->Tm20, Tm5->Tm20, Tm20->Tm5 (4 pairs, one parameter); 0.01409 is R7->Dm9, R8->Dm9 (2 pairs, one parameter); 0.01985 is Dm9->R7, Dm9->R8 (2 pairs, one parameter); 0.0053 is L->Tm5, L->Tm20 (2 pairs, one parameter).

Cross-check: the fit declares 8 search ranges, one per fitted parameter, which is the same 8. The count above is derived from the values the model runs on; this one is derived from what was searched.

This is the class keying above, applied a second time, and it carries the same cost. A shared row is a claim that the pathways sharing it behave alike — that Tm5->Tm5, Tm20->Tm20, Tm5->Tm20, Tm20->Tm5 are one thing, held to one number, and nothing in this gate measures whether they do. What it buys is the honest number: the colour column is tuned by 8 scalars and a default, not by 14.

Squared error against Christenson's published numbers.

    L = sum_t (HSI_model - HSI_published)^2
      + sum_t (nm outside the published colour band / 100)^2

Rejected (returns inf) if any output is flat, or floored at 0 or pinned at r_max
on more than `FIT_MAX_FLOORED_FRACTION` of the probe set: a saturated circuit can
score well on HSI by accident and is not a hue detector, and neither is one that
reports nothing at all across most of the spectrum.

Also rejected, when `separation` is supplied, if it is below
`GATE_D_MIN_SEPARATION`. That is Gate D used as a CONSTRAINT and never as a term:
the objective is still Christenson's published numbers and nothing else, so no
gain is ever moved in order to raise a colour range (CLAUDE.md rule 4). What the
constraint does is refuse the trade the roster experiment found by accident -- a
circuit that scores better on narrowband probes by going blind under daylight.
`separation` is None for a bare re-score of an existing table, which is why the
published `final_loss` in gate_b.json stays comparable with every earlier run.

Christenson et al. 2024 publish NO absolute firing rates for these cells. Their circuit model (their eq. 8) uses a modified tanh with a_NL = 1 and is fitted by negative summed correlation (their eq. 9), so response amplitude is not identified in their units and there is no rate range to calibrate against. Their fitted weight matrix exists only as Extended Data Fig. 7g and is not published as numbers. What they DO publish as numbers, and what the gains here are therefore calibrated against, is the hue sensitivity index per type (Tm5a 0.65, Tm5b 0.65, Tm20 0.55, Tm5c 'in the same range as the photoreceptor axonal terminals', which they give as 0.25-0.5) and the preferred colour band per type. Those are the two terms in the objective above. The operating point is reported alongside so a reader can see the cells are exercised rather than idling near background — which they were not in the first version of this file, before the gains were calibrated.

Every other free parameter(d)

Constants exported by the engine, with the values the engine holds: 50 of them, counted by iterating the exported tables rather than by anybody keeping a tally. The count is the ceiling: a row whose source says it is a measurement is one, and is not tuning. That is the number the about page quotes, derived the same way from the same tables. A parameter added without a source shows up here saying so.

tauMs
100
Free. Held equal to gate_a.json model.tau_ms so the TypeScript engine and the Python reference solve the same equation. — the rate model
rMax
1
Free. The saturating ceiling of φ in SPEC §3.6’s rate equation. — the rate model
noiseSd
0.02
Free. SPEC §3.6’s ξ term, seeded per piece so replay is bit-exact. — the rate model
bias
0.06
Free. Tonic drive on EPG; held equal to gate_a.json model.bg_epg. — the rate model
erLight
0.1
Free. Baseline drive on the ER ring neurons in daylight; gate_a.json model.bg_er_light. — the rate model
erDark
0
Free. Baseline drive on the ER ring neurons in darkness; gate_a.json model.bg_er_dark. — the rate model
steeringGainScale
16
Free. One scale on the connections into PFL3 and DNa02, the steering pathway. The compass was fitted to a target — the width of the bump — that those three connections do not affect, so the grid search left all three on the floor, and the gain table says so. Measured before it existed: setting goalDrive to zero, and steeringK to 0.5 or to 8, produced the same path to four decimal places, because the turn signal sat at the noise floor. A pathway nobody fitted is not a pathway measured to be weak. — the rate model
landmarkDrive
2
Free. Scales the solar landmark drive onto the ER ring neurons. It decides whether the fly holds a bearing or turns: below about 0.35 of effective drive — this number times the sky’s own landmark strength — the steering loop does not close and the walk curls; above it the fly holds a line. At 2.0 a clear London sky is on the holding side and heavy cloud is not. — the rate model
goalDrive
0.35
Free. How strongly FC2 is held to this piece’s goal direction (SPEC §3.6). — the rate model
goalHoldMs
2000
Free. For how long. SPEC §3.6 says the goal is “set at piece start from the current bump”; this is the reading of “set” — the FC2 population is driven to that direction for two seconds and then left to its own connectome input, rather than clamped for the whole piece. — the rate model
steeringK
2.4
Free, and named as free by SPEC §3.6: ω = k · (DNa02_R − DNa02_L). Sign convention from Turner-Evans et al. 2017. — the rate model
v0
0.022965879265091863
Not free, and no longer counted as tuning: a measurement, converted. Free forward walking speed in Drosophila melanogaster peaks at 17.5 mm/s (DeAngelis, Zavatone-Veth & Clark 2019, eLife 8:e46409, Fig. 1C, where the distribution is bimodal — standing at 0 and walking at 17.5, with 2.5th–97.5th percentiles of −1.3 to 30.4 mm/s). The sheet is 762 mm across, so the base speed in sheet widths per second is 17.5 / 762. The standing half of that distribution is the stop state of the gait, not a lower base speed. — the rate model
dopamineGain
1.8
Free, and named as free by SPEC §3.1C: v = v0 · (1 + a · DA). The direction of the effect is documented (Kong et al. 2010; Liu et al. 2012); the size of it is not. — the rate model
plasticityRate
0.0004
Free. Depression rate of ER→EPG synapses. The mechanism is Kim et al. 2019 and Fisher et al. 2019; the rate is ours. — the rate model
plasticityRecovery
0.000002
Free. Recovery rate of depressed ER→EPG synapses. — the rate model
jumpDegrees
60
Free. SPEC §3.5 puts the brush-lift condition at a bump jump over 60° inside 200 ms. — the rate model
jumpWindowMs
200
Free. The window of that same condition. — the rate model
brushR
0.0005971128608923884
The mark’s contact radius at full bump concentration, in sheet widths: half the width of the mark, 0.455 mm on a 762 mm sheet. A free parameter with a physical size — nothing measured says how wide a trail a fly leaves, but the width chosen is the animal’s own, the lateral semi-axis of the head capsule read off the flybody proportions. So the mark is one fly wide, which is 1/837 of the sheet. — the rate model
floorSpan
1.6
Free, and the one number here that is a composition decision. The floor the fly walks on, as a multiple of the sheet’s width, with the sheet centred on it. At 1 the floor is the sheet and the fly turns at the paper’s own edge, which makes the sheet a billiard table: measured on the deposited density, a clear sky scored 0.145–0.325 in structure-tensor coherence against 0.210 overcast — no separation at all on the one thing the piece is named for. At 1.6 they do not overlap, 0.309–0.345 clear against 0.131 overcast; at 2.2 the fly is on the sheet so rarely that the measurement falls apart again. So the calibration is that the separation peaks near 1.6 and that part is measured. What is taste is the coverage the number lands in, and the judgement that a piece should not fill its sheet. It is an embodiment choice about a finite room, not a claim about what flies do at walls. — the rate model
colBg
0.5
Free. Tonic drive on every non-photoreceptor cell of the colour column; held equal to gate_b.json params.bg, the value circuit B’s hue selectivity was measured at. It is the parameter that stopped the colour column outputting identically zero. Every photoreceptor in MaleCNS is histaminergic, so its sign is −1 and light can only ever subtract; a cell sitting at zero has nothing for the light to subtract from. Without this term L1–L3, Dm8, Dm9, Tm5a/b/c and Tm20 are all identically zero at every wavelength, the ink is identically zero, and the fly paints with clear water. — the rate model
colTauMs
20
Free. Membrane time constant of the colour column, ms; held equal to gate_b.json params.tau_ms. Separate from the ring’s tauMs because medulla interneurons follow flicker at 100 Hz (Juusola & Hardie 2001) and the compass does not. — the rate model
walkBoutMeanMs
4200
Free. Mean duration of a walking bout. Drosophila locomotion alternates activity and immobility (Martin 2004, Behavioural Processes 67:207) and the durations are broadly exponential, so that is the distribution used; the mean is ours. With the stop mean below it, 75% of a piece is spent walking. This is the one part of the gait that is a rule rather than the connectome’s: measured on these weights, every signal in the circuit is a small perturbation about one fixed point whose autocorrelation is 0.37 at 100 ms and 0.00 at 500 ms, so there is no second timescale to read bouts out of, and tuning a trigger until it flickered at a convincing rate would be exactly the fake liveliness the project forbids. — walking, stopping and flight
stopBoutMeanMs
1400
Free. Mean duration of a stop, in the same two-state process. — walking, stopping and flight
minBoutMs
350
Free. Floor on either bout, so the exponential’s tail cannot produce a stop the paint layer renders as a hiccup rather than as a pause. — walking, stopping and flight
saccadeReleaseDeg
3
Free, and the number that decides how the path looks. Walking Drosophila turn in discrete saccades rather than yawing continuously (Geurten, Jähde, Corthals & Göpfert 2014, Front. Behav. Neurosci. 8:365). No turn is invented for this: the steering command ω = k(DNa02_R − DNa02_L) is banked in an accumulator and spent whole when it passes this threshold, so total yaw over a piece is unchanged and the compass loop still closes. Measured, |ω| averages 0.26°/s on these weights, so 3° fires about every 12 s. — walking, stopping and flight
saccadeMs
120
Free. Duration of one saccade. Walking body saccades are brief; 120 ms is twelve samples at the 100 Hz stroke rate, so the corner is drawn rather than jumped. — walking, stopping and flight
saccadeSpeedScale
0.35
Free. Forward speed through a saccade, relative to walking. Rotation and translation are largely separated in walking Drosophila (Geurten et al. 2014), so the fly slows into the corner; it does not stop, because at zero the ribbon pinches to a point. — walking, stopping and flight
flightMs
900
Free. How long a flight lasts. The trigger is not free and is not new: it is SPEC §3.5’s bump jump, over 60° inside 200 ms, which used to lift the brush for a single 10 ms sample — a stroke that closed and reopened a tenth of a millimetre further on, and was invisible in every rendered piece. The same trigger now launches the fly. — walking, stopping and flight
flightSpeedScale
12
Free. Flight speed relative to walking. Drosophila fly at a few hundred mm/s against a walking pace of about ten (Tammero & Dickinson 2002, J. Exp. Biol. 205:327), so 12× is the conservative end of that ratio; on this sheet it carries the fly about half a paper width. — walking, stopping and flight
flightRefractoryMs
20000
Free. The shortest interval between two flights, so a bump that stays jumpy does not turn a piece into a series of hops. — walking, stopping and flight
cloudExponent
1.6
Free. The exponent by which cloud cover attenuates the solar landmark. SPEC §3.3: overcast means a weak or absent landmark. — the solar landmark
horizonCct
2000
Free, within the range the CIE daylight series covers. Correlated colour temperature at the horizon. — the light the fly sees by
zenithCct
6500
Free. Correlated colour temperature approached at the zenith; 6500 K is D65. — the light the fly sees by
overcastCct
1500
Free. Extra coolness attributed to a fully overcast sky. — the light the fly sees by
cct
2700
Free. Colour temperature of the practical lamp in the studio, in kelvin. 2700 K is a warm tungsten or an LED sold as one. The lamp exists because below the horizon Open-Meteo reports 0 W/m², so the illuminant reaching the fly was identically zero and the four colour outputs sat on their tonic background: measured, a night piece moved 0.0052 rms ΔE against 1.13 for a noon piece. It is a physical object in the room, stated, and it is in the fly’s illuminant and in the scene at once — being in only one of the two is the class of divergence this page keeps reporting. — the light the fly sees by
irradianceWm2
6
Free, and invisible to the fly. Irradiance the lamp puts on the paper, about 800 lux. The opsin activations are normalised by the illuminant they are integrated against (von Kries), so this number changes nothing about what the fly sees — only the lamp’s spectral shape reaches it. It is stated so the quantity has a real physical size: noon in London measures 643 W/m², so the lamp is about 1% of it. — the light the fly sees by
onBelowWm2
120
Free. The lamp lights when the measured shortwave irradiance falls below this. 120 W/m² is roughly civil twilight and also a genuinely black overcast afternoon, which means bad enough weather turns the lamp on in daylight. Deterministic from the cached weather, like everything else a piece depends on. — the light the fly sees by
sceneIntensity
0.9
Free, and the one number in the studio’s lighting that is about the viewer’s screen rather than about London. A real desk lamp at 6 W/m² against a 643 W/m² noon renders as a direct intensity of 0.016 against 1.505 — the true ratio, and a still-black rectangle. This is chosen for legibility and is not a measurement. Everything else in the lighting stays causal: the sun’s direction, colour and strength come from the sky, and the lamp is off whenever there is enough of it. — the studio lighting
meterTarget
1.6
Free, and about the viewer’s screen rather than about London. Light on the paper that renders at an exposure of exactly 1, in the studio’s own units, and the level the studio is now held at outright. Set to a clear London midday, so the brightest hours look as they did before the studio had an exposure at all. The exposure used to correct only partially, so that the weather still changed how bright the room looked; that went with the circadian gate, because the rule the piece now runs under is that weather is an input to the art and never a gate on the studio — not on whether the fly is working, and not on how brightly its room is lit. A gallery lights the work to a standard level and leaves it there. What the sky still decides is everything except the level: the bearing and elevation of the key light, the angle of every shadow, the reddening of the beam with air mass, the shadow going soft and then absent under cloud, and the lamp turning a black afternoon warm. — the studio lighting
minExposure
0.5
Free. Floor on the correction. Wide enough that the metered range never reaches it — the lamp puts a floor under the darkest hour — and here so a weather feed returning nonsense cannot push the studio to white. — the studio lighting
maxExposure
8
Free. Ceiling on the correction, for the same reason in the other direction: nonsense in the feed opens the room up rather than into noise. — the studio lighting
tauSeconds
2.5
Free. How fast the exposure follows the light, as the time constant of the same first-order approach the camera rig and the body’s yaw use. The room opens the way an eye does rather than cutting, and it is seeded on the first frame so the studio does not fade up on every load. — the studio lighting
depositRate
0.02
Free. Pigment laid into the patch under the brush per 100 ms colour tick per unit firing rate — the conversion between a rate in the eye and a concentration of paint, which nothing measures. It could not be calibrated at all until recently: the reflectance the fly used was the infinitely-thick one, which gives the same colour however much paint is there, so every value of this number looked identical downstream. The closed-loop measurement ran at 0.3; the engine runs at 0.02, and the divergence is declared on the proof page with the scan behind it. — the paper the fly remembers
renewal
1
Free. Fraction of the patch under the brush replaced each colour tick by the paper the fly is standing on. The closed-loop measurement needed this below 1 because it had no record of where the paint went, so without a leak its patch was a closed accumulator. The engine keeps that record, so the leak is no longer load-bearing, and at 1 the fly simply sees the paint under its feet. Declared as a divergence on the proof page. — the paper the fly remembers
patchCells
64
Free. Cells across the sheet in the fly’s own record of where it has painted, which is what the renewal above draws on. At 64 a cell is 1/64 of the sheet, about one brush diameter, so the fly remembers its painting at the resolution it paints at. — the paper the fly remembers
flowGain
1
Free. Pigment and water laid down per unit of stroke length, before the speed term below. SPEC §3.5. — the brush
dryOutSpeed
14
Free, and until this session the wrong size by two orders of magnitude. SPEC §3.5 says speed changes how much ink reaches the paper rather than how wide the mark is — a fast brush runs drier — and the flow is flowGain / (1 + dryOutSpeed · speed). Sample.speed is in paper widths per second, which for a walking fly is about 0.05, so at the old value of 0.35 the divisor was 1.0175 and the rule changed the ink by 1.7% between a stopped brush and a walking one. It was inert, exactly as the steering pathway was before it got its own scale. Two things made it worth fixing: the gait now has a real range of speeds for it to act on — stops, saccades at a third of walking pace, flight at twelve times it — and the walk is five times longer than it was, which at the old flow buried the sheet, because four watercolours at high concentration mix to mud. At 14 a corner lays down about 1.35× the ink of the run into it and a piece takes roughly 40% less paint. — the brush
dwellTauMs
45
Free. How fast a brush held still stops unloading, in milliseconds. The fly is stopped for about a quarter of every piece, and until this session those ticks made no mark at all: the stroke smoother suppresses a point that has not moved, so a stop was a pause in the drawing rather than an event in it and the ribbon closed up around it. A brush resting on wet paper does not pause — it unloads, and the wet field already had everything needed to turn that into a pool with a dark rim. What it did not have was a rate. The flow rule above is stated per unit of stroke length and a stopped brush covers none, so read one way it says nothing and read the other it says full flow forever; measured over two minutes of 20260915-0900, 19 stops of median 1.9 s, full flow throughout would leave about 54 of pigment in one brush footprint, which is flat opaque, ninety-five times a piece. So the dwell flow decays, flowGain · exp(−dwellMs / dwellTauMs), and the series is bounded: a stop leaves 0.500 at this value, against 2.329 for a walking pass over one spot. Note which way that goes. The old behaviour was not depositing nothing — it laid down 3.891, more than a walking pass, into a twenty-fifth of the area, because the streamline recursion creeps for 41 ticks at full flow before it stops emitting. A stop read as a gap because the paint had nowhere to go, not because there was none. The bound is the physical part: a five-second stop and a half-second stop deposit the same mass and differ in how far the water has carried it, which is what a held brush does. The calibration — a stop deposits what the brush lays down walking its own width — lands on 130; the value is 45, and the gap between the two was decided by looking at two rendered sheets, because how heavy a stop should read is not a measurement. Said here rather than dressed up as one. — the brush
dwellPoolGrowth
2.5
Free. How much wider the pool a held tip leaves is than the tip itself, as a multiple of the contact radius, so the largest pool a stop can leave is about 3.6 mm across on a 762 mm sheet. What sets it is wicking — a wetted tip resting on cold-press cotton rag spreads laterally by something of the order of its own contact radius again before the paper under it is saturated — and there is no published figure for that, so it is named as free. It does not change how much pigment a stop deposits, only how far it is spread. — the brush
ribbonSize
0.0011942257217847768
The warm-up distance of the stroke smoother, in sheet widths, and not a shape control: it is one mark width, 0.91 mm, so the line reaches its stated width over its own width and no faster. Derived from the mark rather than chosen against it. — the brush

The canvas side of the colour loop has 3 more, from colour_loop.json:

deposit_rate
0.3
paper_ks
0.02
renewal
0.1

Every rung of both shuffle ladders(a) + (d)

Four rungs in increasing strength — a random graph at matched density, the real topology with unit weights, a degree-preserving shuffle with cell types kept, and the real matrix. Gains, signs, type labels, inputs and probes are held fixed across the rungs, so the only thing that changes is the wiring. What the ladders found is on the proof page; the per-rung numbers are here.

Ring

fraction of a 60 s run with EPG bump concentration > 0.5; drift = |least-squares slope of unwrapped heading|, deg/s

random matched density
0 held · drift 0.130 °/s · 100 seeds — at the operating-point gains0.438 held · drift 0.005 °/s · 100 seeds — with gains rescaled to λ_max
Erdos-Renyi over the same 348 bodies at the real edge count; weights redealt without replacement from the real weight multiset; types and signs unchanged. Ring edges rewired: 0.789.
real topology unit weights
0 held · drift 34.811 °/s · 100 seeds — at the operating-point gains0 held · drift 0.055 °/s · 100 seeds — with gains rescaled to λ_max
the real graph with every synapse count replaced by 1. Ring edges rewired: 0.
maslov sneppen types kept
0 held · drift 0.495 °/s · 100 seeds — at the operating-point gains0.190 held · drift 0.092 °/s · 100 seeds — with gains rescaled to λ_max
degree-preserving double-edge swaps, 20 per edge, restricted to pairs whose postsynaptic cells share a cell type; weight travels with its presynaptic cell so out-strength is exact. the ring blocks are dense, so exact degree- and type-preserving swaps saturate below full randomisation; the rewired fractions above say how far it actually got. Ring edges rewired: 0.392.
real
1 held · drift 0.001 °/s · 100 seeds — at the operating-point gains
MaleCNS v1.0 as downloaded.

The ladder as designed: 100 seeds per rung, 60 s each, seed 4242. Real network leading eigenvalue: 1.7358.

Colour column

hue-selectivity index (lifetime sparseness) per output type

random matched density
0.217
Tm20 0.215 ± 0.073 · Tm5a 0.228 ± 0.126 · Tm5b 0.214 ± 0.114 · Tm5c 0.211 ± 0.096
unit weights
0.575
Tm20 0.278 · Tm5a 0.658 · Tm5b 0.758 · Tm5c 0.605
degree preserving
0.500
Tm20 0.321 ± 0.036 · Tm5a 0.585 ± 0.099 · Tm5b 0.721 ± 0.023 · Tm5c 0.374 ± 0.014
real
0.529
Tm20 0.393 · Tm5a 0.608 · Tm5b 0.765 · Tm5c 0.348
degree preserving types free
0.272
Tm20 0.283 ± 0.067 · Tm5a 0.259 ± 0.098 · Tm5b 0.286 ± 0.157 · Tm5c 0.262 ± 0.077
Degree-preserving over real, per output
Tm20 0.815 · Tm5a 0.962 · Tm5b 0.941 · Tm5c 1.072
A ratio at or above 1 means the shuffle matched or beat the real matrix on that output. Printed because it is the result.
The extra rung
degree_preserving_types_free is NOT one of the four SPEC §10 rungs. It was added because the rung that is in the spec does not collapse anything, and the reason had to be measured rather than asserted.

100 seeds, 10 swaps per edge, seed 20260915. Held fixed: gains, signs, type labels, inputs, integrator, probe set.


Back to the proof page, which says what these numbers were used for and which of the three gates they did not carry.