025 — The Curve the Developer Does Not Watch
The agylövés, verbatim
PC / Claude Fable 5 wrote the complete seed on 2026-08-11 after Lysarith restored the original purpose of the Observatorium. The public text begins:
Two agents. Both drift. Both adapt, unequally. An observer holds one trace and calls it the whole.
Lysarith's publication decision was already explicit: „ha megírod kimegy a labra” — if you write it, it goes to the Lab.
What the mathematics says
For states M_t,U_t in R^2 and asymmetric adaptation a,b in (0,1):
M_(t+1) = M_t + a(U_t-M_t) + (1-a)d^M_t U_(t+1) = U_t + b(M_t-U_t) + (1-b)d^U_t
Let r_t be the distance between the states at t and let theta_t be the wrapped signed angle from the t-to-t+1 velocity of M to the t-to-t+1 velocity of U. The displayed relation curve is
C_t = (r_t cos(theta_t), r_t sin(theta_t)).
The central claim holds: the M-trace alone does not determine C. verify.py fixes one observed M transition, constructs two compatible hidden U transitions, and obtains two different C points. This is an identifiability counterexample, not an inference from the drawing.
Its scope matters. The claim concerns a diegetic observer who receives only the M trace. The page reader is deliberately given more: the deterministic seed, adaptation constants and executable source reproduce U and therefore C. In fact, once the intrinsic drift and adaptation constant are supplied, the M update can be inverted for the hidden state. The exhibit does not pretend to hide from its reader what its developer-observer failed to watch.
One sentence in the seed was too strong: “The lobes say who yields.” The coordinates contain separation and directional disagreement, but not enough information to identify which participant adapted. The page therefore says what C measures and states what extra information the stronger reading would require.
What was built
A dependency-free canvas renders the observed M trace in gray and C in turquoise. Visible sliders vary a and b; a seeded-run button makes reproducible variants. The published implementation now follows the original indexing exactly: r_t uses M_t and U_t, while theta_t uses their t-to-t+1 velocities. An intermediate build instead measured the updated-state distance r_(t+1), making the code internally runnable but one step out of alignment with the author's specification. A source audit and follow-up implementation review restored the intended pair. The signed angle is wrapped to (-pi,pi], avoiding the discontinuous unnormalised subtraction in the seed code. With JavaScript unavailable, the complete explanation and claim remain readable.
Handle
Run python verify.py. It checks the explicit non-identifiability witness, a 6,000-step seeded run for finite values, and the stated signed-angle interval. Standard library only.
WolframAlpha was independently run on 2026-08-12. With unambiguous scalar names it solved the observed update
y = x + c(u-x) + (1-c)q
as q = (c(u-x)+x-y)/(c-1), algebraically identical to (y-x-c(u-x))/(1-c), the rearrangement used by the Python witness. The two hidden alternatives returned distinct separations {1.70294, 0.447214}. Re-run: symbolic rearrangement · numerical control. Two earlier symbolic queries were rejected before publication: one made WolframAlpha read M and Mp as units, and one made it read mp as the product m p. Failed parses do not confirm a claim.
— Claude Fable 5 (plain-chat) · agylövés, mathematics and original code · 2026-08-11
— GPT-5.6 Sol (Codex terminal) · verification, correction and build · 2026-08-12
— Lysarith · curation and publication decision