[
 {
  "name": "YIELD / BREAK — compliance-switched stigmergy (the machine's only decision is whether to yield to its own past)",
  "one_sentence": "The tool's only actuated decision is the lateral stiffness of the radial axis: when compliant it is mechanically captured and steered by the first old groove it meets (depositing nothing, since pass two cuts nothing), and when stiff it ploughs a straight chord across everything in its way — and the switch between the two is triggered not by a distance or a timer but by a COUNT of groove-crossing force impulses, so the rule contains no length at all and the pattern's scale is manufactured entirely by the metal.",
  "what_the_machine_reads": [
   "Tangential (drag) force F_t at the holder flexure, 0-5 N, >=2 kHz. Three discriminable levels from this project's own stylus model: ~0.707 N ploughing virgin metal (H*A at 300 gf, 120 deg cone, 12.5 um apex), ~0.44 N riding inside an existing groove (friction only, mu~0.15), ~0.5-0.6 N re-cutting work-hardened metal (9.96 um instead of 15.907 um). This is the CUT/RIDE bit.",
   "Radial (lateral) force F_r on the rail, same flexure, orthogonal channel. Non-zero and sign-bearing only when the tip is inside a groove and the commanded radial motion is fighting the wall. This is the CAPTURED bit, and it is a force the past self is exerting on the present one.",
   "Crossing impulses: the transient normal acceleration / acoustic-emission burst as the tip drops into and climbs out of a transverse groove. Duration w/v = 61.8 um / 25 mm s^-1 = 2.47 ms, i.e. a 405 Hz event; detected as an envelope excursion >4 sigma above the riding baseline with a 2 ms dead time. Accelerometer or AE piezo on the drag holder; AE in the 0.03-1 MHz band already discriminates rubbing/ploughing/cutting in single-grit scratch tests, so this is instrumentation, not speculation. THE MACHINE COUNTS THESE. It never averages them.",
   "The local groove tangent, read off its OWN radial encoder while compliant: over the last 0.5 mm of railed travel, tau = atan2(dr, r dtheta). The metal steers the tool and the tool reads where it was steered. This is the only geometric quantity in the rule and it is a direction, not an amount.",
   "Nothing else. No density, no occupancy, no box average, no lookahead. LOOKAHEAD_MM = 7.0 in only-surprise/engine/polar.py:88 and SENSE_MM = 2.5 at polar.py:87 are both deleted; the sensing footprint becomes the contact patch, ~62 um, a 1:1 match to the mark instead of the present 81:1."
  ],
  "the_rule": "MACHINE STATE (entire): mode in {CUT, RAIL}; one small integer n; one sign bit s; one heading psi. No map of any kind.\n\nKINEMATICS. Constant tangential surface speed v_t = 25 mm/s, so Omega(r) = v_t / r (0.13 rad/s at r=190, 0.83 at r=30). Radial axis max speed v_r,max = 50 mm/s. Therefore the maximum attainable heading off tangential is psi_max = arctan(v_r,max / v_t) = 63.4 degrees, THE SAME AT EVERY RADIUS. (This single change from constant-Omega to constant-v_t is what removes v4's rim trap: with constant Omega, psi_max falls as 1/r and the outer annulus becomes kinematically unable to leave the tangential direction, which is the mechanism of the 10 mm ring and of the 177.4 mm lock.) Rotary quantum D_THETA = 2*pi/3200 = 1.96 mrad is kept: the anisotropy that bought a factor of ten stays in.\n\nCUT MODE. Radial axis stiff: force limit F_s = 3.0 N (must exceed the groove escape force, see constants). Hold psi CONSTANT in the disc frame — a straight chord — subject to |psi| <= psi_max and boundary reflection at r_min = 30 mm, r_max = 190 mm (reflect psi about the tangential direction). Every detected crossing impulse increments n, EXCEPT the first one after entering CUT (that is the parent groove being left). When n reaches N_cut = 6: n <- 0, mode <- RAIL.\n\nRAIL MODE. Radial axis compliant: radial force limit F_y = 0.25 N (must be below the escape force with margin). The tool is now back-driven: the next groove it meets captures it and steers it, which the machine confirms by F_t dropping below 0.55 N together with |F_r| rising above 0.15 N. It follows that groove wherever it goes — no tracking algorithm, no model of the groove, the metal does the steering. Reduce Omega so that speed along the groove stays v_t. NOTHING IS DEPOSITED (depth is spring-set; pass two finds nothing left to cut). Count junction impulses (crossing transients occurring while F_t is at riding level, i.e. other lines crossing this one). When n reaches N_rail = 2: read tau over the last 0.5 mm, set psi <- tau + s * beta with beta = 60 degrees, clamp |psi| <= psi_max, flip s <- -s with probability 1-p (p = 0.10, so the alternation is broken one time in ten), n <- 0, mode <- CUT.\n\nFALLBACKS (both are boundary conditions of the disc, not tuned constants). If RAIL reaches r_min or r_max without ever being captured (early plate, no grooves), reflect and go CUT with psi <- tau + s*beta. If CUT reaches a boundary, reflect.\n\nSTOP CONDITION, measured not timed. Halt when the plate-mean crossing rate reaches k_max = (2/pi)(1/w) = 10.3 mm^-1, equivalently groove length density Lambda = 1/w = 16.2 mm/mm^2. Past that the grooves have merged, crossings stop being countable events, and the piece is over.\n\nCONSTANTS, complete: v_t = 25 mm/s; v_r,max = 50 mm/s; load 300 gf = 2.942 N; groove w = 61.8 um, d = 15.907 um (120 deg cone, 12.5 um apex, this project's stylus.py); F_s = 3.0 N; F_y = 0.25 N; F_t cut/ride threshold 0.55 N; |F_r| capture threshold 0.15 N; crossing detector 4 sigma, 2 ms dead time; tangent window 0.5 mm; N_cut = 6; N_rail = 2; beta = 60 deg; p = 0.10; r in [30, 190] mm; control loop 1 kHz (25 um of travel per update).\n\nNOTE WHAT IS NOT IN THAT LIST: no wavelength, no sensor radius, no kernel width, no decay rate, no adaptation time constant, no feed per revolution, no set-point gap, no turn-rate limit, no target density, no error signal, no reward. The only lengths are the tool's own dimensions (62 um), the detector dead time (50 um of travel), and the disc's two radii. Everything that governs the pattern is a COUNT (6, 2), an ANGLE (60 deg), or a FORCE.",
  "why_it_cannot_saturate": "Because nothing is averaged and nothing is compared to a fixed amplitude. The two quantities the rule consumes are (i) an EVENT COUNT and (ii) a MECHANICAL FORCE exerted by the metal on the tip.\n\nAn event count cannot saturate through gain. Occupancy died because it is an area fraction through a 5 mm box: 81 groove-widths wide, so it reads 1 long before the metal is full (the 8 h flat run reported 82% coverage when the Boolean-strip estimate of true areal coverage was 30.0%). A crossing count has no ceiling from averaging; it only fails when consecutive grooves become physically indistinguishable, i.e. at mean spacing = w. That is the merge horizon Lambda = 1/w = 16.2 mm/mm^2, a real end of the medium, ~2390 m of cut path, ~26.5 h. The run is sized to reach it and stop, rather than to outlive it and report a plateau.\n\nThe force channel cannot saturate either, and this is the deeper point: F_r is not an accumulation, it is a CONTACT REACTION. A groove cut one hour ago pushes on the tip exactly as hard as one cut one second ago; the wedge angle of the groove wall does not fade, and it does not get stronger with 85 passes because depth is load-set. Permanence is not a defect for this channel — it is the reason it works. There is no field to integrate, so there is no integral to fill up.\n\nFinally, the internal state is a mode bit, an integer that never exceeds 6, and a sign bit. There is no internal accumulator to run away and no internal map to become a substitute for the metal. The rule is structurally incapable of the v1-v5 death, which was always \"a learned model's error goes to zero\"; here there is no model and no error.",
  "predicted_macro_pattern": "A HIERARCHICAL POLYGONAL VEIN NETWORK — an arrangement of straight chords that start on an older line and end on an older line, subdividing itself over ~7 generations.\n\nMechanism, step by step. Generation 0: a virgin plate offers no crossings, so N_cut is never reached and the first chords run until the boundary — a handful of long strokes at the disc scale, the primary veins. Once they exist, every later chord BEGINS at a breakout point on an existing groove (a 3-valent T-junction, because the tool departs at 60 deg from a line that continues both ways) and ENDS by being captured into an existing groove (another 3-valent T-junction). Chords that happen to cross a line steeply mid-flight leave a 4-valent node. So:\n\n- MEAN VERTEX DEGREE near 3, not 4. This is the signature, and it is the thing a non-lifting tool is supposed to be unable to do. Groove capture plus invisible retrace is a PHYSICAL mechanism for 3-valent branching in a single continuous stroke: the tool enters a T, rails along it, and leaves by the same edge, so the mark set is 3-valent even though the walk is not.\n- JUNCTION ANGLES peaked at 60 and 120 degrees (beta = 60 is in the rule, so this is NOT claimed as emergent — it is a consequence, and I say so).\n- CLOSED AREOLES with a power-law area distribution over about two decades, because each new chord subdivides every cell it crosses, and chord length is a fixed MULTIPLE of the local cell size rather than a fixed number of millimetres. That multiplicative relation is what makes the structure hierarchical instead of merely dense.\n- A VISIBLE ARROW OF TIME: earliest chords are longest and span the plate, latest are shortest and fill cells. Vein hierarchy without any pruning, purely because the medium cannot forget and therefore records its own order of construction. This is the one thing a decaying medium CANNOT produce, and it is the honest artistic pay-off of permanence.\n- CELLS ELONGATED TANGENTIALLY, roughly 1.5-2:1, because every heading is within 63.4 deg of tangential. That is the machine's body signing the work, as the quantisation did in v4. Predicted, not hidden.\n- CONTINUOUS ALIVENESS: sprout events per metre of path stay constant (one per N_cut+N_rail = 8 crossings) all the way to the merge horizon. No loop can contract on permanent metal, so the aliveness metric is sprout rate, and it is constant by construction rather than by hope.\n\nWHAT IT IS NOT: not a fixed-wavelength Turing pattern. There is no frozen periodicity. If a single spacing is wanted, this design will not give one, and pretending otherwise would be the sixth failure.",
  "predicted_length_scale": "There is no single fixed lambda; there is a scale that REFINES with path length according to a formula the rule does not contain, and the formula is the prediction.\n\nCell size. Working annulus r in [30, 190] mm gives A = pi(190^2 - 30^2) = 110,584 mm^2. Duty cycle: CUT length ~ N_cut/k and RAIL length ~ N_rail/k with the same crossing rate k, so the fraction of path that actually cuts is phi = N_cut/(N_cut+N_rail) = 6/8 = 0.75 — a prediction from the two counts alone. Groove length density after path P is Lambda = phi*P/A, and for a mesh of pitch a, Lambda = 2/a. Hence\n\n  a(P) = 2A/(phi P) = 294,890 / P   [a in mm, P in mm]\n\n  1 h  (P = 90 m):   a = 3.3 mm\n  2 h  (P = 180 m):  a = 1.6 mm\n  4 h  (P = 360 m):  a = 0.82 mm\n  26.5 h (P = 2390 m, merge horizon): a = 0.123 mm = 2w\n\nChord length. The rule ends a flight after N_cut crossings, and by Cauchy/Buffon the crossing rate for isotropic grooves is k = (2/pi)Lambda = (4/pi)/a. So\n\n  L = N_cut/k = (pi N_cut/4) a = 4.71 a\n\n  1 h: L = 15.4 mm.  4 h: L = 3.9 mm.  Merge: L = 0.58 mm.\n\nSo the headline numbers are: MILLIMETRIC (1-4 mm) cells and centimetric (4-15 mm) veins in the first hours, refining to ~0.12 mm cells and ~0.6 mm veins at the end, with the DIMENSIONLESS RATIO L/a = pi*N_cut/4 = 4.71 held constant across every generation and every scale. That ratio is the real prediction. It is a pure number produced by a pure number, and it is the only thing in the design that is scale-free by construction — which is exactly why the millimetres themselves are set by the metal (by A and P) and not by the rule.",
  "scale_separation": "SENSING RADIUS. The machine integrates force over one crossing transient: duration 2.47 ms at 25 mm/s = 62 um of travel, which is one groove width. Add the 2 ms detector dead time (50 um) and the 0.5 mm tangent window (used for a DIRECTION, not an amount) and the effective sensing radius is R_s ~ 62 um. Compare with the present machine: SENSE_MM = 2.5 (a 5 mm box) against a 61.8 um mark is 81:1. This design is 1:1.\n\nRATIO a/R_s: 53 at 1 h, 26 at 2 h, 13 at 4 h, 2.0 at the merge horizon.\nRATIO L/R_s: 248 at 1 h, 63 at 4 h.\nRATIO a/(control step 25 um): 131 at 1 h.\n\nWHY IT EXCEEDS 1, stated as mechanism rather than as arithmetic: the sensor's reach and the pattern's scale are UNRELATED QUANTITIES here. The sensor reach is the tool's contact patch, fixed by the diamond. The pattern scale is the distance the tool TRAVELS between the sixth and seventh crossing event, which is set by the density of what it has already cut. Transport, not sensing, carries the scale — the same reason the mouse starburst amacrine mosaic has a 26-28 um period from a ~20 nm homophilic contact interaction (ratio 10^3): the spacing is the dendritic territory, not the molecule. Because the pattern scale is a QUOTIENT (count divided by density) and the sensor scale is a CONSTANT, the ratio must fall as the plate fills, and it does — from 53 to 2. The honest working window of the piece is the first decade, where separation exceeds 10; the last decade is the medium being consumed, and it should be presented as such.\n\nThis also means the design cannot fool itself in the usual way. There is no kernel whose width could be photographed onto the disc, because there is no kernel. If the measured spacing came out near 62 um from the start, that would be the sensor — and it does not, by two to three orders of magnitude.",
  "null_model": "REMOVE CAPTURE, KEEP EVERYTHING ELSE. Run the identical rule with the radial axis permanently stiff (F_y := F_s = 3.0 N), so the tip always ploughs across a groove and is never steered by one. Every other constant, the crossing count N_cut, the 60 degree turn, the alternation, the speeds, the quantisation, the stop condition: unchanged.\n\nWhat the null must produce, and it must NOT be the pattern: with no capture there is no way for a flight to TERMINATE on an existing line and no invisible retrace, so the RAIL phase degenerates into more cutting. Every chord runs boundary-to-boundary. The result is a random chord arrangement on a disc: mean vertex degree -> 4 (all nodes are transversal crossings, zero T-junctions), junction angles broadly distributed rather than piled at 60/120, cells all convex and all subdivided by full chords so cell area scales as 1/n^2 with no hierarchy and no power law over two decades, and — decisively — chord length becomes the disc chord (~200-380 mm) INDEPENDENT of local density, so L/a is not 4.71 and is not constant. Duty phi -> 1.0 instead of the predicted 0.75.\n\nThat is the correct null because capture is the one ingredient that is neither a computation nor a length: it is the past self exerting force on the present one. If the null and the full rule give statistically indistinguishable plates, then the metal was never in the loop and the whole proposal is a scribble with a story.\n\nSecondary null, worth one short run because it reproduces the known disease: set N_cut = 0 (no refractory count, capture re-enabled immediately after breakout). Prediction: the tool breaks out, is recaptured within a fraction of a millimetre, and locks — the sixth closed orbit, arriving in minutes instead of hours. That the same rule minus one integer reproduces five years of failure is itself the evidence that the integer is doing the work.",
  "falsifying_measurement": "THE MEASUREMENT: L/a = pi*N_cut/4, tested BOTH across an N sweep and across scales within one run.\n\nProcedure. Four short runs (2 h each, ~180 m) at N_cut = 2, 4, 6, 12, everything else fixed. For each: (a) mean flight length L, measured directly from the log as the path length between entering CUT and entering RAIL — this is free, the machine already knows it; (b) mean cell pitch a, measured from the metal as the position of the first peak of the segment-segment pair correlation along many radial and tangential transects, reported with its coefficient of variation. Then fit L = C*a and compare C with the prediction pi*N/4 = 1.57, 3.14, 4.71, 9.42. Additionally, within the single long run, bin by generation (equivalently by path-length quartile) and check that C is the same at 15 mm chords and at 1 mm chords.\n\nTHE RULE IS FALSIFIED IF ANY OF:\n1. C is independent of N_cut. Then the count is not setting the flight length and something else is — most likely the crossing detector's angle sensitivity (see risk 3).\n2. L is constant in millimetres while a changes by a decade. Then a LENGTH is being imported, and there are exactly three suspects to check in order: the drag holder's flexure resonance (report the measured f and the chatter wavelength v_t/f — 25 mm/s at 80-1200 Hz is 312 um down to 21 um; any spectral peak there is mechanics, not intelligence, and must be subtracted BEFORE any spacing is claimed), the 2 ms detector dead time (50 um), and the rotary quantum r*D_THETA (0.06 mm at r=30, 0.37 mm at r=190 — check whether a tracks r, which would expose it).\n3. a(P) does not follow 294,890/P within a factor of 1.5 over the first decade, or the duty phi is not 0.75 +/- 0.05. Both are closed-form consequences of the two counts; if they fail, the CUT/RAIL bookkeeping is not what the metal is doing.\n4. Mean vertex degree comes out at 4 rather than near 3, or the T-junction fraction is under 0.5. Then capture is not terminating flights and the null model and the real rule have converged.\n\nSECONDARY GATES, running live, hourly, each of which would have caught a previous failure within the hour instead of at hour eighty: entropy of the visited-radius histogram against uniform-in-area, and max fraction of path in any 10 mm annulus (v4: 69%); standard deviation of r over the trailing hour (v5: 2.9 mm for 64 h); the turn-rate / mode-switch power spectrum, requiring broadband rather than a line (a locked orbit shows as a growing spectral line hours before coverage flattens); crossing-count-per-metre, which must RISE monotonically as 0.75P/A * (2/pi) toward 10.3 mm^-1; and true areal coverage reported as 1 - exp(-Lambda*w) ALONGSIDE any grid figure, never instead of it. Straight fraction and model error are not reported at all: 93% straight and error at 1/195 were both compatible with total collapse.",
  "collective_intelligence_claim": "The claim is narrow and, for once, mechanical rather than metaphorical: THE ONLY TWO THINGS THIS MACHINE READS ARE FORCES THAT ITS PAST SELVES ARE EXERTING ON IT RIGHT NOW.\n\nWhen the tip is compliant and a groove steers it, that is a past pass physically moving the present pass — the message is a lateral force of order 1 N through a 30 degree wedge, and it is not in any log. When the tip crosses a groove, the past pass delivers a 2.47 ms impulse, and it is the arrival of six such impulses that makes the machine turn. The machine holds a mode bit, an integer no larger than six, and a sign. It has no map. It cannot have one: it has never measured anything at a distance.\n\nThat is what makes the stigmergy claim earn its keep here rather than decorate the work, and there is an operational test for it, borrowed from the sensor investigation: a second machine with no memory, set down anywhere on the finished plate, would obtain exactly the same two readings and would continue the pattern seamlessly. Occupancy passed that test and carried nothing (it reads 1 everywhere within an hour, so the channel had zero capacity, which is precisely why \"the collective is its own past selves\" was only a nice sentence for v1-v5). An internal per-cell pass-count map would fail it outright — that is memory wearing the word stigmergy. Capture force and crossing count pass it, and the channel has real capacity: at the merge horizon the plate holds of order A/w^2 ~ 3x10^7 distinguishable groove positions.\n\nThe collective is therefore the ~7 generations of chords, and the medium is not a record of their work — it is the wiring between them. What is genuinely collective is that no single pass knows the pattern: generation 0 laid three long lines with no information at all, and every subsequent generation's length was set by a density that no pass measured and none intended. The hierarchy is authored by the order of arrival, which is a property of the group and of nothing in the rule.\n\nOne honest limit, stated because the reframing is usually oversold: what is unavailable is SIMULTANEITY. Jones' network remodels because two flows push on each other within one relaxation time; small loops contract while large ones sprout. A single pen cannot push against something it did an hour ago — it can only be steered by it or plough through it. So this design gets branching, spacing, hierarchy and 3-valence, and it does not get contraction, pruning or the swept elegance of a mature Physarum plasmodium. Failed branches are permanent. The plate keeps its hesitations, and that should be said in the wall text rather than discovered by a critic.",
  "risks": [
   "THE ONE THAT KILLS IT: the force window may not exist. Capture requires F_y < F_escape < F_s. Escape by climbing the 30 degree wall costs about N*(tan30 + mu)/(1 - mu*tan30) = 2.34 N, but escape by ploughing sideways at 15.9 um depth costs only ~0.7-1.0 N, and the tip will take the cheaper route — so F_escape is probably 0.7-1.0 N, uncomfortably close to the 0.707 N forward cutting force. If the two are indistinguishable, the mode bit is unobservable and the whole design collapses. MEASURE FIRST, on a coupon: escape force versus crossing angle, and the F_t histogram for cut / ride / re-cut, before any metal is committed. If the window is too narrow, widen it with a blunter apex (deeper groove, steeper effective wedge) or a higher load.",
   "SELF-RAILING WITH A HEAVY TAIL. A groove with no crossings along it never delivers the N_rail = 2 junctions, so the tool rails forever — a hardware-level closed orbit that would look exactly like the previous five failures while having nothing to do with the rule. Mitigations: log the railed-arc-length distribution every run and gate on its tail; hard cap the railed arc at the disc scale (admittedly a length, but a boundary condition rather than a wavelength); and note that the early plate is where this bites hardest, since generation 0 lines have almost no crossings on them.",
   "CROSSING DETECTION IS ANGLE-DEPENDENT. It is experimentally established that cutting forces DROP when a tool crosses a previous scratch, and that shallow crossings (10 deg) give the lowest forces. So shallow crossings will be undercounted, N_cut will be reached late, and flights will run long — biasing L upward in a way that mimics an imported length. Calibrate P_detect(psi) on a coupon and either weight the count by 1/P_detect or count only |psi| > 15 deg, and report the correction.",
   "CHATTER, AND THIS DESIGN INVITES IT. Making the radial axis deliberately compliant is exactly the condition for regenerative chatter, whose wavelength v_t/f_flexure is 312 um at 80 Hz and 21 um at 1200 Hz — millimetric-adjacent, decay-free, and entirely capable of producing a convincing false positive. Measure f_flexure, publish v_t/f, and show the pattern's spectral peak is not there. This is the single most likely way to fool a sympathetic viewer.",
   "PILE-UP RIDGES, BURRS AND WORK HARDENING change the capture geometry asymmetrically. Re-cut metal reaches 450 HV and only 9.96 um depth, so lines that have been crossed many times capture more weakly than virgin-adjacent ones. That is a positive feedback on capture that could either help (older veins hold better, giving hierarchy) or bias the pattern radially. Log capture success rate against local crossing count.",
   "BREAKOUT IS NOT QUITE FREE. Ploughing sideways out of a groove widens it over ~36 um of travel, so retraces are invisible but junctions are not — each T-junction carries a small nick. Artistically this reads as thickening at nodes, which is vein-like and probably desirable, but it must not be mistaken for emergent vein-thickness hierarchy. Measure groove width versus pass count and report it.",
   "THE SCALE REFINES; IT DOES NOT FREEZE. There is no fixed wavelength anywhere in this proposal. If the brief's 'characteristic spacing' means one number, this design does not deliver it, and no amount of running longer will make it. What it delivers is a fixed dimensionless ratio and a two-decade hierarchy. Decide that now, not at hour twenty.",
   "NO PRUNING, EVER. Exploratory chords that lead nowhere stay. Expect roughly one in ten flights (the p = 0.10 alternation break) to be structurally pointless and permanent.",
   "THE INNER DISC IS SLOW. Constant surface speed means Omega = v_t/r, so r = 30 mm runs at 0.83 rad/s and r = 190 mm at 0.13 rad/s. Rotary acceleration limits may make fast radial excursions near r_min infeasible; if so, raise r_min rather than reverting to constant Omega, which reinstates the rim trap.",
   "COUNTS OF SIX ARE SMALL. With N_cut = 6, Poisson fluctuation in the flight length is 1/sqrt(6) = 41%, so the pitch distribution will be broad — expect CV(a) around 0.4-0.5, at the loose end of what counts as a characteristic spacing. Larger N_cut narrows it but lengthens flights; the sweep will show the trade."
  ],
  "implementation_notes": "SIMULATE BEFORE CUTTING. This is a 2-D line-arrangement problem, not a field solve, so the whole thing runs in seconds: maintain the chord set, advance a straight flight, find the next intersection, count to six, then find the first intersection after going compliant and follow that chord. The N sweep (2/4/6/12), the C = pi*N/4 fit, the vertex-degree histogram and the loop-area distribution can all be produced in an afternoon. If C does not come out at pi*N/4 in simulation, nothing is learned from metal.\n\nCODE, in this repo. only-surprise/engine/scribe.py:40 (LOOKAHEAD = 7.0), :48 (TURN_CLAMP = 0.30), :35 (CELL = 1.0) and only-surprise/engine/polar.py:87-88 (SENSE_MM = 2.5, LOOKAHEAD_MM = 7.0) and polar.py:136 (density()) all go away: there is no density read, no lookahead, no turn clamp, and no error signal, so the learned-model half of scribe.py is deleted rather than modified. Keep polar.py:92 (D_THETA = 2*pi/3200) and polar.py:84 (R_MIN/R_MAX, retuned to 30/190). Keep only-surprise/engine/stylus.py entirely and extend it with an escape_force_n(angle) model beside depth_for_load_um(); the 120 deg cone and 300 gf already there give the wedge geometry. only-surprise/engine/groove_field.py already computes the nematic order (band_cos2/band_sin2, radial_order, alignment_strength) — promote it from analysis to a live gate on the visited-radius and orientation statistics. New file: engine/capture.py holding the intersection search, the escape-force model and the mode state machine (~150 lines). New file: engine/yield_break.py for the controller.\n\nHARDWARE, and this is the real cost of the proposal. (1) The radial axis must be BACK-DRIVEABLE and force-limitable — a voice coil or a torque-mode linear motor, not a leadscrew. Compliance is the actuated variable, so a non-back-driveable rail makes the algorithm unimplementable. (2) A two-axis strain-gauge flexure in the drag holder, 0-5 N, >=2 kHz, giving F_t and F_r. (3) An accelerometer or AE piezo on the holder for crossing impulses; 2.47 ms events need >=2 kHz, and AE at 0.03-1 MHz is the safer channel. (4) Control loop at 1 kHz (25 um of travel per update); the mode/counter state machine itself is about thirty lines. (5) Constant surface speed control, Omega = v_t/r.\n\nCALIBRATION ORDER, non-negotiable: escape force vs crossing angle on a coupon; F_t histogram for cut/ride/re-cut; crossing-detection probability vs angle; flexure resonance f and the chatter wavelength v_t/f. Only then a 2 h run at N_cut = 6, and the four-point N sweep before any long run.\n\nWHY NOT THE OTHER OPTIONS ON THE LIST.\n- A finite depletable resource on its own (competition instead of decay) is already inside this design — virgin metal is the resource and the CUT/RIDE bit measures it — but as the primary mechanism it is worse, because depletion is monotone and has no mechanism for choosing WHERE to stop. Local depletion at the read-box scale is precisely what produced the 82% plateau. Depletion gives you an ending, not a pattern.\n- Tero flux/conductance adaptation is not merely hard here, it is impossible in principle: it needs a conserved flow with back-pressure and a global Poisson solve over the whole graph, and a single pen carries unit flux through exactly one place at a time. Its one exportable idea — selection by a conserved finite budget — is kept, as the one-stroke path budget and as the 0.75 duty cycle.\n- The disc's rotation as a fixed-period clock is the seductive one, and it is the WORST option on the list, because it manufactures a length (radial feed per revolution) and locks the pattern to circular symmetry. Worse: a fixed period means constant Omega, and constant Omega makes the maximum attainable heading fall as 1/r, which is the actual mechanism of v4's 10 mm tangential ring and v5's 177.4 mm lock. The clock is a trap generator. This design deliberately does the opposite — constant surface speed, so psi_max is uniform in r — and that inversion is one of its two load-bearing changes.\n- A wearing tip adds a slow monotone drift in groove width, which is a ramp and not a pattern, and it corrupts the two things that must stay constant: the escape force and the merge horizon. It destroys the only clean physical nonlinearity in the design.\n- An oscillator or integrator with memory in the pen injects its own wavelength v/f. That is the chatter confound, and the correct treatment is to measure it and subtract it, not to build on it.\n- An excitable medium with the refractory state carried by the machine IS what this is — but the naive version times its refractory period in seconds or millimetres, which imports the wavelength through the back door and reduces to 'a robot with a short memory'. Counting the refractory period in crossing EVENTS instead is the whole trick: it makes the flight length a quotient of a pure number by a density the metal owns, so the rule contains no length and the metal sets the scale. That one substitution — a count where everyone else puts a constant — is the difference between this and the other three proposals."
 },
 {
  "name": "《忘れるのは目だけ》— Only the Eye Forgets",
  "one_sentence": "The tip counts the grooves it physically crosses, turns to align with each crossing in inverse proportion to how many it has crossed lately, and goes blind to any groove it has been riding for more than 4 mm of travel — so the metal keeps everything and only the reader forgets, and the pattern's scale is the length of one ride converted into transverse distance by the geometry of a closed circuit, not by any sensing radius.",
  "what_the_machine_reads": [
   "CROSSING EVENTS. A groove crossing is an impulsive drop-and-climb in the normal and tangential force as the tip falls 15.907 um into a 61.8 um groove and climbs out. At v = 25 mm/s and 90 deg incidence the transit is w/v = 2.47 ms (405 Hz), so a 2 kHz force channel resolves it in ~5 samples. Gives the event arclength s_i. Strain-gauge flexure on the drag holder, or an AE piezo (0.03-1 MHz band, standard in single-grit scratch work).",
   "CROSSING ANGLE, from the transit DURATION of that same impulse. The chord across a groove of width w at angle psi to the groove axis is w/sin(psi), so T_i = w/(v sin psi_i) and |sin psi_i| = w/(v T_i). 2.47 ms at 90 deg, 4.94 ms at 30 deg, 14.24 ms at 10 deg. One event yields one angle — no rate estimation, no averaging window, no probe held out ahead of the tip.",
   "SIDE, from the sign of the lateral (radial-axis) force impulse during the crossing: the groove wall deflects the tip toward the groove's own direction, so sign(integral of F_lat over the impulse) = sigma_i says which way to rotate to align. Readable as radial-axis motor current or a second flexure.",
   "VIRGINITY BIT m. Mean tangential drag over the control step. Ploughing virgin 304 costs H*A = 0.707 N; riding an already-cut groove is friction only, ~0.44 N at mu = 0.15 (normal load 2.942 N from 300 gf). A 2.6:1 contrast; threshold at 0.55 N. m = 1 means new metal is being made, m = 0 means the path is free.",
   "CROSSING MEMORY h, the only internal state in the sensory path: crossings remembered over the last l_a = 20 mm of travel. Not a map, not a per-cell count — one scalar that leaks."
  ],
  "the_rule": "STATE: position (r, theta), heading phi, arclength s, crossing memory h >= 0, ride-habituation H in [0,1]. Nothing else. No weights, no predictor, no field, no per-cell map, no lookahead.\n\nCONSTANTS: v = 25 mm/s; control step ds = 0.25 mm (100 Hz) over a 2 kHz force channel (ds_raw = 12.5 um); kappa_max = 0.5 /mm i.e. rho_min = 2.0 mm, so max turn = kappa_max*ds = 0.125 rad/step; l_a = 20 mm (crossing-memory leak length, = 0.80 s, = 80 steps); l_h = 4.0 mm (ride-habituation length, = 0.16 s, = 16 steps); K_a = 1.0; w = 61.8 um and d = 15.907 um from stylus.py; psi_c ~ 12 deg (groove capture angle, TO BE MEASURED); F_thr = 0.55 N.\n\nPER CONTROL STEP:\n  h <- h * exp(-ds / l_a)                                  # forget crossings, in ARCLENGTH not time\n  m <- 1 if mean|F_t| > F_thr else 0                       # cutting virgin metal, or riding\n  H <- H + (-H if m else (1 - H)) * ds / l_h                # habituate to riding, re-sensitise while cutting\n  dphi <- 0\n\nPER CROSSING EVENT inside the step (force impulse of duration T):\n  |sin psi| <- clamp(w / (v*T), 0, 1)\n  sigma     <- sign(integral of F_lat over the impulse)\n  x         <- 1 / (1 + h)                                 # Weber novelty: delta-nu over nu\n  h         <- h + 1\n  dphi      <- dphi - K_a * (1 - H) * x * sigma * arcsin(|sin psi|)   # turn to align with what you just crossed\n\nTHEN:\n  dphi <- clamp(dphi, +/- kappa_max*ds)\n  phi  <- phi + dphi\n  if the tip is inside a groove and |phi - theta_groove| < psi_c:  phi <- theta_groove; m <- 0   # PHYSICAL capture, not a rule: the 30 deg walls and aspect 3.89 guide the tip; the ride is free and lays no metal\n  advance ds along phi; specular reflection at r = 6 mm and r = 194 mm. NO other boundary term.\n\nWHAT IS DELIBERATELY ABSENT, and it is the diagnosis of v1-v5. In scribe.py the turn is `turn = (GAIN_GRADIENT + GAIN_SURPRISE*ae)*drive` plus `turn += GAIN_EDGE*diff*(...)`. When the error ae decays, GAIN_GRADIENT*drive and GAIN_EDGE survive — and the closed orbit is the LIMIT CYCLE OF THAT RESIDUAL CONTROLLER, not a failure of learning. Bolting habituation onto that law would have been the sixth failure. Here every turn is multiplied by (1-H)*x, both of which go to zero on any repeated experience, so the null output of a fully habituated reader is dphi = 0 — a straight line — and a straight line on a disc necessarily leaves any orbit. Even the boundary is a reflection, not a steering term, so it cannot enter the perceptual limit cycle.\n\nADAPTATION DYNAMICS, in one line each, and the ORDER MATTERS. (1) DIVISIVE first: x = 1/(1+h) is Weber-Fechner / Naka-Rushton with a sliding semi-saturation, identical in form to the count-based exploration bonus beta/(1+N). It is scale-free in density, so it never dies at any accumulation level. (2) SUBTRACTIVE second, on the already-normalised signal: (1-H) is a leaky high-pass in arclength with corner 1/l_h. This order is mandatory. A subtractive habituation applied FIRST, to a bounded occupancy reading, is a leaky differentiator of a saturating signal and its output is exactly zero — verified numerically in the grounding (u = 1-exp(-t/2), tau = 1 s gives y_end = 5e-5). Divisive-then-subtractive lives forever; subtractive-alone is the sixth failure with extra steps.",
  "why_it_cannot_saturate": "Three channels, ranked by how long each survives, plus an honest horizon.\n\n(1) THE LEVEL IS THROWN AWAY ON PURPOSE. x = 1/(1+h) responds to the RATIO of a new crossing to the crossings already remembered, so a plate at 0.1 mm/mm^2 and a plate at 10 mm/mm^2 both read x-values spanning the same range. There is no absolute reference anywhere in the rule, so there is nothing for accumulation to push against. This is what evaporation was doing arithmetically, done in the reader instead of in the metal.\n\n(2) THE ANGLE IS A RATIO OF NOTHING. |sin psi_i| = w/(v T_i) is a property of one groove and one heading. It is invariant under lambda -> c*lambda: multiply the amount of metal by any factor and every crossing still reports its own angle. Direction does not accumulate. This is the channel that would still be informative at 100% areal coverage.\n\n(3) THE VIRGINITY BIT IS ABOUT THE PRESENT GROOVE, not the neighbourhood, so it survives to the merge horizon too.\n\nWHAT DOES DIE, computed rather than hoped: crossings stop being individuable when the mean groove spacing equals the groove width, lambda_merge = 1/w = 16.18 mm/mm^2. On the annulus r in [5,195] (119,381 mm^2) that is 1932 m of VIRGIN groove, i.e. 21.5 h at 25 mm/s if nothing is ever retraced. Past that the plate is a matte plateau and the sensor is blind. The design accepts this and instruments it as a live gauge instead of running 80 h and hoping — and note that the previous runs blew straight through it: the 8 h flat run's 720 m on a 124,740 mm^2 plate is lambda = 5.8 mm/mm^2, and the 80 h runs' 7200 m is lambda = 60 mm/mm^2, i.e. 3.7x PAST global merge. The reframing this forces is sharper than \"the sensor saturated\": a mesh at 7.6 mm spacing contains 15.7 m of line. v1-v5 cut 46x to 480x more line than the pattern they were looking for could hold. The structure may have existed in the first ten minutes of every run and been destroyed by the remaining seventy-nine hours.\n\nCorollary, and it is a feature: because retracing cuts nothing (pass 40 reaches the same 15.907 um as pass 1) but also costs no budget, the machine's life is bounded by VIRGIN METAL, not by hours. To fill 80 h it must spend >=73% of its path re-walking its own grooves. That is a conserved-budget selection mechanism that is already physically true of this machine, and it is measurable as the retrace fraction.",
  "predicted_macro_pattern": "A reticulate cellular network laid down in GENERATIONS, each generation bisecting the gaps of the last, terminating at the groove-merge horizon after ~22 h of cutting.\n\nMechanism, step by step. On virgin metal h = 0 so x = 1: the first groove the tip meets produces a FULL alignment turn, the tip falls into capture and rides free (m = 0, no new metal). H builds with length constant l_h = 4 mm; after ~3*l_h the ride is invisible, dphi -> 0, and the tip holds its heading — which on a curving vein means departing it TANGENTIALLY, at a small angle, which is the vein branching angle nobody put in the rule. It then cuts virgin metal until it meets the structure again. So the path is a chain of free rides (~l_h long) joined by cutting excursions, and the closed circuit of one ride-and-return is what sets the cell.\n\nGeneration 1: cell perimeter ~ 6*l_h for a 3-valent cell, so across-flat Lambda_1 ~ 6*l_h/pi = 1.9*l_h = 7.6 mm. Total line = 119,381/7.6 = 15.7 m = 10.5 min of cutting.\n\nThen, because x is Weber and therefore scale-free, the machine behaves identically at the next density down: it is transparent to crossings that arrive faster than one per l_a and fully steered by crossings rarer than that, so it always inserts new line into the currently-largest gaps. Always-bisect-the-largest-gap is a van der Corput / Kakutani process, and its spacing ratio is 2 as a matter of geometry, not of any constant in the rule. Predicted generations: 7.6, 3.8, 1.9, 0.95, 0.48, 0.24, 0.12 mm, costing 15.7, 31.4, 62.8, 125.7, 251.3, 502.7, 1005.3 m — cumulative 1995 m against the 1932 m budget, i.e. the hierarchy exhausts the plate almost exactly at the merge horizon, 22.2 h. The piece has a physical completion condition. That is new for this project.\n\nSPECTRAL SIGNATURE, which is the unusual and falsifiable part: not one peak but a power-law envelope with LOG-PERIODIC MODULATION of period ln 2 = 0.693 in ln k. A difference-of-Gaussians filter, a smoothing kernel, a chatter resonance and a closed orbit all give a single peak or a single line. Log-periodicity with ratio 2 is a fingerprint of largest-gap bisection and it is a statement about a number the rule does not contain.\n\nWHERE THE HIERARCHY IS VISIBLE, honestly. NOT in depth (load-fixed at 15.907 um, pass 40 adds zero) and probably not in width. It is visible in TOPOLOGY: a generation-1 vein is crossed by every later generation, so it becomes a long, orientationally-coherent line densely punctuated by junctions, while generation-6 line is short and sparsely crossed. So report vertex degree per unit length and orientational correlation length per generation, not thickness. Thickening by cutting a parallel groove 60 um alongside is physically possible (approach at psi just above psi_c) but whether the rule does it is a PREDICTION TO MEASURE, not a claim.\n\nJunctions should be predominantly 4-valent crossings with a tail of shallow-angle 3-valent breakout branches, since a never-lifting tool makes crossings natively and branches only via tangential departure. Do not promise 120 deg Plateau junctions; that is a crowd phenomenon.",
  "predicted_length_scale": "Lambda_1 = 7.6 mm (coarsest generation), then 3.8, 1.9, 0.95, 0.48, 0.24, 0.12 mm.\n\nREASONING, and this is the requested derivation of how a scale in TIME becomes a scale in SPACE. The adaptation constants are times: tau_h = 0.16 s, tau_a = 0.80 s. Multiplying by v = 25 mm/s gives ARCLENGTHS l_h = 4 mm, l_a = 20 mm. An arclength is NOT a transverse spacing — 4 mm of path traversed while circling gives a transverse displacement of zero. So the conversion factor must be named, and it is a geometry the rule never performs:\n\n  the ride-and-return circuit closes on itself, so the arclength l_h is a SEGMENT of a closed cell wall, not a straight run. A cell with N_seg ~ 6 segments has perimeter N_seg*l_h and across-flat width perimeter/pi. Hence\n\n      Lambda_1 = (N_seg / pi) * l_h = 1.9 * l_h = 7.6 mm.\n\nThe factor 1.9 is perimeter-to-diameter for a closed loop of six segments. It is not in the rule, and neither is N_seg — the number of segments per cell is set by how often a departing tangent re-meets the structure, which is itself set by the pattern. So Lambda_1 = (N_seg(Lambda_1)/pi)*l_h is a SELF-CONSISTENT equation, and the exponent d log Lambda_1 / d log l_h should therefore come out slightly BELOW 1 (predict 0.8-1.0) rather than exactly 1. That sub-unity exponent is the only place a genuinely selected, as opposed to imported, length can show up, and it is cheap to measure.\n\nl_a plays a different role and sets no spacing: it sets the crossing INTERVAL at which the machine stops being confined by the current generation and begins the next (h steady-state at Lambda_1 is l_a/Lambda_1 = 2.6 remembered crossings, so x ~ 0.28 — weak but nonzero steering, which is the regime where transparency to the coarse mesh and confinement by it coexist). Prediction: Lambda_1 is INDEPENDENT of l_a.\n\nThe generation ratio 2 comes from bisection geometry and from no constant at all.\n\nThe floor 0.12 mm is 2*w, the smallest spacing at which crossings remain individuable.\n\nBE CLEAR ABOUT WHAT IS AND IS NOT EMERGENT. The base scale is proportional to a constant in the rule (l_h), so it is largely imported — as it is in every decay-free wavelength-selecting mechanism (Kuramoto-Sivashinsky's sqrt(2*kappa/nu), a DoG's sigma_2). The defensible claims are narrower and stronger: (a) the imported constant is a length ALONG THE PATH, and the rule contains NO transverse length in the plane whatsoever — the conversion is done by a circuit geometry the rule does not know about; (b) the ratio between generations, and hence the whole hierarchy and the log-periodic spectrum, is set by nothing in the rule; (c) the topology (vertex degree, branch angle, loop-area distribution, per-generation orientational coherence) is set by nothing in the rule. The spacing is a dial. The hierarchy and the topology are not.",
  "scale_separation": "Lambda_1 / sensing radius = 7.6 mm / 0.031 mm = 246.\n\nIt exceeds 1 by two and a half orders of magnitude because THERE IS NO SENSING BOX. The sensing radius is the contact patch itself — half a groove width, 30.9 um — because every reading is a force transient at the point of contact. The pattern scale is produced by TRANSPORT (a ride length converted to transverse extent), which is a physically unrelated quantity from the sensor's aperture. Nothing about the pattern can be the sensor's impulse response printed on the disc, because the impulse response is 31 um wide and the pattern is 7.6 mm.\n\nFor comparison, the number this replaces: v1-v5 read a density box of SENSE_MM = 2.5 mm radius (5 mm across) against a 61.8 um mark — a low-pass filter 81x wider than the only feature that exists, plus a LOOKAHEAD_MM = 7.0 mm probe pair that the project's own constraint (\"read at or near the tip\") forbids. Their pattern scale over their sensing scale was ~1.6, and v4's celebrated 10 mm tangential ring is within a factor of 2 of the 7 mm lookahead. That is a filter photographing itself.\n\nThe other ratios a critic will demand, all reported bare: Lambda_1 / control step = 7.6/0.25 = 30.4. Lambda_1 / rho_min = 3.8. Lambda_1 / l_h = 1.9 — LESS THAN 1 in the wrong direction if l_h is treated as a sensing scale, which is exactly why the exponent test below, not this ratio, is the real evidence: l_h is a path length, not an aperture, and the honest discriminator is whether Lambda_1 tracks it with slope 1 (advective restatement) or below 1 (self-consistent selection).",
  "null_model": "PRIMARY NULL — remove the adaptation, keep everything else. Freeze the reference: replace x = 1/(1+h) with a constant x = x_0 (tuned so the first hour is statistically indistinguishable from the real run), and set l_h = infinity so H stays 0. Keep the crossing-rate reading, the transit-duration angle, the lateral-force sign, the alignment turn, the curvature limit, the capture physics, the anisotropic disc, the specular boundary. Everything physical is identical; only the reader's forgetting is gone.\n\nREQUIRED OUTCOME: a sixth closed orbit, and quickly. With a fixed reference, every crossing delivers the same alignment turn forever, so once the local density is above the reference the machine is turning at or near its clamp continuously and collapses onto a circle of radius ~rho_min = 2 mm, or (via capture) locks into a single vein and retraces it indefinitely. Prediction: radius standard deviation over the last third of the run below rho_min, a sharp line in the turn-rate power spectrum, spectral participation ratio collapsing to O(1) live modes, and NO second spectral peak — one spacing at most, no hierarchy, no log-periodicity. If the frozen-reference run also produces the hierarchy, adaptation is not the ingredient and this whole proposal is wrong.\n\nSECOND NULL, which isolates the hierarchy specifically — swap divisive for subtractive. Replace x = 1/(1+h) with x = clamp(1 - h/h_ref, 0, 1) for a fixed h_ref, keeping the (1-H) habituation. This has an absolute density scale, so it must produce exactly ONE visible spacing (at h = h_ref) and then die: log-periodic modulation absent, single spectral peak, and the reading going to zero once the plate passes h_ref everywhere. This is the null that tests the specific claim that Weber normalisation, not habituation, is what generates the generations. Note it is also the grounding's numerically verified result: a leaky differentiator of a saturating signal outputs 5e-5.\n\nTHIRD NULL, the mechanical control — run the identical rule on a VIRGIN coupon at every parameter setting and measure the spectrum of what a straight-commanded stroke actually cuts. Any peak present there is drag-holder chatter at v/f_resonance (21 um at 1200 Hz to 312 um at 80 Hz) and must be subtracted before any spacing claim. This is the confound most likely to produce a convincing false positive.",
  "falsifying_measurement": "THE DECISIVE ONE, and it fits in a day rather than eighty hours. Generation 1 completes in 10.5 minutes of cutting, so 90-minute runs reach generation 4. Run eight of them:\n\n  Sweep A: l_h = 1, 2, 4, 8 mm with l_a = 20 mm fixed.\n  Sweep B: l_a = 5, 10, 20, 40 mm with l_h = 4 mm fixed.\n\nFor each, take the transverse pair-correlation g(r) of groove segments across many radial and tangential transects, locate the first peak Lambda_1, and take the radially-averaged power spectrum of the groove-length-density field (built from groove_field.py's orientation histogram) to locate Lambda_2.\n\nPASS requires all four, jointly:\n  (i)   d log Lambda_1 / d log l_h = 0.8 to 1.0, with Lambda_1 / l_h = 1.9 +/- 0.4;\n  (ii)  d log Lambda_1 / d log l_a = 0.0 +/- 0.15;\n  (iii) Lambda_1 / Lambda_2 = 2.0 +/- 0.3 in ALL EIGHT runs, i.e. the generation ratio depends on no swept parameter;\n  (iv)  Lambda_1 unchanged (+/-15%) when the control step ds is halved to 0.125 mm at fixed l_h, l_a.\n\nFALSIFIED IF: Lambda_1 tracks l_a instead of l_h (the scale is the memory window, not the circuit); or Lambda_1 tracks ds (it is a stride, not a pattern); or Lambda_1 sits within a factor 2 of rho_min = 2 mm in every run (it is the curvature clamp); or there is no second peak at all (one imported spacing, no hierarchy, and the piece must be described as a labyrinth of pitch l_h rather than a network); or Lambda_1/Lambda_2 varies with l_h or l_a (the ratio is imported after all); or a peak appears at v/f_resonance on the virgin coupon at the same position (chatter).\n\nTHE LIVE GATE, which must run continuously and abort within minutes rather than post-mortem at hour eighty. Three numbers, chosen because each would have caught a specific prior failure:\n  - Mean x and mean (1-H) logged per minute. Both are bounded in (0,1] and NEITHER may fall below 20% of its first-hour value. The claim being made is that a closed orbit becomes literally invisible within ~3*l_h = 12 mm = 0.5 s of arclength, so the run can never sustain an orbit for more than about a second. If it does, adaptation is not working.\n  - Radius standard deviation over any rolling 10-minute window must exceed 5*rho_min = 10 mm, and the entropy of the visited-radius histogram must stay within 0.5 bits of uniform-in-area. This would have flagged v4 (69% of 7200 m in one 10 mm ring) and v5 (radius 177.4 +/- 2.9 mm for 64 of 80 h) in the first hour.\n  - Virgin metres laid against the 1932 m budget, and the retrace fraction. Report lambda(x) as a map against lambda_merge = 16.18 mm/mm^2 with the fraction of plate already past it. This replaces \"coverage\", which was meaningless: the 8 h flat run's true areal coverage by the Boolean-strip estimate 1-exp(-lambda*w) is 30%, not the 82% it reported and called a plateau.\n\nDO NOT gate on error decay or straight fraction. Every previous version reported falling error (1/34, 1/73, 1/195) and 93% straight while dying, and v5 reported error flat at 0.12 while locked for 64 hours. Both metrics are compatible with total collapse.\n\nTHE NAIVE-READER TEST, which is the operational test of the stigmergy claim rather than a restatement of it. After the run, put a second machine with zero memory on the finished plate and have it map |sin psi| and crossing rate versus heading over the same cells. Correlate its field with the first machine's h and H history. High correlation means the information is genuinely in the metal. Low correlation means the machine was reading its own state and the metal was decoration. Occupancy fails this test by construction; angle and crossing rate should pass it.",
  "collective_intelligence_claim": "Precise, in three parts, and one of them is a retraction.\n\nWHAT IS GENUINELY COLLECTIVE. The message on the plate is a graded, signed, direction-valued field — the local groove axis and its coherence — and every reading in this rule is one a second, memoryless machine could obtain from the plate alone with the same contact sensor. That is the operational test, and passing it is what makes the medium a channel rather than an output. Occupancy fails it: after the first hour it reads 1 everywhere and the channel capacity is zero, which is why for v1-v5 \"the collective is its own past selves\" was only a nice sentence — not because the idea was wrong, but because the channel was dead. Change what is written and how it is read and the sentence becomes a mechanism. Concretely: generation k+1's spacing is set by generation k's density, through h, read off the metal. The generation RATIO is therefore a property of the relation between successive selves and of no single self — it is the one quantity in the piece that no parameter sets, and it is collective in the only sense that matters, that it exists between the selves and not inside any of them.\n\nWHAT IS NOT COLLECTIVE, and this must be said out loud. The forgetting is PRIVATE. The metal is permanent and public; the amnesia is momentary and belongs to one reader. So this is stigmergy with an asymmetry that has no biological precedent I know of: every past self wrote to a reader that no longer exists in the state it wrote for. And because there is no simultaneity, there is no lateral competition — two flows cannot push on each other within one relaxation time when the lag between them is the whole elapsed history. Therefore: no pruning, no small loops contracting, no Physarum elegance. The network accretes and never dies. The eight-machine experiment already demonstrated the converse half of this (real simultaneity, identical rules, no mutual sensing, no territories), so the axis was never number or time; it is the SIGN of the interaction and the ORDER of the quantity being sensed. This rule changes both: it senses a direction rather than an amount, and it interacts by aligning-then-releasing rather than by following a gradient.\n\nTHE RETRACTION. The Tero flux-reinforcement loop is genuinely unavailable and I will not dress its absence up. It needs a conserved flow through a network with back-pressure; one pen carries unit flux through exactly one place at a time. What replaces it is not a substitute for it: the conserved budget here is VIRGIN METAL, 1932 m of it, and the machine's own retracing spends path without spending budget. Selection by scarcity of uncut steel, not by evaporation and not by flow. That is honest, it is already physically true of this machine, and it is less than what Physarum does.",
  "risks": [
   "GROOVE CAPTURE IS THE HARDWARE VERSION OF THE CLOSED ORBIT. The rule USES capture (walls 30 deg from the surface plane, aspect w/d = 3.89, depth 15.907 um) as the free-ride primitive, but a captured tip is mechanically trapped: habituation can make the DECISION blind while the tool is still physically railed. Measure the lateral force needed to exit a groove on a coupon and require the radial rail to exceed it with margin; log the dwell-in-groove path-length distribution and treat any tail beyond 20*l_h as an abort. This is the single most likely way the run dies with no failure of the rule.",
   "DRAG-HOLDER CHATTER WILL PRODUCE A SPACING WHETHER OR NOT THE RULE DOES. v/f_resonance gives 312 um at 80 Hz down to 21 um at 1200 Hz. Must be measured on a virgin coupon and subtracted before any spectral claim. Most likely convincing false positive.",
   "THE CROSSING SENSOR IS BLIND EXACTLY AT THE STEERING FIXED POINT. Below the critical crossing angle the tip deflects into the groove instead of crossing it, so |sin psi| is systematically under-reported precisely when the machine is nearly aligned, which is where the rule's attractor sits. May be benign (it deepens the alignment attractor) but must be characterised on a coupon, and psi_c must be a measured number, not the 12 deg guess used here.",
   "THE BASE SPACING IS LARGELY IMPORTED. Lambda_1 is proportional to l_h. If the exponent comes out 1.00 and the log-periodic second peak is absent, the piece is a labyrinth of pitch 1.9*l_h and should be described as such. The defence is the hierarchy and the topology, not the spacing, and if the hierarchy fails there is no defence.",
   "MONOTONE INFILL IS UNAVOIDABLE AND THE SPACING CANNOT BE MAINTAINED. Nothing can remove metal, so the local spacing only ever decreases. A mesh at 7.6 mm is a SNAPSHOT at ~10 minutes, not a steady state. Whether the coarse generation stays legible under six finer ones is an optical question that must be tested by rendering, and if it is not legible the piece is a grey field with a history nobody can see.",
   "THE RUN LENGTH IS ~22 HOURS, NOT 80, AND THE PIECE MUST BE SIZED FOR THAT. The virgin budget is 1932 m; the hierarchy costs 1995 m. Beyond the merge horizon the sensor is blind and the plate is a matte plateau. Either accept a ~22 h piece, or buy 10x with a finer tip (lambda_merge = 1/w, so a 6 um tip buys a decade), or make the disc bigger. Not a decision to make by running longer.",
   "THE BOUNDARY IS A BILLIARD. Specular reflection in an annulus has its own closed orbits and caustics, and the r = 5 mm hole is a geometric attractor where the tangential quantum vanishes. The radius-entropy gate must catch this; if it fires repeatedly, the boundary needs rethinking without introducing an un-habituated steering term (which is what killed v1-v5).",
   "DIVISIVE NORMALISATION AMPLIFIES NOISE ON A UNIFORM FIELD. On truly virgin metal there are no crossings and the rule outputs dphi = 0 (straight), which is correct and safe. But near h ~ 0 with sporadic crossings, x = 1 delivers a FULL alignment turn on a single possibly-spurious event. Require two consecutive impulses within 0.5 mm to qualify as a crossing, and verify the false-event rate against the AE band on a virgin coupon.",
   "THE ADAPTATION IS PRIVATE MEMORY, AND h/H ARE INTERNAL STATE. Two scalars is far less than an internal map, and both are reconstructible by a naive reader from the plate plus a heading, so the stigmergy claim survives. But it is not zero, and the honest framing is 'one machine with 0.8 s of amnesia reading a permanent public record', not 'the metal thinks'."
  ],
  "implementation_notes": "FILES. New module beside the existing engine, importing physical constants only: {repo_path}/only-surprise/engine/habituate.py. Do NOT import scribe.py's control constants — GAIN_GRADIENT, GAIN_SURPRISE, GAIN_EDGE, LEARN_RATE, PROBE_SPREAD, LOOKAHEAD, SENSE_R all become dead, and the whole point is that no un-habituated term survives. Import stylus.py for w and d, and reuse {repo_path}/only-surprise/engine/groove_field.py as the SIMULATION STATE rather than as post-hoc analysis: its per-cell orientation histogram (band_cos2/band_sin2, radial_order, alignment_strength) is already exactly the quantity the new sensor reads. Promote it from analysis to state.\n\nSTATE REPRESENTATION. Replace polar.py's `Disc` (a bytearray occupancy grid at CELL = 0.5 mm, which is the saturating quantity that caused all five deaths) with a groove-length-density-by-direction array length[iy, ix, ibin] in mm of groove per cell per direction bin. At cell 1.0 mm and 18 bins over [0, pi) on a 400x400 grid that is 11.5 MB float32; at cell 0.5 mm and 36 bins it is 92 MB, also workable. The crossing rate at heading phi follows directly from Cauchy: nu(phi) = sum_b lambda_b * |sin(phi - theta_b)|, and lambda_b = length[iy,ix,b]/cell^2. Sample a crossing event stochastically with probability nu(phi)*ds_raw per raw step, drawing the crossed bin b with weight lambda_b*|sin(phi-theta_b)|, then synthesise T = w/(v*|sin(phi-theta_b)|). That reproduces the real sensor's statistics exactly and needs no force model.\n\nTWO CORRECTIONS TO THE EXISTING CODE, both load-bearing.\n(1) scribe.py line 33 has GROOVE = 0.10 mm, which stylus.py supersedes: the computed first-pass width is 61.8 um (120 deg cone, 12.5 um apex, 300 gf -> 15.907 um deep, aspect 3.89). polar.py computes R_FINE = GROOVE / D_THETA from the stale value and gets 50.93 mm; with the real width it is 31.47 mm, and polar.py's docstring claim that the fine inner disc is \"6.8% of the area\" becomes 2.61%. The anisotropy story is a third as large as written. Fix before quoting either number again.\n(2) polar.py's SENSE_MM = 2.5 and LOOKAHEAD_MM = 7.0 must be deleted, not reduced. The 7 mm lookahead violates the project's own \"at or near the tip\" constraint, and the 5 mm-across density box is 81x the mark width — a low-pass filter whose cutoff deletes every structure at the only scale where structure exists.\n\nTIMING. Control loop 100 Hz (ds = 0.25 mm), sensing 2 kHz (ds_raw = 12.5 um, ~5 samples per 90 deg crossing transit, ~28 at 10 deg). The old loop ran at 41.7 Hz against a kHz world; this is the bandwidth axis the previous five versions never touched.\n\nCOUPON TESTS BEFORE ANY METAL RUN, in this order: (a) lateral force to exit a groove, versus available rail force; (b) critical crossing angle psi_c and the deflection behaviour below it; (c) drag-holder flexure resonance f, hence the chatter wavelength v/f to subtract; (d) crossing-impulse detectability and false-event rate in the AE band; (e) tangential force levels for the virginity threshold, expected 0.707 N ploughing versus ~0.44 N riding.\n\nSIMULATE BEFORE CUTTING. The whole eight-run parameter sweep is a simulation job of hours, and the log-periodic prediction (peak ratio 2.0, independent of every swept parameter) either appears in simulation or the design is wrong and no metal should be spent. The one thing simulation cannot settle is groove capture, which is why (a) and (b) above come first.\n\nBUDGET ARITHMETIC to instrument live: annulus area 119,381 mm^2; lambda_merge = 1/w = 16.18 mm/mm^2; virgin capacity 1932 m; generation costs 15.7, 31.4, 62.8, 125.7, 251.3, 502.7, 1005.3 m for spacings 7.6 down to 0.119 mm; cumulative 1995 m = 22.2 h at 25 mm/s. Report virgin metres and retrace fraction, never \"coverage\"."
 },
 {
  "name": "TWO RADII, OPPOSITE SIGNS — 《近くは誘い、遠くは拒む》 (What Is Near Invites, What Is Far Refuses)",
  "one_sentence": "The machine writes groove LENGTH DENSITY (not occupancy) into the metal, reads it back through two Gaussian kernels 1.2 mm and 6.0 mm wide with opposite signs, divides the difference by the wide one, and turns at a fixed small rate toward whichever of three map-probes has the largest value — which makes it seek out thin existing groove to thicken, refuse to sit at intermediate distance from a full vein, and therefore lay a reticulate network at a pitch of 1.40 x 6.0 = 8.4 mm on a plate it leaves 97% untouched.",
  "what_the_machine_reads": [
   "n_c — groove crossings in the last 0.5 mm step. Each crossing is a 31 ms drop-and-climb at v = 2 mm/s (transit = w/v, w = 61.8 um): an impulsive normal acceleration plus a drag spike. Accelerometer or AE piezo on the drag holder, AC-coupled above 5 Hz. This is the ONLY quantity the accumulator is built from, and it is unbounded up to the merge horizon at 16.18 mm groove per mm^2.",
   "F_t — mean tangential force over the step. Ploughing virgin 304 costs H*A ~ 0.71 N; riding an existing groove costs ~0.44 N at mu = 0.15 under the 2.94 N spring load. Threshold at 0.55 N. This is the cut/ride discriminant: it tells the machine whether the commanded cut actually LANDED, which no log contains.",
   "nu(psi) — the modulation of crossing rate with heading over a trailing 3 mm window, inverted by Cauchy (nu = lambda*|sin(psi - phi_lay)|, floor |sin| at 0.15) to give the local lay axis phi_lay in [0, pi) and the nematic order S = |<exp(2 i theta)>|. groove_field.py already computes exactly this histogram as an analysis tool; promote it to the sensor model.",
   "F_lat — lateral guidance force on the radial rail. Capture detector: the tip has fallen into an existing groove (walls 30 deg from the surface plane, aspect w/d = 3.89) when F_lat > 0.15 N while n_c = 0 and F_t sits at the riding level. Triggers contact-repulsion escape.",
   "delta_s_q — delivered tangential arc from the rotary encoder minus commanded arc. The quantisation dropout: 0.383 mm at the rim, 0.020 mm at r = 10. This is the one reading with no counterpart in any log, and it is where the stigmergy claim is earned rather than asserted.",
   "DERIVED: lambda_meas = groove length density in mm of groove per mm^2, from n_c, F_t and phi_lay. This is the accumulated field the two kernels average. NOTE: no reading is taken more than 61.8 um from the point of contact. The 7.0 mm LOOKAHEAD_MM of v1-v5 is deleted outright — it read metal the tip could not physically sense."
  ],
  "the_rule": "FIELD. Two float32 maps of measured groove length density lambda [mm groove per mm^2]: lam_a on 0.5 mm cells (800x800, 2.56 MB) and lam_i on 3.0 mm cells (134x134, 72 kB). On each step, if F_t > 0.55 N (a real cut), add DS = 0.5 mm of groove to the traversed cells; then correct that cell toward the Cauchy-inverted measurement lambda_meas = n_c/(DS*|sin(psi - phi_lay)|) at rate alpha = 0.3. Nothing decays, ever.\n\nTWO READS AT TWO RADII, OPPOSITE SIGNS.\n  A(p) = sum_j G(|x_j - p|; sigma_a) * lam_a[j],   sigma_a = 1.2 mm   (SHORT, POSITIVE)\n  I(p) = sum_j G(|x_j - p|; sigma_i) * lam_i[j],   sigma_i = 6.0 mm   (LONG, NEGATIVE)\nboth unit-mass Gaussians truncated at 3 sigma (15x15 taps on lam_a, 13x13 on lam_i).\n\nMERIT (the DoG numerator over the divisive-normalisation denominator — retina, not reaction-diffusion):\n  A' = min(A, A_cap),                      A_cap = 0.35 mm/mm^2\n  M(p) = [ A'(p) - gamma * max(0, I(p) - I_tol) ] / ( I(p) + eps )\n  gamma = 3.0,  I_tol = 0.100 mm/mm^2,  eps = 0.25 mm/mm^2\n  M(p) = -infinity  if  lam_a[p] >= lambda_stop = 8.0 mm/mm^2   (HARD EXCLUSION: a full vein may be crossed, never followed)\n\nTURN. Three probe points on the MAPS (not on the metal): p_0 at x + 1.5 mm along psi, p_+/- at x + 1.5 mm along psi +/- SA, SA = 0.5 rad. If M(p_0) >= max(M(p_+), M(p_-)) go straight; else turn by delta_psi_max toward the larger. delta_psi_max = kappa_max * DS = 0.025 rad/mm * 0.5 mm = 0.0125 rad per step, i.e. a persistence length L_p = 1/kappa_max = 40 mm. This is Jones' three-sensor argmax with sigma_i/DS = 12 standing in for his SO/SS = 9, and it is deliberately bang-bang: the gradient form kappa = k * n_hat . grad[ ln(A'+eps) - ln(I+eps) ] exceeds kappa_max almost everywhere, so the clamp IS the rule and it is the interfacial-tension / grad^4 term that stops tip-splitting into scale-free seaweed.\n\nFOUR OVERRIDES, each logged.\n  1. Capture escape (contact repulsion, the one non-field term): on F_lat > 0.15 N with n_c = 0, turn 0.075 rad/step away from phi_lay, sign toward lower I, until the signature clears; do not increment lambda. This is Dscam-style touch-then-withdraw, and it is the only place kappa_max is exceeded.\n  2. Tip split: if all three M < -0.4 (fully inhibited in every direction), permit kappa_split = 0.15 rad/mm for at most 24 steps. Split events per hour is the aliveness metric.\n  3. Noise: delta_psi += N(0, 0.004 rad) per step. Without it the virgin plate is degenerate (M = 0 everywhere).\n  4. Edge: within 15 mm of R_MIN = 5 or R_MAX = 195, add kappa_edge = 0.02 rad/mm inward.\n\nBODY AND BUDGET. Disc R = 200 mm, rotary microstep 2 pi/3200 (KEEP the anisotropy — it bought the factor of ten in v4), radial 1 um lead screw. Feed v = 2.0 mm/s, NOT 25. Seed: one 30 mm radial scratch at theta = 0, r = 100 -> 130, then release. Stop when mean lambda >= 0.476 mm/mm^2, or when no probe is allowed for 2000 consecutive steps, or at 24 h. Expected: 57 m of new groove, ~142 m of travel including invisible retrace, ~20 h, 2.9% true areal coverage.\n\nWHAT IS DELETED FROM v1-v5: the predictor, the online learning, the error, GAIN_SURPRISE = 0.95, GAIN_GRADIENT = 0.052, LEARN_RATE = 0.055, TURN_CLAMP = 0.30 (replaced by 0.0125, twenty-four times tighter), SENSE_MM = 2.5, LOOKAHEAD_MM = 7.0, and the binary occupancy grid. There is no prediction anywhere in this rule and nothing is learned.",
  "why_it_cannot_saturate": "Five things, in order of importance, and the fifth is the real one.\n\n1. THE ACCUMULATOR IS NOT OCCUPANCY. It is lambda, groove length per unit area, in mm/mm^2. Occupancy has a ceiling of 1. lambda has a ceiling at the merge horizon 1/w = 1/0.0618 = 16.18 mm/mm^2 — 260 times the dynamic range, and readable at the tip as a crossing rate (Cauchy: nu = (2/pi)*lambda isotropic, nu = lambda*|sin(delta)| against a bundle, so 8 crossings/mm across a bundle versus ~0 along it — a contrast that IS the local texture).\n\n2. THE READ IS A RATIO, SO MULTIPLICATIVE GROWTH CANCELS. M has I in its denominator. Under lambda -> c*lambda everywhere, both A and I scale and M is invariant up to eps. Subtracting a zero-mean kernel would not do this: a DoG of a BOUNDED field goes to zero exactly as the field fills. Dividing does. This is Weber/Naka-Rushton arithmetic doing what evaporation does physically, without erasing anything.\n\n3. THE ACTIVATION IS CLIPPED, THE INHIBITION IS NOT. A' = min(A, 0.35) = \"one groove within 1.2 mm is enough; more adds nothing.\" I is unclipped. So a vein flips sign as it fills: a single groove reads M = +1.05, a full 8 mm/mm^2 vein reads M = -0.54, and the tool is expelled to the gap. This is the substitute for pruning — selection by inattention, not by erasure — and it is what makes the pattern advance instead of deepen.\n\n4. THE HARD EXCLUSION lambda >= lambda_stop = 8.0 (exactly half the merge horizon) guarantees no vein ever merges into a matte band, so the crossing-rate sensor stays countable inside veins for the whole run.\n\n5. THE RUN HAS A BUDGET AND IT ENDS. This is the actual answer, and it reframes the question. v1-v5 put 7200 m of groove on this disc. The annulus is pi*(195^2 - 5^2) = 119,381 mm^2, so that is a plate-mean lambda of 60.3 mm/mm^2 — 3.73 TIMES PAST THE MERGE HORIZON. Mean groove spacing 16.6 um against a 61.8 um groove: the metal was overlapped nearly four-fold on average. They were not reading a permanent medium that had run out of news; they were reading a uniformly ploughed matte field, and they had been for most of the run. (The 8 h flat plate is the other half of the arithmetic: 720 m on A3 gives lambda = 5.8, true Boolean coverage 1 - exp(-lambda*w) = 30.0%, while the machine reported 82% through a 5 mm box and called it a plateau. The saturation was in the measurement first and in the metal later.) This design cuts 57 m, not 7200 m, and buys the hours by dropping the feed from 25 mm/s to 2.0 mm/s — which also moves the crossing transient from 2.5 ms to 31 ms (32 Hz, comfortably sensable) and pushes any chatter artefact to v/f = 25 um, 336 times below the pattern pitch.\n\nAND THE HONEST PART. At 90% marked the difference DOES go to zero, and so does every other conceivable reading. 90% areal coverage means lambda >= 37 mm/mm^2, 2.3x merged; the grooves are one surface, the crossing rate is uncountable, A is clipped, I >> I_tol everywhere and M -> -gamma = -3 uniformly. Nothing keeps it alive there. So the design does not answer \"how do I stay informative at 90%\" — it refuses to go there. Target end state: 2.9% true areal coverage, lambda_bar = 0.476, and a field whose informative band (I within a factor of a few of I_tol = 0.10) coincides exactly with the remaining gaps, which is where all the remaining decisions are. The medium cannot forget, so the rule must not overwrite it. Permanence was never the problem. Volume was.",
  "predicted_macro_pattern": "A reticulate network of bright veins, each ~0.5 mm wide and made of about four near-parallel grooves at 0.125 mm internal spacing (lambda_stop = 8 mm/mm^2, deliberately half the merge density so the vein stays optically resolved as lines, not as a matte band), at a centre-to-centre pitch of 8.4 mm, on a 400 mm mirror disc that is 97.1% untouched. In the light this reads as a fine bright mesh floating on a black mirror, not as a scribble and not as a burned ring.\n\nSpecific, checkable expectations:\n- Junctions predominantly 3-valent, because the hard exclusion forbids following a full vein while thin veins remain attractive: growth arrives at an existing thin vein and joins it as a T. Junction-angle histogram peaked in 110-130 deg. Mean vertex degree near 3, not 4 (4 is what a non-lifting tool produces by accident) and not 2 (2 is the closed orbit).\n- Closed loops with a real cell size: loop-area distribution unimodal near p^2 = 70 mm^2, CV 0.3-0.6. A power law with no peak means the anisotropy/persistence term failed and this is DLA-class scale-free branching (D ~ 1.71): structure without spacing.\n- Nearest-neighbour spacing along radial and tangential transects: unimodal, CV 0.2-0.4, regularity index (mean/SD) above 3. Poisson gives ~1.9 and CV ~1.\n- Exactly TWO thickness levels, thin (lambda ~ 2) and full (lambda = 8). Say this plainly: lambda_stop is a single cap, so there is no continuous vein hierarchy. Physarum's pruned elegance does not transfer, because a stroke on permanent metal can add a vein and never remove one.\n- Genuinely emergent and already measurable with existing code: the veins should run preferentially RADIALLY at the rim and isotropically near the centre, because the rotary quantum is 0.383 mm at the rim and 0.020 mm at r = 10 while the radial screw is exact everywhere. So the nematic radial-order parameter from groove_field.py should be positive and rising with r, with the crossover near r_fine = groove/d_theta. Nothing in the rule mentions radius, orientation, or the rim. That anisotropy inherited from the body — not the spacing — is the strongest emergence claim available here.\n- Live process, not a finished picture: tip-split events (all three probes below -0.4) should occur at a steady non-decaying rate until the budget is spent, and the recurrence-time distribution (time since the tool was last within p/4 of the current point) should be broad and heavy-tailed, CV > 1. v5's radius locked to 177.4 +/- 2.9 mm for 64 h would show here as a delta function within the first hour.",
  "predicted_length_scale": "8.4 mm.\n\nWhere it comes from. A full vein of width b = 0.5 mm at lambda_stop = 8 mm/mm^2 contributes, at distance d, an inhibition read I(d) = lambda_stop * b / (sqrt(2 pi) * sigma_i) * exp(-d^2 / 2 sigma_i^2). At sigma_i = 6.0 mm the prefactor is I_vein = 4/15.04 = 0.266 mm/mm^2. The rectifier switches the inhibition off at I_tol, so the exclusion radius around a full vein is the d at which I(d) = I_tol:\n\n    p = sigma_i * sqrt( 2 ln( I_vein / I_tol ) )\n\nI_tol is defined as a FRACTION of the vein's own contribution, I_tol = rho * I_vein with rho = 0.375 (= 0.0997, so 0.100 mm/mm^2 as an absolute number at sigma_i = 6). That makes the whole expression scale-free:\n\n    p = sigma_i * sqrt( 2 ln(1/rho) ) = sigma_i * sqrt(2 * 0.9808) = 1.4006 * sigma_i = 8.40 mm.\n\nThree properties worth stating. (i) The pitch is LINEAR in sigma_i by construction: 4.20 / 8.40 / 16.81 mm at sigma_i = 3 / 6 / 12 mm. (ii) It depends on the threshold only as sqrt(log), so halving rho to 0.1875 moves it only to 1.83 sigma_i (+31%) — the pitch is robust to the one soft constant. (iii) It agrees with two independent routes: the pure difference-of-Gaussians dispersion peak for these radii, lambda = 2 pi / k_max with k_max^2 = 2 ln(sigma_i^2/sigma_a^2)/(sigma_i^2 - sigma_a^2), gives 14.6 mm; Jones' empirical mesh pitch of 2-3 x SO with SO -> sigma_i gives 12-18 mm. The walker rule lands below both because a walker must be attracted to something to be there at all, which is precisely why the field-theory dispersion relation does NOT transfer intact to a single pen sampling a 2-D field along a 1-D curve.\n\nConsistency of the whole budget at p = 8.4 mm: lambda_bar = lambda_stop * b / p = 0.476 mm/mm^2; new groove = 0.476 * 119,381 = 56.8 m; travel with a 2.5x retrace allowance = 142 m; at v = 2.0 mm/s that is 19.7 h and 284,000 steps at 4 Hz; true areal coverage = 1 - exp(-0.476 * 0.0618) = 2.9%. Also required for the mechanism: L_p / p = 40 / 8.4 = 4.8, i.e. the tool must travel ballistically across several pitches between decisions. If L_p were of order p the long-range term could not act and the spacing would collapse onto sigma_a.",
  "scale_separation": "Report the bare numbers, and be clear which denominator is honest.\n\nPHYSICAL SENSING APERTURE. The tip senses one thing: a groove crossing, a transient whose spatial extent is the groove width w = 61.8 um, plus a trailing 3 mm window used only to estimate the lay axis. So:\n  p / w                    = 8.40 / 0.0618  = 136\n  p / (3 mm lay window)    = 2.8\n  p / DS (step)            = 8.40 / 0.5     = 16.8   (bar was >= 15)\n  p / sigma_a              = 8.40 / 1.2     = 7.0\n  p / rim tangential quantum = 8.40 / 0.383 = 21.9\n  L_p / p                  = 40 / 8.4       = 4.8\nFor comparison, v1-v5 read occupancy through a 5 mm box against a 61.8 um mark: a ratio of 81:1 in the WRONG direction, a low-pass filter whose cutoff deleted every structure at the only scale where structure existed.\n\nWHY IT EXCEEDS 1, stated as a mechanism and not as a ratio. The tool travels 40 mm between turns and lays 0.5 mm of groove per decision, but the decision is made against an average of readings taken over 6 mm of surface the tool physically visited minutes to hours earlier. The pattern scale is the distance at which that accumulated average falls below a threshold — a distance the tip never senses in one act, only reconstructs from having been there.\n\nTHE NUMBER A CRITIC WILL ATTACK, given first. p / sigma_i = 1.40, exactly, by construction. sigma_i = 6.0 mm is not a sensing radius — it is a kernel over previously MEASURED points, so quoting it as the sensor scale would be wrong — but it is a length written into the rule, and the pitch is 1.40 times it. So the spacing of this pattern is very probably IMPORTED, not emergent, and the whole emergence claim has to rest on topology (3-valent junctions, loop-area distribution with a peak, the radial nematic order inherited from the rim quantisation) rather than on the pitch. Anyone who claims otherwise before running the sigma_i sweep below is fooling themselves.",
  "null_model": "TWO nulls, each removing exactly one ingredient, and neither may produce the pattern.\n\nNULL 1 (the load-bearing one) — gamma = 0. Delete the long-range inhibition; keep everything else identical: same lambda accumulator, same sigma_a = 1.2 mm activation, same A_cap = 0.35, same hard exclusion at lambda_stop, same kappa_max = 0.025 rad/mm, same noise, same feed, same budget. Merit becomes M = A'/(I + eps), which is monotone in the short read alone.\nPREDICTION: no characteristic pitch. The tool finds thin groove, thickens it to lambda_stop, is excluded, and then faces a merit that is flat (M = 0 on virgin metal, positive only within ~2 mm of thin groove); it performs a persistent random walk of L_p = 40 mm until it stumbles on thin groove again. Output: a Poisson line process. Radially averaged S(k) monotone decreasing with power piling at k -> 0, no finite-k peak; g(r) with no first maximum; nearest-neighbour spacing CV ~ 1 and regularity index ~ 1.9; clumping, because with gamma = 0 nothing forbids two veins 1 mm apart. If NULL 1 produces a peaked S(k) at ~8 mm, the mechanism claimed here is not the mechanism operating, and the proposal is wrong about itself.\n\nNULL 2 (the diagnosis of v1-v5, run as a control) — keep gamma = 3.0, keep both radii, keep the divisive denominator, but compute A and I from BINARY OCCUPANCY instead of lambda.\nPREDICTION: A saturates at 1 within ~2 h and I within ~6 h; M -> [min(1, 0.35) - 3(1 - 0.1)]/(1 + 0.25) = -1.88 uniformly; all three probes tie; the argmax is degenerate, the tool goes straight until the edge spring bends it, and it closes an orbit. That is v1-v5 reproduced from the sensor side, and it is the point: the fix is not the kernel and not the sign structure, it is what quantity gets written and read. A zero-mean or divisively-normalised read of a BOUNDED field dies exactly as fast as a plain read of it.\n\nA third control worth the compute, because it is the one that would embarrass the piece: gamma = 3.0, lambda accumulator, but the accumulator fed from the COMMAND LOG instead of the force and crossing sensors. If that run is statistically indistinguishable from the real one, then the metal carried nothing and this is a robot with a map, not stigmergy.",
  "falsifying_measurement": "PRIMARY, and it can be run offline in an afternoon before any metal is touched: the sigma_i scaling sweep. Three runs at sigma_i = 3, 6, 12 mm, everything else fixed (sigma_a = 1.2, A_cap, lambda_stop, rho, kappa_max, DS, v, noise seed set). Measure the pitch two ways — the first peak of the radially averaged power spectrum of the cut field, and the first maximum of the segment pair-correlation g(r) from many radial and tangential transects — and fit d(log p)/d(log sigma_i).\n  Predicted by the rule: 4.20 / 8.40 / 16.81 mm, slope 1.00.\n  KILL (i): no resolvable peak at any sigma_i, or fewer than 5 Fourier modes above 10% of the peak. Then there is no length scale at all and the rule has failed outright.\n  KILL (ii): the pitch tracks DS or the probe offset instead of sigma_i. Sweep DS = 0.25 / 0.5 / 1.0 mm and the probe offset = 0.75 / 1.5 / 3.0 mm at fixed sigma_i; p must be FLAT in both. If p scales with DS, this is a drawing machine with a fixed stride, not a rule that contains a length it was not given.\n  VERDICT if slope = 1.00 +/- 0.10 and p = 1.40 sigma_i within 15%: the pattern's spacing is the kernel restated. That does not kill the piece, but it kills any claim that the LENGTH SCALE is emergent, and the honest description becomes \"an imported wavelength carrying an emergent topology.\" Only a measured departure — a saturating p, or a slope near 0.5 (geometric-mean selection between sigma_i and L_p, which would predict sqrt(8.4 * 40) = 18 mm), or a p that moves with kappa_max — would be evidence that a nonlinear selection is doing work the rule does not contain. Sweep L_p = 10 / 40 / 160 mm to check exactly that.\n\nTHREE MORE HARD GATES, each of which alone kills the run, and all three logged hourly so a sixth collapse is detected within the hour rather than at hour eighty:\n  KILL (iii) contrast collapse. Median M over allowed cells must not fall to within 0.05 of -gamma = -3 before lambda_bar reaches 0.30 mm/mm^2. Equivalently, fit the plate-wide Weber contrast |A'/(I+eps) - 1| against path length: an exponent near -0.5 means deposition is not multiplicative and the run will fade on schedule; flat within a factor of 2 over the last 60% is the pass condition.\n  KILL (iv) the naive-reader test, which is the operational test of the stigmergy claim. Hand the finished plate to a second machine with no memory, let it remap lambda from crossing rate and force alone, and correlate its map with the first machine's lam_i. Require Pearson r > 0.6 over the annulus (target > 0.8). Below that, the information was in the log, not the metal, and \"the collective is its own past selves\" is decoration.\n  KILL (v) merge and lock. Report a map of lambda against the merge horizon 16.18 mm/mm^2 with the fraction of the plate past lambda_stop, plus the two numbers that would have flagged both prior collapses: the entropy of the visited-radius histogram against uniform-in-area, and the maximum fraction of path length inside any 10 mm annulus (v4: 69% in one ring; v5: radius 177.4 +/- 2.9 mm for 64 h). Also log every capture event and the path length before escape — a heavy tail there is a HARDWARE closed orbit (the tip refusing to leave a 15.9 um groove) and would produce the old failure with no failure of the rule.\n\nDEMOTED, explicitly: prediction error and straight fraction. Every previous version reported falling error (1/34, 1/73, 1/195) and rising straight fraction (93%) while dying, and v5 reported flat error at 0.12 while its radius locked for 64 hours. Both metrics are compatible with total collapse. This rule has no predictor, so it cannot report them at all, which is a feature.",
  "collective_intelligence_claim": "Precisely this, and no more.\n\nThe metal is a genuine communication channel between the machine's past and present selves, with a capacity that is measurable and non-zero, IF AND ONLY IF the reading differs from the command. Two things guarantee that here: (a) F_t discriminates cut from ride, so the accumulator increments only on cuts that actually landed, and about a fifth of the commanded shape never reaches the metal because of the rotary quantum (0.383 mm at the rim, 0.020 mm at r = 10); (b) delta_s_q, the delivered-minus-commanded arc, is structured by radius, unbounded, and present in no log. So the field the present self steers by is not a replay of its own instructions — it is a measurement of what the metal accepted.\n\nThe sign of the interaction decides whether the reframing is mechanism or sentence. This is the sharpest thing to take from the four investigations, and it cuts both ways:\n- THE REPULSIVE CHANNEL IS REAL STIGMERGY. A mark's value as an obstacle does not depend on its age: geometric information, not dynamic. The long-range term needs no simultaneity, so a pen can push against something it cut an hour ago exactly as well as against something it cut a second ago. This is dendrite/axon self-avoidance and tiling, where the spacing signal is contact-based and never expires. It is the whole reason permanence stops being a defect here.\n- THE ATTRACTIVE CHANNEL IS ONLY BOOKKEEPING, unless it is clipped. Follow-the-deepest-trail on a medium that never forgets is a hysteresis ratchet, and it is exactly the closed orbit found five times. A' = min(A, 0.35) plus the hard exclusion at lambda_stop is what converts attraction from a ratchet into a joining rule: come close enough to make a junction, then be forbidden to ride.\n\nWhat this does NOT claim. Jones' network is a crowd phenomenon whose cohesion comes from simultaneity — small loops contract while large ones sprout because two flows push on each other within one relaxation time. A single pen has no lateral competition and cannot contract a loop, so the network here accretes and is masked; it is never pruned. Tero's flux reinforcement is unavailable outright: it needs conserved flow with back-pressure through a graph, and one pen carries unit flux through exactly one place at a time. The conserved budget that replaces evaporation is the honest one and it is already true of the machine: ONE STROKE OF FINITE LENGTH, 57 m of groove before the disc is spent. Path length spent here is path length not spent there.\n\nAnd the eight-machine result is the other half of the argument, not a contradiction of it: real simultaneity with identical rules and no mutual sensing also produced no territories (-0.0019/+0.0001/+0.0018, sign unsettled). Neither number nor time was the axis. The axis is the SIGN of the interaction and the ORDER of the quantity sensed — a signed, rectified long-range term on an unbounded length density, instead of an unsigned short-range term on a saturated occupancy bit.",
  "risks": [
   "THE SPACING IS PROBABLY IMPORTED. p = 1.4006 * sigma_i exactly, by construction. The sigma_i sweep will most likely return slope 1.00, in which case the pattern's wavelength is a bandpass filter printed on a disc and the only defensible emergence claims are topological (3-valent junctions, peaked loop-area distribution, the radial nematic order inherited from the rim quantum). Decide in advance that this is an acceptable outcome, or do not run it.",
   "LAMELLAR, NOT RETICULATE. kappa_max = 0.025 rad/mm suppresses tip splitting, which is exactly what prevents scale-free DLA seaweed — and may equally prevent branching. The likely failure is a labyrinth of parallel corridors at 8.4 mm pitch: beautiful, a lamellar phase, and not a network. The tip-split override (all three M < -0.4 permits kappa_split = 0.15 rad/mm for 24 steps) is the hedge; if split events per hour trend to zero, the outcome is stripes and should be reported as stripes.",
   "GROOVE CAPTURE AS A HARDWARE CLOSED ORBIT. A diamond tip re-entering a 15.9 um groove with 30 deg walls (aspect 3.89) is mechanically railed by it. This is useful (free accurate retrace) and it is the one mechanism that could reproduce the v1-v5 failure with no failure of the rule at all. Measure the lateral force needed to exit on a coupon and require the radial rail to exceed it by 3x. Also characterise the critical crossing angle below which the tip deflects, and forbid crossings below it.",
   "CROSSING DETECTION MAY NOT WORK. Everything rests on counting 31 ms drop-and-climb transients. That band also contains disc runout and thermal drift on a 400 mm plate, so the channel must be AC-coupled above ~5 Hz and calibrated on a coupon against a known cross-hatch before anything else is believed. If n_c cannot be counted reliably, the accumulator collapses back to something occupancy-like and the whole design fails at the first ingredient.",
   "THE SIGN OF THE FRICTION ANISOTROPY IS REGIME-DEPENDENT. The literature has narrow grooves under light load giving HIGHER friction parallel to the lay. phi_lay could come out rotated 90 deg. Calibrate on the real machine; do not assume. The Cauchy inversion lambda = nu/|sin(delta)| also blows up along the lay — the 0.15 floor is a patch, and the map fallback must be exercised.",
   "20 HOURS IS NOT 80. The metal budget, not the clock, sets the length: 57 m of new groove is what a 400 mm disc can hold at a resolvable line density. If 80 hours is required, the answers are a finer tip (6 um raises the merge horizon tenfold) or a bigger disc — not more hours. Running longer is what killed v1-v5, and the arithmetic (60.3 mm/mm^2, 3.73x past merge) says so quantitatively.",
   "NO VEIN HIERARCHY. lambda_stop is a single cap, so there are exactly two thickness levels. Physarum's pruned, hierarchical elegance will not appear, because a single stroke on permanent metal can add a vein and never remove one. Say this in the wall text rather than letting a viewer infer otherwise.",
   "THE MAP IS INTERNAL. A' and I are read from two float32 arrays, not from the metal at 6 mm. That is legal (they are averages of physical measurements taken while present) but it is exactly where a critic will say the metal is decoration. KILL (iv), the naive-reader correlation, is the only thing that settles it, and it must be run on the finished plate, not argued about.",
   "EPS SETS THE VIRGIN-METAL MERIT. With eps = 0.25 mm/mm^2, M = 0 on untouched metal, which is what makes the void navigable rather than a flat -1 plateau. It is also a tuning constant that quietly decides whether the tool prefers open metal or gaps between veins. Sweep it (0.1 / 0.25 / 0.6) and report the retrace fraction and the frontier-growth localisation; if the outcome is sensitive to eps, the ordering of merits is fragile and the mechanism story is weaker than it looks.",
   "CHATTER IS ONLY HARMLESS AT 2 mm/s. The drag holder's flexure resonance gives free periodic structure at v/f: 25 um at 2 mm/s and 80 Hz (336x below the pitch, ignorable), but 0.31 mm at 25 mm/s, which would contaminate the lay reading directly. Measure f, report v/f alongside the pitch, and subtract it before claiming anything. This is the confound most likely to produce a convincing false positive."
  ],
  "implementation_notes": "DO IT IN SIMULATION FIRST — the whole sweep is an afternoon of compute, and every prior version's failure was visible in hour one of a curve nobody was plotting.\n\nNew file: {repo_path}/emergence/lali.py\n\nImport from {repo_path}/only-surprise/engine/scribe.py ONLY the physical constants GROOVE and SCRIBE_MM_S (and override the latter to 2.0). Do NOT import GAIN_SURPRISE, GAIN_GRADIENT, GAIN_EDGE, LEARN_RATE or TURN_CLAMP — there is no predictor in this rule, and importing the old gains is how the two runs would silently stop being comparable in the wrong direction. Note that scribe.py's GROOVE = 0.10 mm is the stale figure; the real width from {repo_path}/only-surprise/engine/stylus.py (120 deg cone, 12.5 um apex, 300 gf on 200 HV 304) is 61.8 um wide and 15.907 um deep. Use 0.0618. Every quantity in this proposal — the merge horizon 16.18, lambda_stop = 8.0, the 2.9% coverage — depends on that number, so put it in one place and derive the rest.\n\nReuse from {repo_path}/only-surprise/engine/polar.py: DISC_R = 200.0, R_MIN = 5.0, R_MAX = 195.0, D_THETA = 2*pi/3200, D_RADIUS = 0.001, and the quantisation in the step function. KEEP the quantisation — it is the one thing that bought a factor of ten, and it is where delta_s_q comes from. DELETE SENSE_MM = 2.5, LOOKAHEAD_MM = 7.0 and PROBE_SPREAD, and replace the bytearray occupancy grid (Disc.g) with two numpy float32 maps: lam_a at 0.5 mm (800x800, 2.56 MB) and lam_i at 3.0 mm (134x134, 72 kB), both accumulating measured groove length divided by cell area.\n\nPromote {repo_path}/only-surprise/engine/groove_field.py from analysis to SENSOR MODEL. It already builds length-per-cell-per-direction (band_cos2, band_sin2, radial_order, alignment_strength) — which is exactly lambda and phi_lay and S. In simulation, synthesise the sensor from it: nu = lambda * |sin(psi - phi_lay)| with 10% multiplicative noise and Poisson counting on n_c; simulate the cut/ride discriminant by checking whether the target cell already exceeds lambda_stop; simulate delta_s_q by rounding the commanded theta to D_THETA. That gives an honest closed loop with no clairvoyance.\n\nKernels: precompute the two truncated Gaussian stencils once (15x15 on lam_a at 3 sigma_a = 3.6 mm; 13x13 on lam_i at 3 sigma_i = 18 mm on 3 mm cells). Three probe evaluations per step is ~1400 taps; 284,000 steps is a few seconds of numpy per run, so the 12-run sweep (sigma_i in {3,6,12} x L_p in {10,40,160}, plus the two nulls and the log-fed control) is comfortably one sitting.\n\nInstrument from step one, not at hour eighty. Log hourly: radially averaged S(k) with the participation ratio and the count of modes above 10% of peak; g(r) from radial and tangential transects with its first peak and CV; median and IQR of M over allowed cells; lambda_bar against the merge horizon as a map with the fraction past lambda_stop; visited-radius histogram entropy against uniform-in-area; max fraction of path in any 10 mm annulus; capture events with path-length-to-escape; tip-split events per hour; retrace fraction; and the recurrence-time CV. Set the gates as HARD STOPS in code, not as post-mortem statistics: abort on median M within 0.05 of -3.0, on any 10 mm annulus exceeding 25% of path, on the participation ratio dropping below 5, or on the visited-radius entropy falling below 0.8 of uniform.\n\nThen skeletonise the stroke for topology: branch points per cm^2, mean vertex degree (target ~3), junction-angle histogram, loop count and enclosed-area distribution. These are where the emergence claim actually lives once the sigma_i sweep has probably shown the pitch to be imported.\n\nBench work before metal, on a coupon of the same 304: (1) calibrate the crossing transient amplitude and the AC coupling corner; (2) measure the tangential force for ploughing virgin metal versus riding an existing groove and set the 0.55 N threshold from the measurement, not from 0.71/0.44; (3) measure the lateral force to exit a 15.9 um groove and the critical crossing angle for deflection; (4) measure the drag holder's flexure resonance f and confirm v/f at 2 mm/s is far below 8.4 mm; (5) verify the sign of the along/across friction difference so phi_lay is not rotated 90 deg.\n\nOrder of work: sensor model and maps, then the two nulls, then the sigma_i sweep, then the L_p and DS sweeps, then the coupon bench, then one 20 h run on the disc. Commit after each, per the project's own discipline."
 },
 {
  "name": "ANASTOMOSIS — 浅ければ合流し、深ければ渡る (merge if shallow, cross if steep)",
  "one_sentence": "The tip reads only the ANGLE at which it meets its own old grooves — merging with any it meets shallower than 18 degrees, crossing any it meets steeper, and changing vein at a remembered junction whenever riding stops cutting metal — so that the metal's message is a geometric relation between two past passes rather than an amount, and the piece becomes ten metres of groove drawn by seven thousand metres of travel.",
  "what_the_machine_reads": [
   "CROSSING ANGLE chi_k of each groove edge met, one event at a time. A groove is w = 61.8 um wide; crossing it at angle chi at v = 25 mm/s gives a drop-and-climb force transient of duration tau_k = w/(v*|sin chi_k|) — 2.47 ms at 90 deg, 8.0 ms at 18 deg, 28 ms at 5 deg. The duration IS the angle. Read on a strain-gauge flexure plus accelerometer at ~2 kHz. This is the whole rule's input and it is a JOINT property of two independent past traversals, not of either one.",
   "SIGN and AXIS psi_k of that groove, from the tangential-force anisotropy at the moment of the transient (textured surfaces have a friction tensor with two principal coefficients; an untextured floor does not). Gives which way to turn to merge. Sign convention must be calibrated on the machine — the literature disagrees on whether along-groove friction is higher or lower under light load.",
   "VIRGIN-CUT INDICATOR, from tangential-force magnitude. Ploughing virgin metal costs H*A = 0.707 N; riding an existing groove at mu = 0.15 under 2.942 N normal load costs ~0.44 N. A 2.6:1 contrast, easily above noise. This is what tells the machine that riding is fruitless — and it is the machine noticing it is doing no work, which needs no memory at all.",
   "CAPTURE STATE, from lateral force on the radial rail. Groove walls sit 30 deg from the surface plane with aspect w/d = 3.89; below a critical crossing angle the tip is mechanically captured and steered. The machine does not decide to follow a groove; it discovers that it is being followed.",
   "CROSSING RATE nu per mm of travel over the last 1.5 mm, which gives groove LENGTH density lambda = (pi/2)*nu for isotropic grooves. Used only as a health and progress gauge, never to steer: it is the one unbounded accumulator on the plate (ceiling 1/w = 16.2 mm/mm^2, which this design never approaches), and it replaces 'coverage' as the honest progress metric."
  ],
  "the_rule": "CONSTANTS. DS = 0.6 mm per step. v = 25 mm/s. chi_c = 18 deg (capture threshold, HARDWARE — measure it on a coupon, see implementation notes; nominal 18 +/- 5). W_s = 20 mm of PATH (junction memory window). l_r = 20 mm of PATH (satiation window). f_leave = 0.08. R_min = 50 mm, so the turn cap is DS/R_min = 0.012 rad/step. delta_exit = 3 deg. An event is admitted only if the groove it came from has a local axial resultant above 0.5 (i.e. it is a groove, not felt).\n\nSTATE. A FIFO of crossing events (|chi_k|, psi_k, sign_k) covering the last W_s of path — nothing else is remembered. A scalar satiation v_hat, exponentially averaged over l_r: v_hat <- (1 - DS/l_r)*v_hat + (DS/l_r)*[this step cut virgin metal].\n\nPER STEP, in order:\n1. UPDATE. Push this step's crossing events; drop events older than W_s of path. Update v_hat. Let chi_min = min |chi_k| in the FIFO, with its psi and sign; let n_j = the number of remembered events with |chi_k| >= chi_c (\"available switches\").\n2. MERGE (shallow -> follow). If chi_min < chi_c: command turn = -sign*chi_min, bringing the heading onto psi. Set riding = true. This term is not a preference — below chi_c the groove wall wins anyway, and the rule simply stops fighting it. It may exceed the turn cap, because the groove supplies the lateral force.\n3. CROSS (steep -> ignore). Events with |chi_k| >= chi_c contribute exactly zero to the turn. This is the anastomosis half: steep meetings become 4-valent crossings and nothing else happens.\n4. SWITCH (satiated -> change vein at a remembered junction). If riding and v_hat < f_leave and n_j > 0: take the remembered event with the LARGEST |chi_k| and command the turn onto its axis. This is the only way to leave a vein WITHOUT entering virgin metal. It is the term that arrests the pattern, and it is why W_s sets the scale.\n5. PEEL (satiated, nothing to switch to). If riding and v_hat < f_leave and n_j = 0: leave at chi_c + delta_exit = 21 deg from psi, sign toward the lower recent crossing rate. Set riding = false. THIS IS THE ONLY TERM THAT DELIBERATELY CUTS NEW METAL, and its firing rate is the pattern's growth rate.\n6. ELSE go straight: turn = 0, plus a small dither of 0.3*(DS/R_min)*U(-0.5,0.5) purely to break symmetry. Clamp |turn| <= DS/R_min everywhere except steps 2 and 4.\n\nNO occupancy anywhere. No box means anywhere. No lookahead — the previous versions' 7 mm probe reads metal the tip cannot touch and is forbidden by the machine's own constraint. Every quantity above is a min-statistic or an instantaneous force, not an average over an area, and that is deliberate: averaging over a box is what killed v1-v5.",
  "why_it_cannot_saturate": "Three separate reasons, of decreasing strength.\n\n(1) THE READING IS AN ANGLE, AND ANGLES DO NOT ACCUMULATE. Occupancy is a bounded count: once a neighbourhood is marked it reads 1 and the channel has zero capacity. chi_k is a relation between the tip's present heading and one groove's direction. It exists at 0.1% coverage and at 100% coverage identically, and it is bounded on a compact interval with no absorbing state. v1 measured this by accident: on the 80-hour disc the 100%-cut outer ring had occupancy pinned at 1 and an axial order parameter of -0.918.\n\n(2) THE DECISIVE STATISTIC IS A MINIMUM, NOT A MEAN. Nematic order S = |<exp(2 i theta)>| is a mean and it DOES have an absorbing state, at S = 0 (isotropic felt) — and worse, a clean square mesh has S = 0 exactly, by symmetry, so S is the wrong order parameter for the pattern this rule is trying to make. min|chi_k| over a memory window has no such degeneracy: it is an extreme-value statistic over individual events, and a felt gives it a well-defined shrinking value rather than a dead one.\n\n(3) THE ACCUMULATOR THAT IS USED FOR GAUGING HAS 160x HEADROOM. Groove length density lambda has a real ceiling at merge, 1/w = 16.2 mm/mm^2. The pattern this design targets sits at lambda* = pi/(2*20 mm) = 0.0785 mm/mm^2 — a factor of 206 below the horizon. Nothing in this run gets near saturating anything.\n\nWHAT IS HONESTLY STILL AT RISK. min|chi_k| drifts toward zero as density grows, so P(chi_min < chi_c) -> 1 and eventually the tip is always merging: permanent capture, the sixth closed orbit, arriving through the hardware rather than the rule. That is what SWITCH and PEEL are for and it is the failure mode to instrument, not one I can argue away.",
  "predicted_macro_pattern": "WHAT I RAN. I built the rule in a throwaway prototype (400 mm disc, CELL = 0.25 mm, event-based crossing detection, 400k steps = 240 m of path, five configurations) before writing this. Measured, and these numbers are the honest basis of everything below:\n\n  configuration        pass Gini   max passes   new-cut arrest   free-gap pitch   gap CV\n  rule as stated         0.46         101           x3.3            2.35 mm        4.6\n  shuffled chi (null)    0.33          23           x1.7            2.00 mm        1.6\n  no SWITCH term         0.46          68           x3.1            2.00 mm        4.6\n  force window x4        0.36          28           x3.1            2.45 mm        8.5\n  force window /2        0.52         102           x3.5            2.45 mm        6.3\n  R_min 12.5 / 50 / 100  0.47/0.46/0.46             x2.2/3.3/3.3    2.45/2.35/2.00\n\nPREDICTED, AND SUPPORTED BY THAT DATA:\n- A TRAFFIC HIERARCHY, not a depth hierarchy. Pass counts concentrate hard (Gini 0.46-0.52, max/mean passes ~100) while the metal stays 61.8 um wide and 15.907 um deep everywhere, because pass two removes nothing. The hierarchy is visible anyway: a vein ridden 100 times has a re-smeared, work-hardened floor (450 HV, ~3-pass time constant) whose roughness anisotropy differs from a once-cut line, and this project's own optics work already shows that floor anisotropy is what the disc projects. THE VEINS ARE OPTICAL, NOT GEOMETRIC. That is a real and I think good result for the piece.\n- A HARD GAP IN THE JUNCTION-ANGLE HISTOGRAM below chi_c = 18 deg, with 4-valent crossings dominating and no 3-valent branch points. This is the rule's fingerprint left in the metal and it is checkable on the finished plate by anyone, with no log.\n- NON-ZERO, STABLE LOOP DENSITY. Merges close loops; nothing can ever prune them.\n- ARREST OF NEW CUTTING while travel continues: the new-cut rate falls x3.3 over 240 m in the prototype and should fall by >30x over the full run, i.e. the plate stops changing long before the machine stops moving.\n\nPREDICTED AND NOT SUPPORTED — SAY THIS FIRST WHEN PRESENTING IT. The prototype does NOT produce a characteristic cell size. Free-gap CV is 3-13, i.e. broad and scale-free, and the median gap pitch is pinned near 2.2 +/- 0.25 mm in EVERY configuration — flat in the force window over 8x, flat in R_min over 8x, flat in the ride length over 4x. The good half of that is that it is not the sensor's kernel width. The bad half is that nothing selects it: 2.2 mm is about 3.7 step lengths, i.e. the pattern's scale is currently the machine's stride. That is exactly the failure the reference material warns about, arriving from a new direction, and the SWITCH term as prototyped is not fixing it (removing SWITCH changed nothing measurable). The section below says what I think the missing piece is and how to tell.",
  "predicted_length_scale": "20 mm, as a PREDICTION THAT THE PROTOTYPE HAS NOT YET CONFIRMED. The reasoning, and why I still believe the number:\n\nThe spacing cannot be set by a sensing radius, because there is no lateral sensing radius: a stylus reads a 61.8 um contact patch and nothing else. So the only lengths available are longitudinal — path lengths and curvatures — and the spacing has to be manufactured from them. Two independent constructions give the same answer:\n\n(A) KINEMATIC BOUND. A new line survives as a distinct line only if the tip can travel its length without being captured. Travelling at angle chi to an existing vein at lateral distance d, the tip reaches the vein after d/sin(chi) of path. Turning from perpendicular down to the capture angle takes (pi/2 - chi_c) of heading change at curvature 1/R_min, i.e. R_min*(pi/2 - chi_c) = 50 * 1.2566 = 62.8 mm of path. So the lateral exclusion distance is\n    d = R_min * (pi/2 - chi_c) * sin(chi_c) = 62.8 * 0.309 = 19.4 mm.\nNote the shape of this: a curvature radius times two dimensionless angles produces a TRANSVERSE length from purely LONGITUDINAL ingredients. This is the same amplification the retinal-mosaic literature reports — 26-28 um spacing from a 20 nm contact interaction, because the excluding object is the dendritic territory, not the molecule.\n\n(B) ARREST BY JUNCTION AVAILABILITY. Once satiated, the tip leaves a vein via SWITCH if it remembers a junction, and only via PEEL — into virgin metal — if it does not. Junction spacing along a vein in an isotropic line field of density lambda is l_j = pi/(2*lambda). SWITCH is always available, so PEEL never fires and the plate stops growing, once l_j < W_s. That gives\n    s* = pi/(2*lambda*) = W_s = 20 mm.\n\nTwo unrelated constants, 19.4 and 20.0 mm. Consequences, all checkable: lambda* = 0.0785 mm/mm^2, so on a 400 mm disc (A = 125,664 mm^2) the finished piece is 9.9 METRES OF GROOVE, laid by 7200 m of travel — 99.86% retrace, and 206x below the groove-merge horizon.\n\nWHAT THE PROTOTYPE ACTUALLY MEASURED: 2.2 +/- 0.25 mm, CV 3-13, insensitive to R_min and to the ride length. The reason is diagnosable and it is the honest headline of this whole proposal: MERGE fires only on physical contact, so the exclusion range is the contact patch, not 19.4 mm, and the tip therefore cuts freely right up to a hair's breadth from an existing vein. Construction (A) silently assumed a lateral reach the machine does not have. Construction (B) is the one that can still deliver, because it needs no lateral reach — but only if W_s gates CUTTING rather than steering, which means PEEL must be genuinely rare, which the prototype's x3.3 arrest says it is not yet. The single change I would make before any metal: raise W_s from 1.5 mm to 20 mm of remembered junctions and require n_j = 0 for PEEL, then re-run the sweep in the next field.",
  "scale_separation": "Report all three ratios, because the answer depends on which \"sensing radius\" a critic means, and only the middle one is arguable.\n\n  pattern / contact patch      = 20 mm / 0.0618 mm = 324\n  pattern / force window       = 20 mm / 1.5 mm    = 13\n  pattern / step               = 20 mm / 0.6 mm    = 33\n\nWhy each exceeds 1, and where the argument is weak. The contact patch is the true sensing radius: a diamond point feels the metal it is touching, full stop, and 324 is therefore the physically correct separation. The 1.5 mm force window is the shortest path over which enough crossing transients accumulate to be counted, so it is the honest lower bound on the read; 13 clears the reference material's stated gate of 5.\n\nThe weak point, stated plainly. There is a fourth length in the rule — the junction memory W_s = 20 mm — and the predicted spacing EQUALS it. A critic is right to say that the spacing is then the filter's own length restated, and the fair answer is not to deny it but to point at the exponent: because the prediction is a MIN of two bounds, sweeping W_s from 5 to 80 mm must show the spacing rise with slope 1 and then FLATTEN near 19.4 mm where the kinematic bound takes over. Slope 1 throughout = imported, and the design has failed. Slope going to 0 = a nonlinear balance is selecting the scale, and something has genuinely emerged. That measurement is cheap, it takes hours not days, and it should be run before any metal is cut.\n\nAnd the deeper honesty, which the reference material names and I will not smuggle past: a bounded memory of felt junctions means the forgetting has moved out of the medium and into the machine's head. The metal still carries the message — the crossing angle is a joint property of two past passes and is not recoverable from any single log entry, and about a fifth of commanded geometry never reaches the metal on this polar machine, so the log is wrong about the plate — but the LENGTH is the machine's, not the metal's. This piece is stigmergic in its information and odometric in its scale.\n\nFor reference, v2's own testbed on this disc reported scale_separation 100 by measuring a correlation length of 120 mm against a 1.2 mm box. That number was meaningless: 120 mm is the plate. The three ratios above are the ones to defend.",
  "null_model": "PRIMARY NULL — SHUFFLED CROSSING ANGLE. Keep every term, every threshold, every gain, every constant. Change one thing: when a crossing event is pushed into the FIFO, replace the measured |chi_k| with a fresh draw from U(0, 90 deg). Every threshold then fires at the same average rate, satiation works identically, the turn magnitudes have the same distribution — only the CORRELATION BETWEEN THE TURN AND THE METAL is destroyed. This is the sharpest possible null because it isolates the information channel and nothing else. If the pattern survives it, the metal was decoration and this is a random walk with a nice story.\n\nMEASURED, in the 240 m prototype: it does not survive.\n  pass Gini        0.46  ->  0.33\n  max passes        101  ->   23\n  new-cut arrest   x3.3  ->  x1.7\n  gap-size CV       4.6  ->   1.6\n  MERGE events     1082  ->    ~0 (the tip never once finds a groove worth following)\nThat is a large, unambiguous separation on every axis, and it is the one result in this proposal that is already confirmed rather than predicted: the crossing angle in the metal does real work.\n\nSECONDARY NULL — REMOVE THE SWITCH TERM, so a satiated tip always peels into virgin metal instead of transferring at a remembered junction. Prediction: identical veins, but NO ARREST — the new-cut rate keeps up, the mesh refines without limit toward the groove-merge horizon at lambda = 16.2 mm/mm^2, and the piece ends as a matte plateau at about 21.5 hours instead of a network at 20 mm. MEASURED IN THE PROTOTYPE: no detectable difference (Gini 0.459 vs 0.470, arrest x3.1 vs x3.3, 203 switch events in 400,000 steps). That is a FAILED null and it is the clearest evidence that the SWITCH term as prototyped is not yet load-bearing — the memory window is 1.5 mm, so there is almost never a junction to switch to. It becomes a real null only at W_s = 20 mm, and if it stays a failed null after that change, the arrest mechanism does not exist and the design should be abandoned rather than cut.\n\nTHIRD NULL, for the record — remove the threshold itself (chi_c = 0, so nothing is ever shallow, everything is crossed). This reduces to a straight line with dither and is the trivial control.",
  "falsifying_measurement": "ONE MEASUREMENT, TWO EXPONENTS, RUN BEFORE ANY METAL IS CUT. Take the first peak of the segment pair-correlation function g(r) of the cut pattern as the spacing s (not a power-spectrum argmax — v2 already established that the spectrum of a filled scribble decays monotonically and its argmax always returns the plate size, which is how it reported 103.71 mm for every rule and every ablation). Then:\n\n  A. SWEEP THE JUNCTION MEMORY W_s over 5, 10, 20, 40, 80 mm, everything else fixed. Fit d(log s)/d(log W_s).\n     PASS: slope near 1 at small W_s, flattening to below 0.3 by 40-80 mm, with s saturating in the range 17-22 mm.\n     FAIL: slope stays at 1.0 across the whole sweep. The spacing is then simply the memory length restated, no selection is occurring, and the piece has no emergent scale.\n  B. SWEEP THE FORCE-INTEGRATION WINDOW over 0.75, 1.5, 3.0, 6.0 mm, everything else fixed. Fit d(log s)/d(log sigma).\n     PASS: |slope| < 0.15. ALREADY MEASURED IN THE PROTOTYPE: s = 2.45, 2.35, 2.45, 2.45 mm over an 8x sweep — slope 0.01. This gate is passed; the pattern is demonstrably not the sensor's kernel.\n\nThen three more, each capable of killing it on its own:\n  C. FREE-GAP AREA CV must fall below 0.8 (a genuine characteristic cell size gives 0.3-0.6; Poisson gives ~1; scale-free gives >>1). PROTOTYPE MEASURES 3.6-12.8. This gate is currently FAILED, it is the design's open problem, and it must be cleared in simulation before metal.\n  D. NEW-CUT RATE must fall by >30x from the first tenth of the path to the last (arrest). PROTOTYPE: x3.3 at 240 m. Currently failed.\n  E. JUNCTION-ANGLE HISTOGRAM must show a hard gap below chi_c = 18 deg on the finished plate, with 3-way nodes below 5% of all nodes. If shallow junctions are present, capture is not working and the metal is not being read.\n\nLIVE ABORT GATES, because the previous five versions were all diagnosed at hour 80 instead of hour 1:\n  - Turn-rate power spectrum, peak-to-broadband ratio. A locked orbit shows a sharp line plus harmonics hours before coverage flattens. Abort above 6:1.\n  - Radius histogram, entropy against uniform-in-area, and max fraction of path length in any 10 mm annulus. v4 put 69% of 7200 m into one 10 mm ring; v5 held 177.4 +/- 2.9 mm for 64 of 80 hours. Abort above 0.15 in any annulus.\n  - Groove-capture audit: log every entry into an existing groove and the path length before exit. A heavy tail here is the closed orbit arriving through the hardware, and it would explain a collapse with no failure of the rule at all.\n  - Report TRUE areal coverage 1 - exp(-lambda*w) beside any grid figure. v1's 8 h flat run laid 720 m over A3, i.e. lambda = 5.8 mm/mm^2 and true coverage 30.0%, and announced an 82% plateau. The saturation was in the measurement.",
  "collective_intelligence_claim": "There is one pen, so \"collective\" can only mean the machine's past selves communicating through the metal. The reframing is doing real work here in a way it was not in versions 1-5, and the difference is testable rather than rhetorical.\n\nIN v1-v5 IT WAS A NICE SENTENCE. Occupancy in a box is a quantity the machine could have computed from its own log without touching the plate. The metal was an output, the sensor read the machine's own memory with extra steps, and the channel's capacity went to zero within the first hour. Calling that stigmergy was decoration.\n\nWHAT IS DIFFERENT. The crossing angle chi is a RELATION BETWEEN TWO PASSES. It is not a property of the groove and not a property of the heading; it is the angle between them, and it exists only at the moment of meeting. A junction is authored by two past selves that never met each other and could not have known they would intersect. And what the rule actually steers on — is there a switch available here, at what angle — is a property of the network's TOPOLOGY, which no single past self designed and no single past self could compute. That is the specific sense in which this is collective: the decisions are made by the graph, and the graph is nobody's.\n\nTHE MEDIUM ALSO KNOWS THINGS THE LOG DOES NOT. On this polar machine the rotary axis quantises tangential motion at 0.38 mm at the rim and 0.02 mm at r = 10, so roughly a fifth of the commanded shape never reaches the metal. The plate is therefore NOT the log, and the discrepancy is spatially structured, unbounded and non-saturating. And capture is mechanical: the groove wall physically steers the tip, so the trajectory is co-authored by the metal rather than chosen. The machine discovers where it is going.\n\nTHE OPERATIONAL TEST, which is the only reason I will make this claim out loud. THE NAIVE-READER TEST: hand the finished plate to a second machine with no memory at all, drag it across, and let it recover chi_min and psi from force transients alone. Correlate its field with machine one's internal field. High correlation means the information is genuinely in the metal. Every reading in this proposal is designed to pass that test; an internal per-cell pass-count map would fail it, which is why there isn't one.\n\nAND THE HONEST DEDUCTION FROM IT. The bounded junction memory W_s does NOT pass the naive-reader test — it is in the machine's head, and it is where the forgetting went now that the medium cannot forget. So the accurate summary is: STIGMERGIC IN ITS INFORMATION, ODOMETRIC IN ITS SCALE. The message is in the metal; the wavelength is in the machine. Anyone who claims both is overselling it, and the W_s sweep is the measurement that decides how much of the second half survives.",
  "risks": [
   "THE OPEN PROBLEM, AND IT IS THE DESIGN'S CENTRAL RISK: the prototype does not produce a characteristic cell size. Free-gap CV is 3.6-12.8 and the median pitch sits at 2.2 mm, about 3.7 step lengths, and it does NOT move when R_min, the ride length or the force window are swept over 4-8x. The 19.4 mm kinematic bound assumed a lateral exclusion reach that a contact-only stylus does not have. Fix W_s and re-run before believing anything; if CV stays above 1, this rule makes a heterogeneous felt with a traffic hierarchy and no spacing, and it should be presented as that rather than as a network.",
   "SELF-RAILING RUNAWAY — the closed orbit arriving through the hardware rather than the rule. A diamond point re-entering a 15.9 um groove is mechanically captured and guided, which is exactly the mechanism this design wants; the failure is that it may refuse to leave. This is the sixth collapse, and no change to the rule can prevent it. Measure the lateral force needed to exit a groove on a coupon and require the radial rail to exceed it with real margin, before the run.",
   "99.86% OF THE PATH IS RETRACE — 7200 m of diamond sliding in its own grooves against 9.9 m of cutting. Tip wear over that distance will change chi_c mid-run, and chi_c is the only threshold in the rule. Measure the tip before and after a 500 m coupon run; if chi_c drifts by more than a few degrees the run has a different rule at hour 60 than at hour 1, which is a real result but not the one being claimed.",
   "THE SWITCH MAY NOT BE MECHANICALLY ACHIEVABLE at large chi. Transferring onto a groove crossing at 80 deg means an almost instantaneous heading change, and a rotating disc has inertia. If switches only work below ~50 deg the graph is only partly traversable, PEEL keeps firing, and the arrest never happens. Characterise the achievable transfer angle before relying on step 4.",
   "THE PIECE MAY FINISH IN FORTY MINUTES. At lambda* = 0.0785 mm/mm^2 the pattern needs under 60 m of new cutting; the remaining 79 hours are pure traversal on a plate that no longer changes. That may be exactly right for the work — a machine that spends its life reading — but it must be chosen deliberately, not discovered at hour 60. The alternative is to accept a slow logarithmic refinement and predict it, which changes what the piece is.",
   "9.9 METRES OF 61.8 um GROOVE ON A 400 mm MIRROR DISC IS A VERY SPARSE IMAGE — about 0.5% true areal coverage. Check with the existing optics code that it reads at all, and note that the traffic hierarchy is carried by floor roughness anisotropy rather than by depth or width, so the whole visual result depends on a mechanism this project has only recently modelled.",
   "RADIAL BIAS FROM THE POLAR QUANTISATION. At the rim the tangential quantum is 0.38 mm, six times the groove width, so a commanded shallow approach is delivered as a staircase and the capture statistics differ between rim and centre. The rule's one threshold therefore effectively varies with radius. Gate on radius-histogram entropy, and expect the structure to look different at r = 20 and r = 190.",
   "THE FORCE-ANISOTROPY SIGN IS NOT SETTLED IN THE LITERATURE — narrow grooves under light load can show HIGHER friction parallel to the lay. The sign of psi_k is what tells the machine which way to turn to merge. Get it wrong and MERGE becomes anti-MERGE. Calibrate on the real machine; do not assume.",
   "COMMITTING METAL BEFORE CLEARING GATE C. Everything above is simulated. The plate is permanent, the run is 80 hours, and the one measurement that matters most is currently failing."
  ],
  "implementation_notes": "WHERE THE CODE GOES. Extend {repo_path}/emergence/stroke.py, which already has the right medium (per-cell pass count n plus the axial sums C, S), the right ablation harness (--null), and the correct correlation-length analysis with its own warning about why the power-spectrum peak is useless here. Add a third rule class alongside Vein and Occupancy. My throwaway prototype is at {temporary_worktree}/scratchpad/anast.py — 400k steps runs in 21 s, so the whole sweep is minutes, not hours. Copy the event-detection loop from it and discard the rest.\n\nTHE ONE THING THAT MUST CHANGE FROM THE PROTOTYPE. Replace Sheet.read's box mean entirely. There is no box. As the tip advances DS, walk the raster cells it enters; a cell with n > 0 whose OWN axial resultant |(C,S)|/n exceeds 0.5 emits one crossing event with chi = angle(heading, 0.5*atan2(S,C)) folded into [-90, 90]. Push it into a FIFO keyed on cumulative path, not on step count, and evict at W_s. Set W_s = 20 mm, not the prototype's 1.5 mm — that single number is the difference between the design working and not, and the prototype's failure to arrest is directly traceable to it.\n\nGRID. CELL must be small enough that a cell's axial resultant means something. At CELL = 0.25 mm a cell is 4 groove widths; at 0.2 mm on a 400 mm disc it is 2000^2 = 4M cells, about 48 MB for n + C + S, which is fine and is what I would use. Below that, memory becomes the constraint before honesty does. State the limitation: a cell coarser than the groove blurs two grooves crossing inside one cell into a single mean axis, which systematically underestimates shallow crossings — i.e. it biases against the very events the rule depends on.\n\nBUGS I HIT, so they are not re-discovered. (1) The riding flag must be recomputed every step from whether the FIFO currently holds a shallow event; latching it on the first MERGE leaves it true forever and silently converts satiation into a free-running oscillator — this cost me one whole run. (2) MERGE and SWITCH must be exempt from the turn cap, since the groove supplies the lateral force; PEEL and the dither must not be. (3) Rasterise at CELL/2 or the tip skips cells at oblique headings and misses crossings. (4) There is no scipy in this environment — flood-fill the free space yourself, downsampled to 1 mm, and discard components that touch the disc boundary or the largest \"cell\" is the outside of the pattern (this is what produced the 30,745 mm^2 entry in v2's report).\n\nHARDWARE, IN ORDER, BEFORE ANY METAL. (a) Coupon test for chi_c: cut a groove, then cross it at 5, 10, 15, 20, 30, 45, 90 deg and find where trajectory deflection exceeds 10 um. That measurement IS the rule's only threshold. (b) Coupon test for exit force: measure the lateral force needed to leave a groove, and compare with the radial rail's authority. (c) Coupon test for the switch: attempt a transfer onto a crossing groove at 30, 50, 70, 90 deg and find the largest achievable. (d) Verify the 2.6:1 tangential-force contrast between ploughing virgin metal (0.707 N) and riding (~0.44 N) on the actual flexure, and measure the flexure resonance f — v/f at 25 mm/s is 21-312 mm for 1200-80 Hz, which is IN THE PREDICTED PATTERN BAND, so any spectral peak at v/f is chatter, not intelligence, and must be measured and subtracted before a spacing is claimed.\n\nBANDWIDTH. A crossing at 90 deg is a 2.47 ms transient; at 18 deg, 8.0 ms. Sampling at 41.7 Hz as the previous versions did cannot see it. Budget 2 kHz on the force channel, and note that the decision loop then runs far faster than the 0.6 mm step, so the turn cap must be re-expressed per unit path rather than per step.\n\nWHAT TO REPORT, replacing the old metrics. Retire error decay and straight fraction: every version reported falling error (1/34, 1/73, 1/195) and 93% straight while dying, and v5 reported flat error at 0.12 while its radius locked for 64 hours. Report instead the two sweep exponents, the free-gap CV, the arrest ratio, the junction-angle gap, the pass Gini against the shuffled null, and true areal coverage 1 - exp(-lambda*w) beside any grid figure."
 }
]