Read 2026-07-18. Tretyakov Gallery (ГТГ); oil on linen, 79.5×79.5 cm; pinned Чёрный_супрематический_квадрат._1915._ГТГ.png (Wikimedia PD, 1196×1199, raw edge mode, full frame — border decision in PREREGISTRATION.md, which was written before any number and carries 10 predictions + the decay protocol). Factum colour/3D recordings in-folder as reference only (© ГТГ, not spine inputs). First non-objective work in the corpus; the adversarial limit case for an edge-and-gradient instrument.
Labels: [stable] · [narrowed] · [aid] · [confirmatory] pre-registered · [exploratory] post-hoc.
Correction pass (2026-07-19), five rounds. A first draft of this book converted failed nulls into "corpus records" (DGI, R_spatial, address) and asserted a "most extreme object" synthesis. Round 1 built the synthetic-square control — the theorem-anchor this instrument is calibrated on, and the control the first draft skipped — which retired DGI and R_spatial and inverted address into a deficit. Round 2 (control2.py) extended the control off the placement layer to tone, the island layer, and the placement grid: it withdrew imbalance too (substrate-washed, I-12), showed tone is also a deficit-from-ideal (Entry 13c), and turned Entry 11 into a weighted decomposition (Entry 13d). Round 3 (diag_torque.py) found the torque "offset" story did not reconstruct Malevich's value. Round 4 (diag_centroid.py, control3.py) found why, and it was deeper than round 3 guessed: the pure synthetics had an identically zero edge field (robust01 collapses when the boundary is <2% of pixels), so every edge-derived control number came off a dead field — including round 3's own "centroid is translation-invariant" and "aliasing" claims, both now withdrawn (Entry 14). Re-run with a grain floor, the centroid tracks placement correctly, and Malevich reads lower than a machine square on torque and R_spatial. The only clean hand-coordinate that survives all five rounds is the tilt (~1.7°, via address, which never touched the edge field); everything else beyond tone is the decay. The withdrawn claims are marked throughout; control.py/control2.json/diag_torque.json are the baseline every remaining number is read against; audit.py guards the prose (numbers and, now, a few claim-level contradictions) against them.
No mount, no frame; the cream field IS the composition's void, so border suppression would down-weight half the painting — raw mode, full frame (user-confirmed). PM verdict: "meaningful" — the surface moves the read. Per the pre-registered fork (HCB grain = medium; Malevich craquelure = decay he did not make), PM is a legitimate treatment here, and the study's spine is the intent-vs-decay separation: native raw read vs crack-suppressed reads (PM at native, and a resolution sweep at 600/300/150px). The de-confounding lesson of this study (Entry 02): PM and resolution are different levers and must not be conflated — PM strips decay at fixed scale; coarsening removes fine structure regardless of cause. The first draft ran them together.
Two claims, one solid and one de-confounded.
Solid (native, both levers agree at fixed scale): the native raw read is μ = 0.744, island entropy 0.487 (strongly hierarchical), state coherent_mass — the crack web plus boundary ring weld the frame into one dominant, centre-anchored island (Entry 11 shows the mask). This is a property of the native image and it survives decay-stripping in the sense that structure does not appear or vanish: PM at native (same 1196px, decay the only variable) holds n_islands at the cap (20), active at 10, and moves entropy only 0.487 → 0.516. PM redistributes dominance (μ 0.744 → 0.578) but does not dissolve the structure — the cracks are coarse enough to survive it at native.
De-confounded (the first draft's error): the first draft reported entropy 0.487 → 0.696 → 0.954 → 0.959 and called it "suppressing the decay dissolves the read." Those are the 600/300/150px reads — scale reduction, not decay suppression. Since PM at native barely moves entropy (0.487 → 0.516) while coarsening moves it to 0.95, the dissolution is coarsening, exactly as I-10 says (resolution is part of the measurement). The honest statement: coarsening homogenises the crack texture and the hierarchy flattens; stripping the decay at fixed scale does not. The 300px point is also dropped from the trend here — it shows resampling anomalies (x_p 0.157, δy sign-flip, a DGI dip) flagged as interference with the crack frequency, and it cannot be quarantined for one metric and kept for another. Trend without it: 0.487 → 0.696 (600) → 0.959 (150), still directional, weaker.
Prediction 3's cleanest hit: shadow 0.504 / midtone 0.017 / highlight 0.480, τ 0.699 — an almost perfect two-pole tonal economy with 1.7% connective tissue, rock-stable across every read (τ 0.699–0.713 at all scales and under PM). Tone is the one subsystem this work honestly possesses, and it grips cleanly. "Dimensional contrast" as a number: the painting is half shadow-mass, half highlight-mass, and almost nothing between. The control (Entry 13c) applies here too: a perfect two-pole synthetic reads τ 0.801, so Malevich's 0.699 is a 0.102 deficit from the machine ideal, and field texture closes the gap (synthetic + texture → 0.735). So this is the cleanest read in the work but not a "corpus high" record — it is 0.102 short of a machine two-pole, with the decay (craquelure, aged field) filling the midtone. The deficit-from-ideal pattern that governs address (Entry 09) governs tone as well.
DGI 61.9 is NOT a record — it has no purchase. The synthetic control settles it: a machine-perfect black square on a flat cream field, matched size and position, reads DGI 60.9 (and 62.5 when re-run with a grain floor so the edge field is non-degenerate — Entry 14); a 2° tilt reads 60.8. Malevich is within one point of the tautology and inside the matched-stats null band (57–64). By I-15 this is a number reading the work's statistics — "a centred square is centred" — not its arrangement. The first draft's "the basin made by hand in 1915" is withdrawn: it rationalised a null-band value into a finding, the §9 failure mode. Prediction 7's "moderate-high" was directionally fine; the "highest in the corpus" gloss was the error. On-image DGI null (dgi_null.py, 600px — DGI is scale-robust, real@600 = 61.5 vs native 61.9; this image's own matched-stats band, not the borrowed 57–64): the two families bracket. Phase-scramble destroys the tonal blocks and drops DGI to mean 52.4 [40.4–61.0], with the real above it (p ≤ 0.02); but patch-shuffle — which keeps the black/white blocks and only rearranges them — reads mean 63.0 [57.9–65.2], and 88% of reshuffles score ≥ the real (p 0.88). So a reshuffle of Black Square's own tonal blocks scores as high or higher: DGI does not read this arrangement as special. That corroborates the synthetic control (a machine square reads 60.9) on the image's own nulls, and it is the bracketing caveat again — read the patch-shuffle here, which preserves the tonal mass and says "no purchase."
Torque is real on the image but uncalibratable by the control, and Malevich torques LESS than a machine square (Entry 14). Stance torque 0.581 survives PM (0.587), so it is a square-and-field property, not a crack effect, and the "nested crack→square→field" mechanism is falsified. Round 3 attributed the control's wild torque swings to hard-edge aliasing; round 4 withdrew that — those synthetics had an identically zero edge field (robust01 collapse), so the swing was degenerate-field noise, not aliasing. Re-run with a grain floor, a plain machine square reads torque 1.639 and a shifted one 2.238, against Malevich's 0.581: the work is low on this axis relative to its own theorem-anchor, not extreme. Prediction 7's "standing" is still wrong (torque ≠ 0), but the value carries no mechanism and no coordinate. Imbalance 0.023 is likewise non-discriminating (I-12): grain-floor synthetics span 0.001–0.033 and Malevich sits inside. The clean coordinate that survives is the tilt (address, Entry 09) — and it alone.
x_p 0.018 is a fourth tautology, now controlled. Near-zero peripheral pull looks like an answer to the pre-registration's "floating" term: the structural mass nowhere engages the frame edge. It is not. A machine square with matched margin reads x_p 0.0000 (diag_xp.py), so a centred form with a wide border cannot reach the edge and near-zero is guaranteed by the layout. Malevich's 0.018 is marginally above that floor, not below it. This joins DGI as a geometry-tautology, not a measurement of hovering; it describes the arrangement, nothing more. (The x_p 0.157 at 300px is the flagged resampling artifact, Entries 02/11.) Filed because the critique's first draft read it as vindication of the hovering description, which is exactly the I-20 error one section away from where the study diagnoses it.
β = 0.296 — high (above HCB's 0.22) in a nominally black-and-white painting; persistent under PM and scale. Prediction 4 called the magnitude; the first stratified probe (decay_layer.json) complicates the mechanism: absolute channel measures show the field is warm (+0.018 yellow-blue) and the square's interior — cracks included — is cool (−0.02 to −0.03). So β is more likely reading the aged cream field (the I-12 substrate class) than crack-glow; the warm-cracks story from the eye pass is not supported at this resolution (and HSV saturation at L≈0.06 is flagged unreliable — the matrix's apparent sat 0.40 is an artifact of near-black division). Coupling behaves as predicted (5): native +0.144 → PM 0.085 → coarse −0.07. The edge-chroma coupling is carried by the crack scale — suppress the cracks and it vanishes: the coupling is the decay's geometry. Resolved in Entries 07/10.
The eye raised a structural question (is the crack mass top-and-right?), measured on the mass field under an error model (mask erode/dilate ±4px × three resamplings; probes3.json) so the decision margin is exposed, not a single flip (I-18). Top-heavy clears: within the dark-square mask, the top carries 54.8% of the mass, band [54.6, 54.9] across all perturbations — never crosses 50%. A real, stable bulge, matching the visibly denser upper-centre web. Rightward marginally clears: the horizontal split is 50.4% right, band [50.2, 50.5] — consistently past 50% but by only ~0.4%, a hair. So the first draft's "rightward does not hold" is corrected: it holds, but marginally, and should be quoted with its band, not as a clean asymmetry. Whole-image mass leans slightly left (52.3/47.7, carried by field and boundary); the rightward lean is a within-square, mass-field effect. Whether this "pulls the eye out of the void" is a gaze claim above the instrument's ceiling and is not asserted.
The three-way opponent stratification (L−M activity, per region): field 0.369, matrix 0.040, crack 0.178. So β (0.296 whole) is dominated by the aged cream field — the I-12 substrate class, not Malevich's paint and not primarily the cracks. The eye-pass "warm colour bleeding through the cracks" is partially borne out: the cracks carry real opponent activity above the black they interrupt. The ratio "4.4× the matrix" (0.178 vs 0.040) is quoted as a lower bound only: the matrix sits at L≈0.06, the near-black regime flagged unreliable for saturation, so the measured 0.040 may be mostly noise floor — i.e. the true matrix activity is at most 0.040, and the true crack/matrix contrast is at least 4.4×. (An earlier phrasing of this sentence said "the true ratio smaller," which contradicts the bound's direction; corrected.) Verdict: β on Black Square reads the aged substrate, with a real but secondary crack-decay-window contribution. Do not quote β as composition. This confirms Entry 05's lean and retires "crack-glow carries β" as the dominant story.
Prediction 6 (anti-basin) lands, but the first draft leaned on the tautological half. The radial luminance profile centre→rim is a step, not a bowl (center-minus-rim −0.82) — but on a black-square-on-white-field that is determined by construction, not discovered; a dark form on a light ground must read as an inverted luminance bowl. So the luminance result is not a finding.
The non-trivial test is RCP on the mass field (0.42·edge + 0.32·tone + 0.26·chroma), where the crack web puts real mass in the interior (probes3.json). Result: center-minus-rim +0.17 (mildly centre-heavy), radial_fit 0.254 — well below any concentric-organisation bar (0.50). So even where the decay could have built a basin, Black Square is weakly centre-weighted by the crack web but not radially organised: the mild centre-heaviness is the top-centre crack density (Entry 06), not a concentric collapse. Ring-fit on luminance likewise fails (0.235) because a hard square is orthogonal, not arcs. The archetypal centred emblem is Not-RCP on both fields — luminance by construction, mass by measurement (radial_fit 0.254). The AI-loop point (centred ≠ radial-collapse) holds, and now on the honest ground: it does not rest on DGI (which has no purchase here, Entry 04) but on the mass field failing the radial model.
Register status: RCP is a live five-hit measure used here but is not in the technical reference and has no candidate row. Per the house rule that new measures enter only through the register, RCP needs a candidate entry (or an explicit "study-local, not promoted" flag) before it appears in a critique. Flagged in OBSERVATIONS; not quoted as a corpus instrument until logged.
The first draft called this the study's finding: "by four measures the calm square is the corpus's most extreme composition." The synthetic control retires that. Taken one measure at a time:
Address 0.971 — not a record; a deficit, and the deficit is the finding. A machine-perfect square reads 1.000; a 2° tilt reads 0.965; Malevich reads 0.971. So 0.971 is 0.029 short of the ideal, an effective tilt just under 1.7° — the hand-irregularity, measured (0.971 sits just BELOW the 1.5°-tilt synthetic's 0.974, interpolating to 1.67° against the 2° bracket at 0.965; diag_xp.py). Address is composition-dependent (it dies under both nulls: phase-scramble mean 0.251, patch-shuffle max 0.308, no draw of 100 reaches the real, p ≤ 0.01) — but both nulls are the permissive family (they destroy the object, so any structured image beats them), and figure_shuffle is N/A here (one figure). So the null result rests on the permissive bracket alone (the Las Meninas caveat): read it as "the square's frontality is real and near-total," not "the strongest, cleanest frontality in the corpus." The quotable number is the deficit and its correlate — axis-lock 0.589, offset 0.206 — the symmetry axis sitting off-centre, which stops being an aside and becomes the measurement. Note address reads the tilt, not translation (the off-centre synthetic still reads 1.000), matching the eye-pass "tilted square."
R_spatial 30.6–31.3 — not a record; a denominator artifact. R_spatial = torque(whole) ÷ max torque(any part). Here max part torque = 0.019 — the ratio is dividing by near-zero on uniform crack-texture parts (the same instability flagged for HSV at L≈0.06). And the theorem-anchor settles it: on the round-4 grain-floor control a plain machine square reads R_spatial 94.7 (a shifted one 119.0) against Malevich's 30.6 — so the work is low on this axis against its own ideal, not a record. (The round-1 spread 15.7/17.8/28.4 and the "tracks off-centreness" gloss are both withdrawn: those synthetics had a dead edge field, Entry 14.) The null confirms instability: phase-scramble r_max spans 0.51–30.55 (one draw essentially reaches the real). Withdrawn as a record; the denominator is reported alongside the ratio, and R_spatial is flagged unquotable on uniform-part works (this is exactly why C-3 was never promoted). Range across cuts is 0.7 (31.3−30.6), not the 0.65 the first draft quoted.
The "most extreme object" synthesis is withdrawn. All four "extremes" fall to the control: DGI is a tautology (a machine square reads 60.9, and 62.5 on a grain floor), R_spatial is a denominator artifact (a machine square reads 94.7), address is a 0.029 deficit from ideal, and imbalance 0.023 does not discriminate — grain-floor synthetics differing only in trivial placement span 0.001–0.033 and Malevich sits inside that band (Entry 14, I-12). Nothing in the cluster is a balance/gravity/emergence record. What remains true and non-trivial: three pre-registered "calm" bets (7 standing, 8 subadditive, 9 spectral) failed in the same direction. That is a real signal about the reader's prior — I expected balance-and-quiet and the instrument read the tilt and off-centre placement — and it is carried forward as a documented bias, not a triumph.
A refinement raised at the gate (the crack signal reads as worm-tracks, likely edges, not warmth), tested flat. Within the crack mask, opponent activity splits by local gradient: crack-EDGE (worm-track boundary) 0.231 vs crack-CORE (exposed interior) 0.118 — the edges carry ~2× the cores — with corr(opponent, edge) = +0.216 over the cracks. The crack opponent signal is edge-concentrated, not interior-pigment. So the secondary crack term from Entry 07 is largely the geometry of the worm-track boundaries, not warm under-paint bleeding through. β is doubly confirmed as the aged field substrate (I-12): the field dominates the magnitude, and the crack contribution is edge-driven contrast, not colour. The "warm through the cracks" story is retired on both counts — the something that leaks through the nothing is a network of contrast, not a buried palette.
Prediction 2 designed a resolution sweep to "recover the square as one mass" by burying the crack scale. It did not work that way, and the reason is the finding. Sweep (raw, native → coarse): n_islands stays at the cap (20) until 150px (I-17, not convergence); entropy rises with coarsening (native 0.487 → 300px 0.954 — the coarsening effect, Entry 02), not collapse-to-one-mass; μ wanders (0.744 → 0.525 → 0.676); DGI is scale-robust (55–62; the 55.4 dip at 300px is an I-10 resampling artifact). Coarsening does not reveal a hidden solid square — it homogenises the crack texture. (Entropy comparability: native reads over a capped 20-island support, 150px below the cap, so the endpoints are not the same quantity — the trend is directional, not a clean scalar.)
The readout (islands.png) shows why, and it is the honest answer to the study's founding question ("what does ISR read when there is nothing edge-like to read"). The gradient mask locks onto exactly two things: the boundary ring (the black-to-white step, the strongest gradient in the frame, the dominant connected component — hence μ 0.744, entropy low) and the crack web (top-heavy, densest upper-centre, Entry 06). The square's interior, where cracks are sparse, reads empty in the density panel — no gradient structure at all (I-6: a flat dark form is invisible to the gradient field). So there is no "square as gradient mass" to recover by coarsening, because Malevich painted a gradient-void. Prediction 2's premise was wrong; its spirit is confirmed and sharpened: essentially all of the gradient/island structure is decay plus boundary. The intent — the flat square — lives only in the tonal subsystem (shadow_mass, the dark region), the one subsystem that sees the square as the square. Strip the decay and the gradient system reads nothing; the tonal system still reads the void. That is the clean stratification the decay protocol was built to find: tone carries Malevich, gradient carries the century.
Note held honestly: the crack density is measurably top-heavy and fan-structured, but I have no registered X-ray of the buried composition, so I do not attribute the density pattern to the under-paintings — that read is above what I can measure with the file in hand (the Factum recordings are low-res, black-bordered, unregistered). The density field is measured; its cause beyond "decay" is not claimed.
Against the reproduction (islands.png, gap.png, fields.png): the anchor (island 11) sits dead-centre; the resistance graph is a hub-and-spokes with pull to nodes on all four sides and corners (the "all sides have pull" the eye saw), while island density says those arms are unequal (the upper-centre web is brightest) — a distributed boundary graph over a top-weighted interior, exactly Entry 06. Nothing in the readouts requires escalation; every bright structure corresponds to a nameable thing (the ring, the cracks). Readout mode is edge-aware (visualisation default); the quoted spine metrics are raw (Entry 01), and the island counts match across the two closely.
Round 1's control set was a placement-scalar tool, and the placement scalars are exactly the layer that turned out tautological. Round 2 (control2.py) extends it to the layers round 1 left untouched — tone, the island/relational layer, and the two-parameter placement grid — because the surviving claims live there. Four results.
(a) Imbalance does not discriminate — and round 2's demonstration of that was itself invalid. Round 1 noted Malevich 0.023 < the hard synthetic's 0.055 and waved it off; round 2 called the fix "texture washes imbalance," citing 0.055 (hard) → 0.009 (textured). Round 4 voids that demonstration: the 0.055 came from a synthetic whose edge field was identically zero, so the comparison was dead field vs live field, not no-texture vs texture — it could not have shown what it claimed. (The "aliasing point 0.085" parenthetical goes with it; round 4 withdrew aliasing entirely.) The conclusion survives on valid numbers: on the grain-floor control a machine square reads imbalance 0.004, a tilted one 0.001, a shifted one 0.033, against Malevich's 0.023 — he sits inside a 0.001–0.033 band of synthetics that differ only in trivial placement. Imbalance does not separate this work from a machine square, which is all the withdrawal needs. The single authoritative band is Entry 14's; the round-1/2 figures (0.055 / 0.005 / 0.085) are withdrawn.
(b) The clean coordinate is the tilt; torque and the "offset" are mirages (round 3 correction). Address reads tilt and is blind to placement: ideal 1.000, tilt1.5 0.974, tilt2 0.965, a shifted square still 1.000 — so Malevich's 0.971 sits just below the 1.5°-tilt synthetic (0.974) and above the 2° one (0.965), interpolating to a clean ~1.7°. Round 2 paired this with "torque reads offset," but round 3 (diag_torque.py) breaks that: shifting a hard synthetic's bbox up to 60px leaves its kernel centroid pinned at (0, 0) while its torque swings chaotically (0.275 → 0.312 → 0.589 → 0.409 → 0.610 → 1.319) — a hard edge aliases against the stance computation. [Superseded by round 4 — Entry 14: those synthetics had an identically zero edge field, so this swing was degenerate-field noise, not aliasing; the diag_alias.py hard-vs-soft test is withdrawn for the same reason. The conclusion below — torque uncalibratable, no coordinate — survives on the round-4 numbers instead.] Two consequences. (i) Torque is not an offset coordinate, and Malevich's 0.581 is uninterpretable against it — on the round-4 grain-floor control a machine square reads 1.639 to his 0.581 (Entry 04/14). (ii) The centroid offset is not the square's placement — a shifted hard square reads centroid 0, so Malevich's (−0.013, −0.052) is the top-heavy crack web (Entry 06), the decay. And the prose was conflating two different "offsets": the mass-centroid offset (≈ −0.05, which is the decay) and the symmetry-axis offset (0.206 / axis-lock 0.589, which is the tilt read by address). Neither is placement. Round 1's "it torques = the address deficit" and round 2's "torque reads offset" are both withdrawn: the only clean hand-coordinate is the tilt.
(c) The tonal economy is also a deficit from the ideal, and the deficit is the decay. A perfect two-pole synthetic reads τ 0.801; Malevich 0.699 is a 0.102 deficit, and adding field texture drops the synthetic to 0.735/0.732, toward Malevich. So the one subsystem that grips cleanly (Entry 03) is also a deficit-from-ideal, and the gap is the craquelure and aged field filling the midtone. The two-pole read is the cleanest in the work, but not a "corpus high" — it is 0.102 short of a machine two-pole, with decay in the gap.
(d) Entry 11, demonstrated not inferred — and round 4 makes the demonstration STRONGER by breaking round 2's version of it. Round 2 argued: a crackless synthetic reads entropy 0.631, field texture raises it to 0.967, therefore the drop to Malevich's 0.487 can only be the crack web. That argument is void — 0.631 came from the dead field, so the "0.631 → 0.967" contrast was dead-vs-live, not bare-vs-textured. On valid fields texture does not raise entropy at all: the bare grain-floor square reads 0.970 and the textured one 0.967, essentially identical.
And that is the better result. Two independent valid controls — bare-with-grain and aged-field-textured — agree at ~0.97, and Malevich reads 0.487. So the collapse in entropy is attributable to neither the boundary ring nor the field texture, established by agreement between two controls rather than by a directional argument from one. The grain sweep extends it: σ 0.002–0.016 all read 0.956–0.971 (Entry 14, round 5). Every synthetic this study can build sits near 0.97; only the crack web produces 0.487. Together with μ (synthetic 1.000 vs Malevich 0.744), the decomposition stands: the ring carries μ, the crack web carries the weld. Entry 02's headline is confirmed against controls. Commensurability note (the two are different quantities): μ is the largest component's mass-share (largest_component_fraction), so μ 1.000 means one component holds all the mass; island-entropy is Shannon entropy over the island-size distribution (support = the ≤20 islands, I-17 cap). A single mass-dominant island can coexist with high entropy because the perimeter fragments into many small ring-arc islands. Read each within its own quantity. Entry 14's caveat (the grain floor itself contributes islands) still applies, but with both variants agreeing it carries less weight than it appears to.
The through-line. Address, tone, imbalance, DGI, R_spatial are all deficits or artifacts against the machine-ideal square. What Black Square adds to a perfect square that the instrument can measure is exactly two things: the tilt (a clean ~1.7°, via address) and the decay (the τ deficit, the entropy weld, the imbalance wash). Every first-draft "record" was one of those two, or a tautology. And the general lesson for the toolkit: the control set must extend to the relational and tonal layers, not just placement — the placement scalars were the ones that turned out empty.
Round 3 reported "a hard square shifted 60px still reads centroid (0, 0)" and diagnosed torque instability as hard-edge aliasing. Both were artifacts of a deeper fault, found by instrumenting the mask (diag_centroid.py, diag_centroid2.py): on the pure synthetics the edge field was identically zero. robust01(x, lo=2, hi=98) returns zeros when the 2nd and 98th percentiles coincide, and a hard square's boundary ring is under 2% of pixels — so fields["edge"] collapsed to all-zero (min 0, max 0, mean 0). Consequences: the 85th-percentile structural mask selected 100% of the frame (1,434,004 px), and the gradient-weighted centroid degenerated to exactly the frame centre (cy 599.0 = (h−1)/2) regardless of where the square sat. Every edge-derived metric on those synthetics — mask, centroid, μ, island-entropy, torque, R_spatial, DGI, imbalance — was computed on a dead field. (The real image is unaffected: mask covers 12.8%, 85th percentile 0.152.)
Re-run with a realistic grain floor (σ 0.004, control3.py), which makes the edge field well-defined:
| centroid Δy | μ | entropy | torque | R_spatial | DGI | address | τ | imbalance | |
|---|---|---|---|---|---|---|---|---|---|
| machine square + grain | +0.005 | 1.000 | 0.970 | 1.639 | 94.7 | 62.5 | 1.000 | 0.800 | 0.004 |
| + 1.5° tilt | +0.010 | 1.000 | 0.970 | 1.407 | 80.9 | 62.5 | 0.974 | 0.800 | 0.001 |
| + shifted 5% up | −0.048 | 1.000 | 0.983 | 2.238 | 119.0 | 55.3 | 1.000 | 0.801 | 0.033 |
| Malevich (real) | −0.052 | 0.744 | 0.487 | 0.581 | 30.6 | 61.9 | 0.971 | 0.699 | 0.023 |
What this corrects.
diag_alias.py hard-vs-soft test were both run on the dead field, so they measured degenerate noise, not aliasing. Torque remains [aid] — but now for a stronger reason (below), not for aliasing.What survives, now on a valid field.
address reads luminance, never the edge field, so it was never degenerate: machine 1.000, 1.5°-tilt 0.974, Malevich 0.971. The study's one clean coordinate survives all five rounds.Round 5 — validating the fix itself. σ 0.004 was load-bearing and, as of round 4, uncontrolled: every corrected number rested on one grain amplitude, and the fault it repairs is a threshold effect, so sensitivity near it is exactly what you would expect. Two checks.
(i) Grain sweep (diag_grain.py), σ 0.002 / 0.004 / 0.008 / 0.016 — does the ordering survive?
| σ | torque | R_spatial | DGI | island-entropy |
|---|---|---|---|---|
| 0.002 | 1.430 | 82.7 | 62.5 | 0.971 |
| 0.004 | 1.639 | 94.7 | 62.5 | 0.970 |
| 0.008 | 1.681 | 97.2 | 62.6 | 0.970 |
| 0.016 | 1.514 | 87.0 | 62.6 | 0.956 |
| Malevich | 0.581 | 30.6 | 61.9 | 0.487 |
Across an 8× range the machine square never approaches Malevich on any axis: torque stays 1.43–1.68 (he reads 0.581), R_spatial 82.7–97.2 (he reads 30.6), entropy 0.956–0.971 (he reads 0.487), and DGI sits at 62.5–62.6 against his 61.9. The round-4 verdicts are not artifacts of one grain amplitude — the withdrawals hold, the DGI tautology holds, and "Malevich is low against his own theorem-anchor on torque and R" is a stable finding rather than a knife-edge one.
(ii) Corpus verification (corpus_mask_check.py) — round 4 argued that prior studies were unaffected because real images are gradient-rich. That was reasoning. Mask coverage is one number, so it was checked instead: all 13 pinned corpus images are alive — coverage 3.0%–14.4%, and p98(edge) = 1.0000 for every one (Pollock 3.0, Klimt 4.1, Degas 4.3, Caravaggio 4.4, Velázquez 6.7, Sora 6.9, Bruegel 8.3, HCB 10.6, MJ 11.2, Malevich 12.8, Matisse 13.0, Soejima 14.0, Sora-steered 14.4). No dead fields, no saturation. The corpus is clear on evidence, not inference.
And a correction to the gate itself. Round 4 proposed "mask coverage ~10–20% healthy, 100% dead." The sweep shows that is wrong as a rule: the grain-floor synthetics read 0.7% and are perfectly alive (the mask is the boundary ring; structural_mask's min-area filter correctly discards scattered grain specks), while the healthy corpus spans 3.0–14.4%. Coverage alone is not the gate. The crisp diagnostic is p98(edge) > 0 — i.e. whether robust01 collapsed — with 100% coverage as the downstream symptom.
The methods lesson (I-23). A synthetic theorem-anchor can be degenerate for the very subsystem you are testing, and it fails silently — no error, just plausible numbers off a dead field. Before trusting any control, check that its fields are non-degenerate (here: mask coverage, which should be ~10–20%, not 100%). Adding a realistic noise floor to synthetic controls is now standard.
| # | Prediction | Verdict | ||
|---|---|---|---|---|
| 1 | Mass centroid near centre (\ | Δ\ | <0.06) | Hit, and the channel was challenged and cleared — kernel (−0.013, −0.052), density (−0.015, +0.001). Round 3 appeared to show the centroid blind to translation (a shifted square read 0,0), which would have made this prediction untestable; round 4 traced that to a degenerate edge field on the synthetic only. On a non-degenerate image the centroid tracks placement (a −0.052 shift reads −0.048), so the metric is valid here and the hit stands (Entry 14, I-23) |
| 2 | Crack-handling splits the read; coarsen to recover the square as one mass | Premise wrong, spirit confirmed (Entry 11) — no gradient square to recover; all gradient structure is decay + boundary; intent lives in the tonal subsystem. Entropy endpoints are not the same quantity (native capped at 20 islands, 150px below cap, I-17) — the sweep is directional, not a clean scalar | ||
| 3 | Hard two-pole tonal system (τ high, shadow+highlight, thin midtone) | Hit, but a deficit — shadow 0.50 / highlight 0.48 / midtone 0.02, τ 0.70; the cleanest gripping read, yet 0.102 below a machine two-pole (synthetic τ 0.801), the gap = decay (Entry 13c) | ||
| 4 | β non-trivial, reading DECAY not art | Hit, sharpened (Entries 07/10) — β = aged field substrate (0.369), crack term edge-driven not pigment; not composition | ||
| 5 | coupling positive, decay-geometry not composition | Directionally right — the chroma sits on the crack edges; decay geometry, not colour tracking form | ||
| 6 | RCP Borderline/Not, the anti-basin | Hit, but on the mass field (Entry 08) — luminance bowl is a construction tautology; mass-field radial_fit 0.254, Not-RCP by measurement | ||
| 7 | DGI moderate-high; stance standing | DGI no purchase (61.9 vs a machine square's 60.9 / 62.5 grain-floor, inside null band); stance torquing (0.58) ✗ — but a machine square torques 1.639, so Malevich is low, not extreme; no coordinate, no mechanism (Entry 04/14) | ||
| 8 | R_spatial subadditive | Wrong direction, record withdrawn — R ~31 is a denominator artifact (max part torque 0.019); a grain-floor machine square reads 94.7, so Malevich is low against his own theorem-anchor, not a record (Entry 09/14) | ||
| 9 | address high AND spectral | High ✓ but a 0.029 deficit from a machine square, not a record; composition-dependent on the permissive bracket only (Entry 09) | ||
| 10 | soft/gap moderate | Hit — gap 0.509, a committed field (ring + cracks), not sfumato |
Five clean hits (1, 3, 4, 6, 10). The misses cluster: every "calm" prediction (7 standing, 8 subadditive, 9 spectral) failed in the same direction. I read the square as balanced and quiet; the instrument read the tilt and off-centre placement as torque and frontality. The eye/instrument gap is real, but — after the synthetic control — it is a gap about the hand-tilt, not about the square being "the most extreme composition in the corpus." That first-draft claim is withdrawn.
The study set out to point a pre-semantic instrument at the zero-point of painting and ask what it reads staring into the "liberated nothing." After the correction pass, one finding carries the study and one control reframes the rest.
The finding: the contradiction is a stratification by subsystem. Malevich's nothing and something live in different subsystems. The tonal system sees the flat void he made — a hard two-pole field, black square against white ground, the one clean gripping read (Entry 03). The gradient system sees only the century's damage — the boundary ring and the crack web, and nothing else, because the square's interior is a gradient-void with no internal structure to read (Entry 11). The "something" the instrument finds inside the "nothing" is entirely the decay, and even that is a network of contrast, not a buried palette (worm, not warm — Entry 10). The control confirms the boundary between the two subsystems: the crackless synthetic proves the flat square reads as one ring-dominated mass (μ 1.000), and every valid synthetic this study can build — bare, textured, and across an 8× grain sweep — sits at entropy ~0.97, while Malevich reads 0.487. Only the crack web pulls the hierarchy tight, established by agreement between independent controls (Entry 13d, 14). So the honest answer to "what does ISR read when there is nothing edge-like to read" is: it reads the damage, and only the damage, because the intended work withheld everything else. Tone carries Malevich; gradient carries time. Even the tone is dented by the century: τ 0.699 is a 0.102 deficit from a machine two-pole, the midtone filled by craquelure (Entry 13c). This is the methods contribution too — the first study to separate decay from intent by subsystem, forced by a work that painted a gradient-void so the two could not overlap.
The reframe: the "extremes" were controls the study had not run — and the content that survives is the hand and the decay. The first draft read four corpus records off Black Square and called the calm square the corpus's most extreme object. The synthetic-square control (rounds 1–2) showed what those numbers were: DGI 61.9 is 60.9 for any centred square (a tautology inside the null band); R_spatial ~31 is a near-zero-denominator artifact, unstable across near-identical synthetics; address 0.971 is a 0.029 deficit from the machine ideal; imbalance 0.023 is a substrate-washed scalar that field texture alone drives to 0.009 (I-12, Entry 13a); and torque 0.581 carries no coordinate at all — a machine square torques 1.639 and reads R_spatial 94.7, so Malevich is lower than his own theorem-anchor on both (Entry 14). What survives is a single clean coordinate: the tilt — ~1.7°, read by address and by nothing else. Everything else the instrument can measure beyond tone is the decay — the τ deficit, the entropy weld, the imbalance wash, and the top-heavy mass-centroid (−0.05, the crack web of Entry 06, not the square's placement: a hard square shifted 60px still reads centroid 0). The subtle irregularity Malevich used to hold the tension reduces, for this instrument, to one measurable angle; the void itself it cannot read. That is a smaller and truer claim than "the zero-point is a maximum," which is withdrawn — and it lands, from a blind pre-semantic instrument, where the formalist reading of the square (a hand-drawn, faintly irregular, faintly trapezoidal shape whose life is its imperfection, not a ruled geometry — Milner, Kazimir Malevich and the Art of Geometry) has stood in prose for decades.
figure_shuffle is N/A (one figure). The frontality is real but is not established against a conservative null.Lab book complete through Entry 15 (synthesis), corrected in five control rounds: round 1 the synthetic-square control (control.py), on-image nulls (dgi_null.py), RCP-on-mass and Entry-06 margins (probes3.py); round 2 the control extension to tone/island/grid (control2.py); round 3 the torque reconciliation (diag_torque.py); round 4 (diag_centroid.py, diag_centroid2.py, control3.py) — found the pure synthetics had a dead edge field, withdrew round 3's aliasing and translation-invariance claims, and re-ran every edge-derived control on a grain floor; round 5 (diag_grain.py, corpus_mask_check.py) — swept the grain amplitude (ordering survives 8×) and verified all 13 corpus images are non-degenerate (Entry 14, I-23, I-24). Register: C-3 (R_spatial) and C-4 (address) rows corrected to withdraw the Malevich "records"; RCP entered as C-5 (study-local, table to back-fill). OBSERVATIONS: I-20 (theorem-anchor control), I-21 (PM≠resolution), I-22 (R_spatial denominator), I-20a (p-convention). HTML twin rebuilt (provenance Study 12, verified). Numeric auditor audit.py (53 checks, incl. claim-level header/body contradictions) guards the prose against the artifacts; figures.py regenerates all charts from the JSON so they cannot drift from the record.
Owed, not done: the centroid path across σ 2→32 (heading-changes vs scale transitions); a registered X-ray/IRR to test Entry 06's crack-density against the buried compositions; the technical-reference sync (RCP/C-5 into its Status section). Critique on confirmation.