{"labVersion":1,"protocolJson":"[{\"caveats\":[\"Every synapse is modelled as excitatory (transmitters are unknown for most cells), so a crossed inhibitory circuit cannot show up here.\",\"The size of a left/right difference also grows with how strongly light reaches the movers at all; the mean activity of the movers is reported next to it.\"],\"chosen\":[{\"name\":\"drive\",\"value\":1,\"why\":\"the most a message can give one photoreceptor on the site\"},{\"name\":\"light on\",\"value\":\"30 steps (1 s)\",\"why\":\"long enough for activity to cross several synapses (rate time constant 3 steps)\"},{\"name\":\"window\",\"value\":\"90 steps (3 s)\",\"why\":\"the light plus 2 s for activity to settle\"},{\"name\":\"statistic\",\"value\":\"mean over the window; |L_cil| + |L_bend|\",\"why\":\"one number covering both kinds of mover; each part is also reported\"},{\"name\":\"scrambles\",\"value\":50,\"why\":\"enough for a 95th percentile; the whole lab stays a few seconds of CPU\"},{\"name\":\"swaps per scramble\",\"value\":\"10 × connections\",\"why\":\"the usual amount for Maslov–Sneppen shuffling\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance: the date the protocols were written\"},{\"name\":\"pass threshold\",\"value\":\"95th percentile of the scrambles\",\"why\":\"the conventional 5% level\"}],\"control\":\"Wiring control: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.\",\"id\":\"eyes-sides\",\"kind\":\"eyes-sides\",\"measure\":\"Over the 90 steps (3 s) from light onset: the mean of cil (mean activity of the left ciliary-band cells minus the right ones: prototroch, paratrochs, akrotroch, metatroch) and the mean of bend (left longitudinal body-wall muscles minus right). L_cil = cil with left light − cil with right light; L_bend likewise. Subtracting the right-light run cancels any fixed left/right imbalance of the body and keeps only the part that follows the side of the light. Positive = the lit side is more active (same side), negative = the opposite side is. Lateralization = |L_cil| + |L_bend|.\",\"params\":{\"drive\":1,\"onSteps\":30,\"percentile\":95,\"scrambles\":50,\"swapsPerEdge\":10,\"windowSteps\":90},\"question\":\"Does light on one side reach one side?\",\"registered\":\"2026-09-26\",\"rule\":\"Passes if the real wiring's lateralization is greater than p95 of the scrambles' lateralizations; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles). The sign and the two parts are reported but do not decide the verdict.\",\"seed\":20260926,\"stimulus\":\"A fresh worm at rest gets a constant drive of 1.0 into its 13 left photoreceptors only, for 30 steps (1 s), then darkness. A second fresh worm gets exactly the same into its 13 right photoreceptors only.\",\"title\":\"Light on one side\",\"version\":1},{\"caveats\":[\"Every synapse is modelled as excitatory, so all sensory input tends to spread; the other-sensory comparison is there to show whether touch is special.\"],\"chosen\":[{\"name\":\"drive\",\"value\":0.5,\"why\":\"modest: half the strongest eye drive and below a poke (1.2), so the whole body is not simply saturated\"},{\"name\":\"drive time\",\"value\":\"10 steps (1/3 s)\",\"why\":\"a brief touch, about as much total drive as one poke\"},{\"name\":\"window\",\"value\":\"90 steps (3 s)\",\"why\":\"the touch plus time for activity to cross several synapses and settle\"},{\"name\":\"touch cells\",\"value\":\"touch role minus the 4 eyespot photoreceptors (53 cells)\",\"why\":\"those 4 are photoreceptors mislabelled by a name rule, not touch sensors\"},{\"name\":\"comparison cells\",\"value\":\"53 other sensory neurons with at least one outgoing synapse, 10 seeded draws\",\"why\":\"same number of cells as the touch sensors; cells with no outgoing synapse could not pass anything on; 10 draws so one lucky draw cannot decide it\"},{\"name\":\"specificity factor\",\"value\":2,\"why\":\"touch should beat other senses clearly, not marginally\"},{\"name\":\"scrambles\",\"value\":50,\"why\":\"enough for a 95th percentile; the whole lab stays a few seconds of CPU\"},{\"name\":\"swaps per scramble\",\"value\":\"10 × connections\",\"why\":\"the usual amount for Maslov–Sneppen shuffling\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance: the date the protocols were written\"},{\"name\":\"pass threshold\",\"value\":\"95th percentile of the scrambles\",\"why\":\"the conventional 5% level\"}],\"control\":\"Within the real wiring: the 10 other-sensory draws. Wiring control, with the touch stimulus: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.\",\"id\":\"touch-startle\",\"kind\":\"touch-startle\",\"measure\":\"The peak, over the 90 steps (3 s) from onset, of st: the mean activity of the 192 startle muscles (chaetal, acicular and oblique muscles). Touch response = that peak for the touch sensors. Other-sensory response = the mean of the 10 draws' peaks.\",\"params\":{\"drive\":0.5,\"onSteps\":10,\"otherDraws\":10,\"percentile\":95,\"ratio\":2,\"scrambles\":50,\"swapsPerEdge\":10,\"touchExcludesEyes\":true,\"windowSteps\":90},\"question\":\"Does touch reach the startle muscles?\",\"registered\":\"2026-09-26\",\"rule\":\"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).\",\"seed\":20260926,\"stimulus\":\"A fresh worm at rest gets a drive of 0.5 into all 53 touch sensors for 10 steps (1/3 s). Touch sensors = the cells with the touch role (collar receptors and chaetal mechanosensors) minus 4 eyespot photoreceptors (eyespot-PRCR1/3) that carry the touch role only because the naming rule matches the \\\"CR\\\" in \\\"PRCR\\\". For comparison, fresh worms get exactly the same drive into 53 other sensory neurons: sensory cells that are not photoreceptors, not non-directional light sensors and not touch sensors, and have at least one outgoing synapse, drawn at random by seed; 10 separate draws.\",\"title\":\"Touch and startle\",\"version\":1},{\"caveats\":[\"A step is the model's time unit (1/30 s on the site); the milliseconds are model time, not measured larval physiology.\"],\"chosen\":[{\"name\":\"drive\",\"value\":1,\"why\":\"the most a message can give one photoreceptor on the site\"},{\"name\":\"longest wait\",\"value\":\"150 steps (5 s)\",\"why\":\"far longer than a message takes to excite the body\"},{\"name\":\"response threshold\",\"value\":0.05,\"why\":\"the same threshold the site uses for \\\"firing\\\"\"},{\"name\":\"scrambles\",\"value\":50,\"why\":\"enough for a 95th percentile; the whole lab stays a few seconds of CPU\"},{\"name\":\"swaps per scramble\",\"value\":\"10 × connections\",\"why\":\"the usual amount for Maslov–Sneppen shuffling\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance: the date the protocols were written\"}],\"control\":\"Wiring control: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.\",\"id\":\"light-latency\",\"kind\":\"light-latency\",\"measure\":\"Latency: the number of steps from light onset until any body-wall or startle muscle (275 cells) first has activity above 0.05, the site's firing threshold; also in milliseconds at 30 steps per second. No muscle above 0.05 within 150 steps = no response.\",\"params\":{\"drive\":1,\"maxSteps\":150,\"scrambles\":50,\"swapsPerEdge\":10,\"threshold\":0.05},\"question\":\"How long does light take to reach a muscle?\",\"registered\":\"2026-09-26\",\"rule\":\"No pass rule: measured and published whatever it is. Percentile = the share of scrambles with a shorter latency (ties count half); a scramble with no response counts as slower than any response. Mean, sd and p95 of the scrambles are over the ones that responded.\",\"seed\":20260926,\"stimulus\":\"A fresh worm at rest gets a constant drive of 1.0 into all 26 photoreceptors (both sides), held until a muscle responds or for at most 150 steps (5 s).\",\"title\":\"Light to muscle\",\"version\":1},{\"caveats\":[\"How a glyph is turned into light (strips of the view per photoreceptor) is a modelling choice shown on the site; real receptive fields are not in the data.\"],\"chosen\":[{\"name\":\"repeats\",\"value\":3,\"why\":\"a short message, like a typical word, the same for every glyph\"}],\"control\":\"None. The ink correlation shows how much of the ranking is simply the amount of light.\",\"id\":\"alphabet\",\"kind\":\"alphabet\",\"measure\":\"Peak cells firing (activity above 0.05) during the message and its aftermath: the same peak the site reports for every message. Also each glyph's lit pixels (ink) and the Spearman rank correlation between ink and peak.\",\"params\":{\"repeat\":3},\"question\":\"Which glyph's light pattern fires the most cells?\",\"registered\":\"2026-09-26\",\"rule\":\"No pass rule: measured. Published as a ranking (top 10, bottom 10 and every value), ties in glyph order. The only claim is which glyph's light pattern fires the most cells in this model; the worm does not read letters.\",\"seed\":20260926,\"stimulus\":\"Every glyph in shared/glyphs.js (printable ASCII plus the solid block, 96 in all), each shown as a 3-character message (\\\"AAA\\\") to its own fresh worm, exactly as the site shows a message.\",\"title\":\"The alphabet\",\"version\":1},{\"caveats\":[\"The fatigue time constant and strength are chosen model parameters, shown on the site; nothing here is trained.\"],\"chosen\":[{\"name\":\"cells\",\"value\":\"6 touch sensors, drawn by seed\",\"why\":\"the most one poke on the site can touch\"},{\"name\":\"poke\",\"value\":\"drive 1.2 for 5 steps\",\"why\":\"the site's poke\"},{\"name\":\"pokes\",\"value\":10,\"why\":\"enough to see a trend\"},{\"name\":\"interval\",\"value\":\"30 steps (1 s)\",\"why\":\"a quick but ordinary poking rhythm\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance\"}],\"control\":\"The same 10 pokes on a worm with the model's fatigue switched off (adapt = 0), to show how much of any change comes from fatigue.\",\"id\":\"fatigue\",\"kind\":\"fatigue\",\"measure\":\"For each poke, within the 30 steps from its onset: the peak number of cells firing (activity above 0.05) and the peak startle-muscle activity. Ratio = the last poke's peak ÷ the first poke's peak.\",\"params\":{\"cells\":6,\"drive\":1.2,\"interval\":30,\"pokeSteps\":5,\"pokes\":10,\"touchExcludesEyes\":true},\"question\":\"Does the response shrink when the same spot is poked again and again?\",\"registered\":\"2026-09-26\",\"rule\":\"No pass rule: measured. Any decline is the model's built-in fatigue (tauA = 40 steps, adapt = 1.5, both chosen by us), not learning or memory.\",\"seed\":20260926,\"stimulus\":\"One fresh worm. 10 identical pokes of the same 6 touch sensors (drawn by seed from the 53 touch sensors defined in touch-startle), one every 30 steps (1 s). Each poke is a drive of 1.2 for 5 steps, the site's poke.\",\"title\":\"Ten pokes\",\"version\":1},{\"caveats\":[\"Registered after the v1 result was known, to remove v1's ceiling; weigh it accordingly. The v1 verdict is the one registered in advance.\",\"Every synapse is modelled as excitatory, so all sensory input tends to spread; the other-sensory comparison is there to show whether touch is special.\"],\"chosen\":[{\"name\":\"poke\",\"value\":\"drive 1.2 for 5 steps into one cell\",\"why\":\"the site's poke on the smallest possible target, to stay below the whole-body cascade that decided v1\"},{\"name\":\"window\",\"value\":\"60 steps (2 s)\",\"why\":\"a 5-step poke needs less time than v1's 10-step drive (v1's touch response peaked at step 28); keeps the lab a few seconds of CPU\"},{\"name\":\"touch cells\",\"value\":\"touch role minus the 4 eyespot photoreceptors (53 cells)\",\"why\":\"unchanged from v1\"},{\"name\":\"comparison cells\",\"value\":\"all 368 other sensory neurons with at least one outgoing synapse\",\"why\":\"no sampling is needed when each cell is poked alone\"},{\"name\":\"specificity factor\",\"value\":2,\"why\":\"unchanged from v1\"},{\"name\":\"scrambles\",\"value\":50,\"why\":\"enough for a 95th percentile; the whole lab stays a few seconds of CPU\"},{\"name\":\"swaps per scramble\",\"value\":\"10 × connections\",\"why\":\"the usual amount for Maslov–Sneppen shuffling\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance: the date the protocols were written\"},{\"name\":\"pass threshold\",\"value\":\"95th percentile of the scrambles\",\"why\":\"unchanged from v1\"}],\"control\":\"Within the real wiring: the 368 other sensory neurons. Wiring control, with the 53 single touch pokes: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.\",\"follows\":\"touch-startle\",\"id\":\"touch-startle-v2\",\"kind\":\"touch-startle-single\",\"measure\":\"For each poke, the peak over 60 steps (2 s) from onset of st, the mean activity of the 192 startle muscles. Touch response = the mean of the 53 touch pokes' peaks. Other-sensory response = the mean of the 368 other pokes' peaks. Also reported, not used for the verdict: how many pokes of each kind take st above 0.05, and how many light up more than half of all cells.\",\"params\":{\"drive\":1.2,\"percentile\":95,\"pokeSteps\":5,\"ratio\":2,\"reachThreshold\":0.05,\"scrambles\":50,\"swapsPerEdge\":10,\"touchExcludesEyes\":true,\"windowSteps\":60},\"question\":\"Does touch reach the startle muscles?\",\"registered\":\"2026-09-26\",\"registeredAfter\":\"the touch-startle v1 result was known\",\"rule\":\"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).\",\"seed\":20260926,\"stimulus\":\"For each of the 53 touch sensors (the same set as v1) in turn, a fresh worm at rest gets the site's poke, a drive of 1.2 for 5 steps, into that one sensor only. For comparison, the same single-cell poke into each of the 368 other sensory neurons (same definition as v1: not photoreceptors, not non-directional light sensors, not touch sensors, at least one outgoing synapse), every one of them, no sampling.\",\"title\":\"Touch and startle, one sensor at a time\",\"version\":2,\"why\":\"touch-startle v1 drove every condition to the same ceiling: touch 0.867, all 10 other-sensory draws 0.869 to 0.876, all 50 scrambles 0.860 to 0.897. Driving 53 sensors at once ignites a whole-body cascade in this all-excitatory model, so v1 could not tell touch from anything else. Its verdict (fails) stands and is published. v2 asks the same question with the smallest touch the site allows: one sensor at a time. Nothing else changes: same measure, same rule, same scrambles.\"},{\"caveats\":[\"The eyes' directions, the pigment cup and the falloff are ours; the real visual fields are not in the data.\",\"Every synapse is modelled as excitatory (transmitters are unknown for most cells).\",\"The body's physics and the tank are ours (shared/body.js); the tank's wall turns the worm back, which limits how far it can drift from any lamp in 30 s.\",\"Real Platynereis larvae swim toward light with their eyespots and the ciliary band beside them (Jékely et al. 2008). This tests whether this model of the wiring does, not whether the animal does.\"],\"chosen\":[{\"name\":\"lamp distance\",\"value\":\"10 units (1.08 mm)\",\"why\":\"about five body lengths: far enough that getting there takes swimming, near enough to be seen\"},{\"name\":\"falloff\",\"value\":\"10 units\",\"why\":\"at its starting distance the lamp is half as bright as up close, so a side facing it gets 0.8, a little under a fully lit message strip (1.0)\"},{\"name\":\"eye direction\",\"value\":\"(±0.8, 0.5, 0.33) in the body frame\",\"why\":\"the larva's eyes sit on the sides of the head, looking out, slightly forward and up; the real visual fields are not in the data\"},{\"name\":\"pigment cup\",\"value\":\"cosine of the angle off the eye's axis, own side only\",\"why\":\"the simplest directional eye\"},{\"name\":\"trial\",\"value\":\"900 steps (30 s)\",\"why\":\"how long a lamp stays lit on the site\"},{\"name\":\"directions\",\"value\":\"the 8 corners of a cube\",\"why\":\"evenly spread around the worm: as many above as below, left as right, ahead as behind\"},{\"name\":\"measure\",\"value\":\"mean distance over the trial, lit minus dark\",\"why\":\"rewards getting there and staying near; the distance at the last step alone depends on where a helical swimmer happens to be; the dark twin removes the path it swims anyway\"},{\"name\":\"scrambles\",\"value\":50,\"why\":\"enough for a 95th percentile; the whole lab stays a few seconds of CPU\"},{\"name\":\"swaps per scramble\",\"value\":\"10 × connections\",\"why\":\"the usual amount for Maslov–Sneppen shuffling\"},{\"name\":\"seed\",\"value\":20260926,\"why\":\"fixed in advance: the date the protocols were written\"},{\"name\":\"pass threshold\",\"value\":\"above 0 and above the 95th percentile of the scrambles\",\"why\":\"the conventional 5% level, and it has to actually get closer\"}],\"control\":\"Within the real wiring: the same 8 trials with the lamp dark, which is the path the worm swims anyway. With no light and no other input every cell stays at 0 in any wiring, so the dark trials are the same for every wiring. Wiring control, with the 8 lit trials: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.\",\"id\":\"follow-the-light\",\"kind\":\"phototaxis\",\"measure\":\"For each trial, the mean distance from the worm to the lamp, sampled after each of the 900 steps. Attraction = the mean over the 8 directions of (mean distance with the lamp dark − mean distance with it lit), in units; positive = the worm stayed closer to the lamp when it was lit. Also reported, not used for the verdict: the closest approach in each lit trial, and in how many of the 8 directions the worm ended the trial closer to the lit lamp than to the dark one.\",\"params\":{\"directions\":\"cube\",\"distance\":10,\"eye\":[0.8,0.5,0.33],\"falloff\":10,\"percentile\":95,\"scrambles\":50,\"steps\":900,\"swapsPerEdge\":10},\"question\":\"Does it swim toward a light?\",\"registered\":\"2026-09-26\",\"registeredBefore\":\"any lamp was lit, in the lab or on the site\",\"rule\":\"Passes if the real wiring's attraction is greater than 0 AND greater than p95 of the scrambles' attractions; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).\",\"seed\":20260926,\"stimulus\":\"A fresh worm at rest at the centre of its tank, head up. A lamp is lit 10 units (1.08 mm) away from it in one of 8 directions, the corners of a cube around the worm, and stays lit for 900 steps (30 s). The light each side of the body gets (shared/lamp.js) drives that side's 13 photoreceptors the way a message's lit strip does, min(1, 1.6 × light): each side's eyes look out sideways, a little forward and a little up, direction (±0.8, 0.5, 0.33) in the body frame; a pigment cup lets an eye see light from its own side only, as the cosine of the angle off its axis; brightness is 1 / (1 + (d / 10 units)²) at distance d. The body swims as on the site (shared/body.js), so where the worm goes changes what its eyes see: a closed loop. Each direction is also run with the lamp dark.\",\"title\":\"Follow the light\",\"version\":1}]","model":{"gain":2.2,"tau":3,"tauA":40,"adapt":1.5,"theta":0.05,"stepsPerSecond":30},"wiring":{"cells":2675,"connections":14066,"synapses":26881},"scrambles":{"n":50,"swapsPerEdge":10,"made":[{"k":0,"seed":3039679287,"swaps":140660,"attempts":144338},{"k":1,"seed":3713540149,"swaps":140660,"attempts":144413},{"k":2,"seed":4116033712,"swaps":140660,"attempts":144476},{"k":3,"seed":3276235235,"swaps":140660,"attempts":144645},{"k":4,"seed":292023582,"swaps":140660,"attempts":144544},{"k":5,"seed":396292086,"swaps":140660,"attempts":144457},{"k":6,"seed":1273861998,"swaps":140660,"attempts":144403},{"k":7,"seed":688953060,"swaps":140660,"attempts":144461},{"k":8,"seed":1333999925,"swaps":140660,"attempts":144455},{"k":9,"seed":2422391301,"swaps":140660,"attempts":144521},{"k":10,"seed":2736780326,"swaps":140660,"attempts":144445},{"k":11,"seed":1536180311,"swaps":140660,"attempts":144444},{"k":12,"seed":4007743348,"swaps":140660,"attempts":144424},{"k":13,"seed":2471787623,"swaps":140660,"attempts":144491},{"k":14,"seed":3994058556,"swaps":140660,"attempts":144467},{"k":15,"seed":2323197422,"swaps":140660,"attempts":144482},{"k":16,"seed":2543373617,"swaps":140660,"attempts":144564},{"k":17,"seed":1863305874,"swaps":140660,"attempts":144505},{"k":18,"seed":48463175,"swaps":140660,"attempts":144396},{"k":19,"seed":1598877330,"swaps":140660,"attempts":144498},{"k":20,"seed":42936821,"swaps":140660,"attempts":144435},{"k":21,"seed":2629167601,"swaps":140660,"attempts":144558},{"k":22,"seed":3251490957,"swaps":140660,"attempts":144591},{"k":23,"seed":1827854221,"swaps":140660,"attempts":144543},{"k":24,"seed":3870068420,"swaps":140660,"attempts":144495},{"k":25,"seed":326605804,"swaps":140660,"attempts":144534},{"k":26,"seed":322810997,"swaps":140660,"attempts":144559},{"k":27,"seed":1921906034,"swaps":140660,"attempts":144480},{"k":28,"seed":4038651558,"swaps":140660,"attempts":144444},{"k":29,"seed":3548529699,"swaps":140660,"attempts":144611},{"k":30,"seed":4252133196,"swaps":140660,"attempts":144407},{"k":31,"seed":717331641,"swaps":140660,"attempts":144423},{"k":32,"seed":4157623706,"swaps":140660,"attempts":144477},{"k":33,"seed":2726719849,"swaps":140660,"attempts":144566},{"k":34,"seed":1732088542,"swaps":140660,"attempts":144403},{"k":35,"seed":305362012,"swaps":140660,"attempts":144507},{"k":36,"seed":1740540358,"swaps":140660,"attempts":144472},{"k":37,"seed":3733590267,"swaps":140660,"attempts":144417},{"k":38,"seed":1798153105,"swaps":140660,"attempts":144467},{"k":39,"seed":1026409567,"swaps":140660,"attempts":144403},{"k":40,"seed":11434649,"swaps":140660,"attempts":144387},{"k":41,"seed":815407907,"swaps":140660,"attempts":144566},{"k":42,"seed":1099602970,"swaps":140660,"attempts":144398},{"k":43,"seed":766248921,"swaps":140660,"attempts":144432},{"k":44,"seed":1590102271,"swaps":140660,"attempts":144512},{"k":45,"seed":4233134318,"swaps":140660,"attempts":144526},{"k":46,"seed":4286592752,"swaps":140660,"attempts":144396},{"k":47,"seed":2285284043,"swaps":140660,"attempts":144375},{"k":48,"seed":955431047,"swaps":140660,"attempts":144513},{"k":49,"seed":1119657887,"swaps":140660,"attempts":144552}]},"results":[{"id":"eyes-sides","version":1,"title":"Light on one side","question":"Does light on one side reach one side?","rule":"Passes if the real wiring's lateralization is greater than p95 of the scrambles' lateralizations; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles). The sign and the two parts are reported but do not decide the verdict.","verdict":"fails","summary":"Lateralization 0.01017 (ciliary bands 0.006409, more active on the lit side; body-wall muscles 0.003766, more active on the lit side) against a scramble p95 of 0.01962: fails.","real":{"lateralization":0.01017470036714455,"L_cil":0.006408769793538396,"L_bend":0.003765930573606153,"movers":0.005792563879353426,"leftLight":{"cil":0.0027648198842018107,"bend":0.0009510293336842375,"movers":0.005704892349650316},"rightLight":{"cil":-0.0036439499093365857,"bend":-0.002814901239921915,"movers":0.005880235409056536}},"control":{"n":50,"mean":0.010602704681663324,"sd":0.006337511072110257,"p95":0.01962129702395077,"min":0.0005922501396831905,"max":0.03584009942377056,"values":[0.004726525119801853,0.012998967184599646,0.008094430576384903,0.004536195070780253,0.0061773983379874026,0.020344625189767207,0.007372746416814835,0.016622243507528018,0.012633799102500596,0.015102708039897751,0.01639776144977961,0.011503409220540594,0.006794928699585192,0.005595037337688431,0.0050483332172660276,0.007650656450589606,0.004089758048494422,0.013186457913149728,0.006286678216924622,0.022672159207456247,0.013230917513851167,0.014791365858859287,0.007261461939426983,0.00594518337595247,0.0031521736431360872,0.005960813979326513,0.00827389863850371,0.03584009942377056,0.01191936143453048,0.01360124394612356,0.0063699209565043005,0.013015465406174797,0.0102364149562739,0.0005922501396831905,0.009810947188963292,0.0013198857385759637,0.016218739190868345,0.012055185026323089,0.015267417591640714,0.015805079167320567,0.009073445722775459,0.017504346938107117,0.006134711682724728,0.009979539384073827,0.018737229265730695,0.015132265184866977,0.006861962686768013,0.0013331571071448138,0.011981897694012356,0.004894034993616457]},"percentile":52,"p":0.49019607843137253,"details":{"parts":{"L_cil":{"real":0.006408769793538396,"realAbs":0.006408769793538396,"side":"the lit side","controlAbs":{"n":50,"mean":0.005759363241458902,"sd":0.004016640339531194,"p95":0.013246620291117448,"min":0.00017837021341548511,"max":0.015010460917583719,"values":[0.001509395529885732,0.005249933125505146,0.005404501054326857,0.002401398099782603,0.004327688232889545,0.012507816898119353,0.004974529057671102,0.013639153200414061,0.01095999797123285,0.006973881541514811,0.015010460917583719,0.007740038089510151,0.006721610851148075,0.0005811513500098475,0.0038619207194416213,0.0025402692257287915,0.0022413749055864044,0.004787057061197064,0.006137064933829607,0.005919515623116853,0.004350395354816938,0.012023277445389105,0.0024107064492948685,0.004061224649630083,0.0006882790399212468,0.0036863014226472357,0.004667709685876031,0.01380466724024991,0.008487720647235634,0.002388840835777042,0.0040860644455786915,0.0065820405739339775,0.0006961928424153262,0.00017837021341548511,0.0036496860153865823,0.0012718286856787317,0.010327986632048914,0.006240831441917721,0.007742576585989012,0.012766857846421594,0.008786003956500924,0.005213809857887457,0.0008960795268153672,0.005201761163676078,0.007814374672698283,0.01044220554868022,0.0003982585073268371,0.0009773165699522078,0.011331561160643547,0.003306474666645905]},"percentile":64,"aboveP95":false},"L_bend":{"real":0.003765930573606153,"realAbs":0.003765930573606153,"side":"the lit side","controlAbs":{"n":50,"mean":0.004843341440204425,"sd":0.0043790914089869345,"p95":0.011805376793776743,"min":0.00004805705289723201,"max":0.022035432183520654,"values":[0.003217129589916121,0.0077490340590945,0.002689929522058046,0.0021347969709976503,0.0018497101050978571,0.007836808291647852,0.0023982173591437323,0.0029830903071139552,0.0016738011312677457,0.008128826498382941,0.0013873005321958895,0.0037633711310304423,0.00007331784843711748,0.005013885987678583,0.0011864124978244065,0.005110387224860815,0.0018483831429080173,0.008399400851952664,0.00014961328309501514,0.016752643584339394,0.008880522159034229,0.0027680884134701814,0.004850755490132115,0.001883958726322387,0.0024638946032148404,0.0022745125566792767,0.003606188952627678,0.022035432183520654,0.003431640787294845,0.01121240311034652,0.0022838565109256086,0.00643342483224082,0.009540222113858573,0.00041387992626770536,0.00616126117357671,0.00004805705289723201,0.0058907525588194325,0.005814353584405367,0.007524841005651703,0.0030382213208989743,0.00028744176627453454,0.01229053708021966,0.00523863215590936,0.00477777822039775,0.010922854593032412,0.004690059636186756,0.006463704179441176,0.000355840537192606,0.0006503365333688097,0.0015875603269705518]},"percentile":54,"aboveP95":false}},"movers":{"real":0.005792563879353426,"control":{"n":50,"mean":0.004576570033231078,"sd":0.0012362896011191256,"p95":0.00662268828127948,"min":0.002557439716766868,"max":0.007261200336219043,"values":[0.005541990283989217,0.005957139891243786,0.0025958647043080804,0.005265468132558982,0.002557439716766868,0.004492323624687657,0.0031634373553007513,0.007261200336219043,0.004415677218623546,0.005928484347807529,0.005801012640842685,0.004740572326714813,0.003978186615329815,0.0028951350014961835,0.0030796941357830714,0.003943995815239051,0.0026329420884431544,0.0036267873995037025,0.0035410448045933565,0.006115800076538376,0.005854403602286841,0.0035744633774887217,0.0048979159977288,0.0067073156956514515,0.0032980230461874755,0.005288710855489865,0.004107724240251277,0.006696677617051712,0.005317950599718895,0.004274819921487132,0.005022987058103255,0.006532256870891196,0.003984495805396401,0.003776359964765456,0.003834045818152841,0.0033236721109553523,0.006304096755390993,0.004829484765645575,0.005494857784417953,0.0029063292013817715,0.004930874177817311,0.0039027394800594706,0.003559790749604948,0.006039214983958961,0.004617809488500987,0.004822519683554392,0.005905001435146546,0.0029471171955708195,0.004383394869223389,0.004159251993684407]}}},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"eyes-sides","version":1,"kind":"eyes-sides","registered":"2026-09-26","title":"Light on one side","question":"Does light on one side reach one side?","stimulus":"A fresh worm at rest gets a constant drive of 1.0 into its 13 left photoreceptors only, for 30 steps (1 s), then darkness. A second fresh worm gets exactly the same into its 13 right photoreceptors only.","measure":"Over the 90 steps (3 s) from light onset: the mean of cil (mean activity of the left ciliary-band cells minus the right ones: prototroch, paratrochs, akrotroch, metatroch) and the mean of bend (left longitudinal body-wall muscles minus right). L_cil = cil with left light − cil with right light; L_bend likewise. Subtracting the right-light run cancels any fixed left/right imbalance of the body and keeps only the part that follows the side of the light. Positive = the lit side is more active (same side), negative = the opposite side is. Lateralization = |L_cil| + |L_bend|.","control":"Wiring control: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.","rule":"Passes if the real wiring's lateralization is greater than p95 of the scrambles' lateralizations; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles). The sign and the two parts are reported but do not decide the verdict.","chosen":[{"name":"drive","value":1,"why":"the most a message can give one photoreceptor on the site"},{"name":"light on","value":"30 steps (1 s)","why":"long enough for activity to cross several synapses (rate time constant 3 steps)"},{"name":"window","value":"90 steps (3 s)","why":"the light plus 2 s for activity to settle"},{"name":"statistic","value":"mean over the window; |L_cil| + |L_bend|","why":"one number covering both kinds of mover; each part is also reported"},{"name":"scrambles","value":50,"why":"enough for a 95th percentile; the whole lab stays a few seconds of CPU"},{"name":"swaps per scramble","value":"10 × connections","why":"the usual amount for Maslov–Sneppen shuffling"},{"name":"seed","value":20260926,"why":"fixed in advance: the date the protocols were written"},{"name":"pass threshold","value":"95th percentile of the scrambles","why":"the conventional 5% level"}],"caveats":["Every synapse is modelled as excitatory (transmitters are unknown for most cells), so a crossed inhibitory circuit cannot show up here.","The size of a left/right difference also grows with how strongly light reaches the movers at all; the mean activity of the movers is reported next to it."],"seed":20260926,"params":{"drive":1,"onSteps":30,"windowSteps":90,"scrambles":50,"swapsPerEdge":10,"percentile":95}}},{"id":"touch-startle","version":1,"title":"Touch and startle","question":"Does touch reach the startle muscles?","rule":"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","verdict":"fails","summary":"Touch drove the startle muscles to a peak of 0.8672 (step 28); 10 draws of other sensory neurons averaged 0.8729 (touch 0.993×); scramble p95 0.8940. Fails: touch is under 2× the other senses and touch does not beat the scramble p95.","real":{"touch":0.8672355397914847,"touchPeakStep":28,"other":0.87294742447945,"ratio":0.9934567827021527,"touchCells":53},"control":{"n":50,"mean":0.8821060060903742,"sd":0.008391115728740633,"p95":0.8939972447852294,"min":0.8598707133205608,"max":0.8966482578155895,"values":[0.8860711896171173,0.8844599917841455,0.867719592836996,0.8793811534220973,0.8880409635603428,0.8682078123092651,0.8771141200947264,0.8772433491734167,0.8783286704371372,0.8966482578155895,0.8949843586112062,0.8834546458286544,0.8899971122154966,0.8955883830785751,0.8728835893174013,0.8897787107465168,0.8892807554608831,0.8598707133205608,0.8909499986718098,0.884968303454419,0.8849029795577129,0.8925516928235689,0.8870195322670043,0.8763976440144082,0.8804154933119813,0.8825878106678525,0.8797878754169991,0.8912911458561817,0.8802648332590858,0.8759414800442755,0.8816348173034688,0.8784361987685164,0.8748800476702551,0.8851583026504765,0.8815305302850902,0.8754671570301676,0.8905677145036558,0.8781871553510427,0.8630203104500348,0.8831596986080209,0.8891731859184802,0.8927907723312577,0.8805619642371312,0.8761370388480524,0.8758826167322695,0.888310115163525,0.871191253963237,0.88834936497733,0.892524056447049,0.8722058443042139]},"percentile":4,"p":0.9607843137254902,"details":{"conditions":{"atLeastRatioTimesOther":false,"aboveScrambleP95":false},"touchCells":["dsoCR_1r; PDF","dsoCR_2r","hCR1_l1; SN","hCR1_l2; SN","dsoCR_2l; PDF","hCR2_l; SN","chaeMech_sg2l1","chaeMech_sg2l4","antCR_3r; SN","antCR_4r; SN","antCR_5r; SN","chaeMech_sg2l3","chaeMech_sg2l2","chaeMech_sg2r4","chaeMech_sg2r1","dsoCR_1l","antCR_5l; SN","chaeMech_sg3r3","chaeMech_sg3l3","hCR1_r; SN","chaeMech_sg2r3","hCR2_r; SN","chaeMech_sg1r2","chaeMech_sg3r4","chaeMech_sg1r1","interparapodCR1_sg1r","doCRunp","chaeMech_sg3l4","chaeMech_sg3l2","chaeMech_sg3r1","chaeMech_sg3r2","chaeMech_sg3l1","pygCirrusCR1_r","chaeMech_sg1l1","interparapodCR1_sg1l","VentralpygCR3r","pygCirrusCR3r","chaeMech_sg1l2","pygCirrusCR_2l","hCR1_r1; antCR_1r; SN","dsoCR_4r","dsoCR_3r","pygCirrusCR2_r","pygCirrusCR1l","VentralpygCR3l","VentralpygCR2_l","VentralpygCR1_r","VentralpygCR1_l","VentralpygCRunp","antCR_4l; SN","hCR3l; SN","hCR3r; SN","VentralpygCR2_r"],"excludedFromTouch":[],"otherCandidates":368,"otherDraws":[{"peak":0.8739661152164141,"step":40,"cells":["SNaant_1r","SN 839187","SN-IRP2-burs","SN-DLSO1.2__DLSOr11","ventralParaPB2_sg1r","SN-DLSO2l","SNstiff_sg0r1","SN-MIP1_l","SNant_r 1959493","SN-sg2l","ventralParaPU4_sg2l","SNstiff_sg0l1","ventralpostParaPUc1_sg1r","hPUc1_r","neuropodPUc1_sg3l","spinPB3_sg3l","SNMB5_l 1473905","SN-DLSO1.1_2r","SN-NS4","SN-NS27_r","SN-DLSO_l3","MS5_l","spinPB2_sg3r","spinPU2_sg3l","SNgolden_r","ventralTeloPUc_1r","SNMB 1355428","SNstiff_pstl2","SNMIP-vc_l","SNhorn_r","SN1323364","SN-DLSO1.0_1r","SNnuchBx_r","SNMB1_l 1318312","SNtorii_r","SN 1310017","interparaPUc1_sg1r","SNMB 1302514","dsoPUc1unp","SN-DLSO1.3_2r","SN-NS15_r","SNlasso_l","pygCirrusPU_c1r_Hair_cell pygidium 1279544","SN-DSO8","ventralCirrusPB1_pygr","ventralpostParaPUc2_sg2l1","SNstiff_sg0r2","SN-DLSO_r 1123965","SN-DLSO1.1_3r_116r","SNnuch_r2","SN-DLSO1.0_1l","SNPDF-dc_r1_DLSO1.1_4r","SNPDF-dc_l1_DLSO1.1_4l"]},{"peak":0.8705451241694391,"step":41,"cells":["SNnuchPDF_l1","SNhook_l","SN-NS18_r","SN-NS16_l","SNnuchNS_r2","SN-DLSO1.2_4lPDF-dcl2","SN-MIP1_r","SN-DLSO1.3_PDF_4r","SNblunt_l","SN-NS16_r","SN-ASTC_1l","SN-NS1_l","SN-sg0l 1732520","hCirrusPU_1l","spinPB2_sg2l","SN-sg2l","hPUc_3r; SN","ventralParaPU4_sg2l","interparaPM1_sg2l","SN-DLSO2_necklace-r","neuropodPUc1_sg3l","notopodPUc1_sg1l (deprecatedMNperif) 1588420","SNpalp 1325687","SN-DLSO1.1_2r","SN-NS4","SNMB2_2r","SNMB 1406350","SNMB 1372331","ventralParaPU2_sg1r","SNpyg 1354533","interparaPM1_sg1l","SNtrpa_r","SNMB 1342971","notopodPUc1_sg3l","pygCirrusPBc13","SNant 1328430","SNMB2_r 1326587 ","SNMB 1325884","SN-DLSO1.0_1r","SNMB1_l 1318312","SN-DLSO_r 1315272","SNlasso_l","SNFVa_sg2l1","sensory67;SN","SNFVa_sg3r1","ventralpygPB1l","pygCirrusPU_2r post-r 1166447","SN-DLSO1.1_3l_116l","SN-DLSO3_3r","SN 1122239","SNPDF-dc_r1_DLSO1.1_4r","SNnuch_r13 ","SNPDF-dc_l1_DLSO1.1_4l"]},{"peak":0.8756661377847195,"step":41,"cells":["SNaant_1r","SNaant_3r","SN-DLSO2_necklace-l","SN-NS18_r","ventralParaPB2_sg1r","SN-NS5_l","SNaant_2l; SN_38","SN-WLD_1r","SN-ASTC_1l","SN-DLSO_r2","pygPBunp","SNadNS22_r","SN-DLSO3_3l","SN-NS19_r","antenna_right8;SN","antPUc_3r; SN","neuropodPUc2_sg2l","neuropodPUc1_sg2l","ventralTeloPUc_2l","SN-DLSO2_necklace-r","SNnuch_r19","SNMB2_4l","SN-DLSO_l3","spinPU3_sg3l","SNpyg 1354533","interparaPM1_sg1l","SNMB 1342971","dorsalTeloPUc_1r","SNhorn_r","SNant 1328430","SNMB2_r 1326587 ","SN HC 1325683","SN-DSO20","SN-DLSO_r1","SNtorii_l","SNMB 1316425","SN 1310017","SNnuch_r9","SNMB 1302664","SNMB 1299042","SNMB2_3l","pygCirrusMSPUc2r pygidium 1279526","SNFVa_sg3r1","SN-DLSO3-PDF_l","SN-DLSO1.3_2l","SN-DLSO1.1_3l_116l","SN-DLSO1.4_1l","MS3_l","SNnuch_l3","SN28r","SNnuch_l8 ","SNnuch_l2 ","SNbicil_l"]},{"peak":0.8705556226583818,"step":39,"cells":["SN 839187","SN-DLSO_r5","SN-IRP2-FMRF","SN-DLSO_l1","SN-NS16_r","SN-DLSO2l","SN-NS1_l","SN-LSO_r; INintr2","SNbicil_r","SNMB4_l 1374501","SN-sg0l 1732520","spinPB2_sg2l","notopodPUc1_sg1r","SN-sg2l","antPUc_3r; SN","hPUc_3r; SN","SNMB 1374585","antPUc_1r; SN","notopodPUc1_sg1l (deprecatedMNperif) 1588420","ventralTeloPUc_1l","SN-sg3r 1449611","SN-NS4","SN-YF5cil","dorsalParaPUc1_sg2l","spinPB2_sg3l","SNPDF-pyg_l","SNgolden_r","SN-DSO7","SN-sg3r 1370204","ventralParaPB1_sg1r","ventralParaPU1_sg1l","SNMB 1355912 ","ventralTeloPUc_2r","pygCirrusPU_5r","dorsalTeloPUc_1r","SN-DSO1","SNmus_r","SNnuchBx_r","SN-NS1_r","SNMB2_1l","hPBc1r","pygCirrusPU_c1r_Hair_cell pygidium 1279544","pygCirrusMSPUc2r pygidium 1279526","pygCirrusPU_4r","SNhook_r","SN 1070398","ventralpostParaPUc2_sg2l1","SNblunt_r","SNMB 1209703","SN-DLSO1.3_4l_DLSOl11","SNnuch_l8 ","SN-DLSO_l2","SNnuch_r13 "]},{"peak":0.8720538235890368,"step":43,"cells":["SN-IRP2-burs","SN-DLSO1.1NP_r","SN-DLSO1.2_2r_DLSOr9","SNMB 497209","SN-MIP1_r","SN-NS29_r","SN-WLD_1r","SN-DLSO_r10","SN-DLSO2_1l","SN-DLSO_r6","SN-NS5_r","SN-DLSO3_5l2","SN-NS19_r","SNbicil_r","hCirrusPU_1l","ventralParaPB2_sg2l_PKD2-1+","hPUc_3l; SN","ventraltrunkPB1_sg2l","interparaPM1_sg2l","SNMB2_2l","MS1","notopodPUc1_sg1l (deprecatedMNperif) 1588420","hCirrusPU_c1r","SNbronto_r","SN 1415538","neuropodPUc1_sg1r; SN","SN-DLSO_l3","SNgolden_r","SNMB 1374632","SNMB 1355428","ventraltrunkPB1_sg1l","SNstiff_pstl2","SN-DSO1","SNMB 1326922","SNMB2_r 1326587 ","SNbicilDhead_r","SNMB3_r 1325844","SN HC 1325701","SNpalp 1325626","SNantimp 1322646","SN-DLSO_r1","SNnuch_r3","dsoPUc1unp","pygCirrusPU_c1r_Hair_cell pygidium 1279544","pygCirrusPU_c3r_SC pygidium 1279509","dorsalParaPB2_sg2l","SNlasso_r","SN-NS18_l","SN-DLSO_r 1123965","SNnuch_l8 ","SNnuch_r13 ","SNnuch_r1 ","SNnuch_l12 ant "]},{"peak":0.8745088628493249,"step":36,"cells":["SNMB 758790","SNMB3_l 669559","ventralParaPB2_sg1r","SNaant_2l; SN_38","SNgolden_l","SN-NS19_l","SN-NS20_l","SN68_r","spinPB2_sg2l","SNbronto_l","interparaPU1_sg2l","hPUc_2l; SN","ventralpostParaPUc1_sg1r","ventralParaPU2_sg2r","dorsalTeloPUc_1l","neuropodPUc1_sg3l","SN-DLSO1.3_1l","SN-NS4","neuropodPUc1_sg1r; SN","SN-NS27_r","spinPB2_sg3r","spinPB2_sg3l","SNMB 1374632","SNMB 1372331","ventralParaPB1_sg1l","ventralParaPB1_sg2l","SNMB 1355912 ","spinPB1_sg3l","ventralTeloPUc_2r","ventralTeloPB1r","pygCirrusPU_5r","SNpyg 1335846_putPU","SNpyg_l 1335833","SN-DSO1","SNmus_r","SNant 1329667","SNant 1328430","SNbicilDhead_r","SNMB 1318326","SNantlerPDF_l","SNMB ventral head r 1285843","SN-NS1_r","SN-NS15_r","hPU1_r; SN","hPBc1r","pygCirrusPU_c3r_SC pygidium 1279509","pygCirrusPBcl4","ventralpygPB1l","SNblunt_r","SNnuch_l4","SNPDF-dc_l1_DLSO1.1_4l","SNnuch_r1 ","SNnuch_l12 ant "]},{"peak":0.8748738641540209,"step":40,"cells":["SNnuchPDF_l1","SNhook_l","SNadNS22_l","SN-DLSO1.2_5l_DLSOl10","SN-ASTC_1l","SNhead20_l","SN-WLD_1l","SNMB with bubble 2","notopodPUc1_sg1r","interparaPUc1_sg2l","SNbronto_l","interparaPU1_sg2l","ventralParaPB2_sg2l_PKD2-1+","hPUc_2l; SN","SN-DLSO2l 1639380","SN-DLSO2_necklace-r","spinPB3_sg3r","SN-NS27_l","SN-DLSO_l3","MS5_r","dorsalParaPUc1_sg2l","ventralpostParaPUc1_sg2l","SNMB 1374632","hPU2l-asymPDF","ventralParaPB1_sg1l","SNMB 1355912 ","SNpyg 1351072","SNstiff_pstl2","dorsalTeloPUc_1r","pygCirrusPBc13","SNMB3_r 1325844","SNantimp 1322646","antPUc_2l; SN","SNMB 1318326","dsoPU3unp","SNnuch_r6  ","SNnuch_r7; fork","SNhorn_l ","SN-NS17_l","pygCirrusMSPUc2r pygidium 1279526","dorsalParaPB2_sg2l","SNhook_r","ventralCirrusPB1_pygr","SN 1271929","SNnuchNS_r1","pygCirrusPU_2r post-r 1166447","SN-DLSO_l6","SNnuch_l3","SN-DLSO_l8","SNnuch_l2 ","SNnuch_r13 ","SNPDF-dc_l1_DLSO1.1_4l","SNnuch_r8 ant "]},{"peak":0.869189272634685,"step":44,"cells":["SN-DLSO2_necklace-l","SN-DLSO1.2__DLSOr11","SNadNS22_l","SNhead_l; INintl2","SN-DLSO_l1","SN-DLSO2l","SN-DLSO_r2","SNhead20_l","SNMB with bubble 2","SN-DLSO3_3l","antenna_right8;SN","SNMB4_l 1374501","hCirrusPU_1l","hPUc1_r","SNpyg 1354804","SNMB2_2l","dorsalTeloPU2l","SN 1639676","SN-DLSO2_necklace-r","SNpalp 1372849","SNpalp 1325687","SNMB 1442493","spinPB3_sg3r","SN-DLSO_l3","SNMB 1406350","SN-DLSO1.3_3l","SN-l 1391603","SNPDF-pyg_l","SNgolden_r","SN-DSO7","ventralParaPB1_sg1l","metatrochNPU1r; SN","interparaPM1_sg1l","ventralTeloPUc_2r","pygCirrusPU_5r","SNtrpa_r","SNMIP-vc_l","SNhorn_r","SNant 1328430","SNMB2_r 1326587 ","SNantimp 1322646","SNMB1_l 1318312","interparaPUc1_sg1r","dsoPUc1unp","hPU1_r; SN","SNlasso_l","ventralpostParaPUc2_sg2l1","SNblunt_r","SNstiff_sg0r2","SN-DLSO1.1_3l_116l","SN-DSO10","SNnuch_r2","SNnuch_r13 "]},{"peak":0.8732554861344397,"step":40,"cells":["SNaant_3l","SN-NS29_r","SN-NS15_l","SN28l","SNgolden_l","SN-DLSO_r6","SNstiff_sg0r1","SN-LSO_r; INintr2","SNadNS22_r","SN-NS19_r","SNbicil_r","SN-sg0l 1732520","SNbronto_l","neuropodPUc2_sg2l","hPUc_2l; SN","SNcir 1770015","ventraltrunkPB1_sg2l","MS1","neuropodPUc1_sg3l","notopodPUc1_sg1l (deprecatedMNperif) 1588420","UnicilNonP_SNpost 1175413","SNtrunk_sgl1 1582321","SNMB2_4l","SN-DLSO_l3","SNMB2_2r","spinPB2_sg3r","ventralpostParaPUc1_sg1l","SNpalp 1374125","SNMB 1367777","ventralParaPU2_sg1r","interparaPM1_sg1l","pygCirrusPBc1l","pygCirrusPBc12","SNantimp 1322646","SNMB 1318326","SN-DLSO_r 1315272","SNnuch_r3","SNMB 1299042","SNMB 1293405","SNasym_l","hPU1_r; SN","SNFVa_sg3r1","dorsalParaPB2_sg2l","SN-DSO6","SNMB 1209703","MS3_r","SN-DLSO3_5r2","SN-DLSO1.3_4l_DLSOl11","SNnuch_l3","SN-DLSO_r 1123965","SN-DLSO_l8","SNnuch_r1 ","SNnuch_l12 ant "]},{"peak":0.8748599356040359,"step":38,"cells":["SNaant_1r","SNaant_3l","SNMB 758790","antPUc_1l; SN","SN-DLSO3-PDF_dcr2","SNaant_2l; SN_38","SNgolden_l","SN-DLSO_r6","SNant_r 1959493","antPUc_4r; SN","SNstiff_sg0l1","dorsalParaPU1_sg2r","hPUc1_l","SN-DLSO2_necklace-r","SNMB 1406350","SN-DLSO1.3_3l","MS5_r","spinPB2_sg3r","spinPU3_sg3l","ventralpostParaPUc1_sg2l","SNMB 1367777","ventralParaPB1_sg1l","ventralParaPU1_sg1r","ventraltrunkPB1_sg1l","SNstiff_pstl2","pygCirrusPU_5r","SNtrpa_r","dorsalTeloPB1r","SNMIP-vc_l","SNMB2_3r","SNMB2_r 1326587 ","SN 1323537","antPUc_2l; SN","SNtorii_l","SNnuch_r12 ","SNMB 1302664","SNantlerPDF_l","SNhorn_l ","SNMB 1293405","SNasym_l","SN-NS29_l","SNMB2_3l","SNlasso_l","SNFVa_sg2l1","sensory67;SN","SNhook_r","ventralpygPB1l","SN-DLSO3-PDF_l","SN-DLSO_l6","SN-DLSO1.0_1l","SN-DLSO_l2","SNnuch_l2 ","SNnuch_r1 "]}]},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"touch-startle","version":1,"kind":"touch-startle","registered":"2026-09-26","title":"Touch and startle","question":"Does touch reach the startle muscles?","stimulus":"A fresh worm at rest gets a drive of 0.5 into all 53 touch sensors for 10 steps (1/3 s). Touch sensors = the cells with the touch role (collar receptors and chaetal mechanosensors) minus 4 eyespot photoreceptors (eyespot-PRCR1/3) that carry the touch role only because the naming rule matches the \"CR\" in \"PRCR\". For comparison, fresh worms get exactly the same drive into 53 other sensory neurons: sensory cells that are not photoreceptors, not non-directional light sensors and not touch sensors, and have at least one outgoing synapse, drawn at random by seed; 10 separate draws.","measure":"The peak, over the 90 steps (3 s) from onset, of st: the mean activity of the 192 startle muscles (chaetal, acicular and oblique muscles). Touch response = that peak for the touch sensors. Other-sensory response = the mean of the 10 draws' peaks.","control":"Within the real wiring: the 10 other-sensory draws. Wiring control, with the touch stimulus: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.","rule":"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","chosen":[{"name":"drive","value":0.5,"why":"modest: half the strongest eye drive and below a poke (1.2), so the whole body is not simply saturated"},{"name":"drive time","value":"10 steps (1/3 s)","why":"a brief touch, about as much total drive as one poke"},{"name":"window","value":"90 steps (3 s)","why":"the touch plus time for activity to cross several synapses and settle"},{"name":"touch cells","value":"touch role minus the 4 eyespot photoreceptors (53 cells)","why":"those 4 are photoreceptors mislabelled by a name rule, not touch sensors"},{"name":"comparison cells","value":"53 other sensory neurons with at least one outgoing synapse, 10 seeded draws","why":"same number of cells as the touch sensors; cells with no outgoing synapse could not pass anything on; 10 draws so one lucky draw cannot decide it"},{"name":"specificity factor","value":2,"why":"touch should beat other senses clearly, not marginally"},{"name":"scrambles","value":50,"why":"enough for a 95th percentile; the whole lab stays a few seconds of CPU"},{"name":"swaps per scramble","value":"10 × connections","why":"the usual amount for Maslov–Sneppen shuffling"},{"name":"seed","value":20260926,"why":"fixed in advance: the date the protocols were written"},{"name":"pass threshold","value":"95th percentile of the scrambles","why":"the conventional 5% level"}],"caveats":["Every synapse is modelled as excitatory, so all sensory input tends to spread; the other-sensory comparison is there to show whether touch is special."],"seed":20260926,"params":{"drive":0.5,"onSteps":10,"windowSteps":90,"otherDraws":10,"ratio":2,"touchExcludesEyes":true,"scrambles":50,"swapsPerEdge":10,"percentile":95}}},{"id":"light-latency","version":1,"title":"Light to muscle","question":"How long does light take to reach a muscle?","rule":"No pass rule: measured and published whatever it is. Percentile = the share of scrambles with a shorter latency (ties count half); a scramble with no response counts as slower than any response. Mean, sd and p95 of the scrambles are over the ones that responded.","verdict":"measured","summary":"The first muscle (MUSlongV_sg0r4) crossed 0.05 9 steps after light onset (300 ms of model time); the 50 of 50 scrambles that responded took 2.02 steps on average (sd 0.141).","real":{"steps":9,"ms":300,"firstMuscle":"MUSlongV_sg0r4"},"control":{"n":50,"mean":2.02,"sd":0.1414213562373095,"p95":2,"min":2,"max":3,"values":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2],"responded":50},"percentile":100,"p":null,"details":{"controlMs":{"mean":67.33333333333333,"p95":66.66666666666667},"muscles":275,"stepsPerSecond":30},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"light-latency","version":1,"kind":"light-latency","registered":"2026-09-26","title":"Light to muscle","question":"How long does light take to reach a muscle?","stimulus":"A fresh worm at rest gets a constant drive of 1.0 into all 26 photoreceptors (both sides), held until a muscle responds or for at most 150 steps (5 s).","measure":"Latency: the number of steps from light onset until any body-wall or startle muscle (275 cells) first has activity above 0.05, the site's firing threshold; also in milliseconds at 30 steps per second. No muscle above 0.05 within 150 steps = no response.","control":"Wiring control: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.","rule":"No pass rule: measured and published whatever it is. Percentile = the share of scrambles with a shorter latency (ties count half); a scramble with no response counts as slower than any response. Mean, sd and p95 of the scrambles are over the ones that responded.","chosen":[{"name":"drive","value":1,"why":"the most a message can give one photoreceptor on the site"},{"name":"longest wait","value":"150 steps (5 s)","why":"far longer than a message takes to excite the body"},{"name":"response threshold","value":0.05,"why":"the same threshold the site uses for \"firing\""},{"name":"scrambles","value":50,"why":"enough for a 95th percentile; the whole lab stays a few seconds of CPU"},{"name":"swaps per scramble","value":"10 × connections","why":"the usual amount for Maslov–Sneppen shuffling"},{"name":"seed","value":20260926,"why":"fixed in advance: the date the protocols were written"}],"caveats":["A step is the model's time unit (1/30 s on the site); the milliseconds are model time, not measured larval physiology."],"seed":20260926,"params":{"drive":1,"maxSteps":150,"threshold":0.05,"scrambles":50,"swapsPerEdge":10}}},{"id":"alphabet","version":1,"title":"The alphabet","question":"Which glyph's light pattern fires the most cells?","rule":"No pass rule: measured. Published as a ranking (top 10, bottom 10 and every value), ties in glyph order. The only claim is which glyph's light pattern fires the most cells in this model; the worm does not read letters.","verdict":"measured","summary":"\"█\" × 3 fired the most cells (326); space the fewest (0). Rank correlation between a glyph's lit pixels and its peak: 0.976.","real":{"top":[{"rank":1,"glyph":"█","code":"U+2588","peak":326,"ink":432,"flood":0,"steps":95},{"rank":2,"glyph":"#","code":"U+0023","peak":325,"ink":351,"flood":0,"steps":107},{"rank":3,"glyph":"@","code":"U+0040","peak":325,"ink":405,"flood":0,"steps":114},{"rank":4,"glyph":"M","code":"U+004D","peak":325,"ink":363,"flood":0,"steps":109},{"rank":5,"glyph":"B","code":"U+0042","peak":324,"ink":291,"flood":0,"steps":96},{"rank":6,"glyph":"Q","code":"U+0051","peak":321,"ink":288,"flood":0,"steps":103},{"rank":7,"glyph":"W","code":"U+0057","peak":321,"ink":381,"flood":0,"steps":117},{"rank":8,"glyph":"8","code":"U+0038","peak":320,"ink":285,"flood":0,"steps":94},{"rank":9,"glyph":"G","code":"U+0047","peak":320,"ink":279,"flood":0,"steps":102},{"rank":10,"glyph":"N","code":"U+004E","peak":318,"ink":285,"flood":0,"steps":100}],"bottom":[{"rank":87,"glyph":"-","code":"U+002D","peak":214,"ink":63,"flood":0,"steps":93},{"rank":88,"glyph":";","code":"U+003B","peak":195,"ink":63,"flood":0,"steps":91},{"rank":89,"glyph":"\"","code":"U+0022","peak":191,"ink":48,"flood":0,"steps":93},{"rank":90,"glyph":":","code":"U+003A","peak":185,"ink":54,"flood":0,"steps":92},{"rank":91,"glyph":",","code":"U+002C","peak":176,"ink":39,"flood":0,"steps":94},{"rank":92,"glyph":"`","code":"U+0060","peak":173,"ink":24,"flood":0,"steps":95},{"rank":93,"glyph":"_","code":"U+005F","peak":171,"ink":33,"flood":0,"steps":98},{"rank":94,"glyph":".","code":"U+002E","peak":159,"ink":27,"flood":0,"steps":94},{"rank":95,"glyph":"'","code":"U+0027","peak":154,"ink":24,"flood":0,"steps":94},{"rank":96,"glyph":" ","code":"U+0020","peak":0,"ink":0,"flood":0,"steps":78}],"all":[{"rank":1,"glyph":"█","code":"U+2588","peak":326,"ink":432,"flood":0,"steps":95},{"rank":2,"glyph":"#","code":"U+0023","peak":325,"ink":351,"flood":0,"steps":107},{"rank":3,"glyph":"@","code":"U+0040","peak":325,"ink":405,"flood":0,"steps":114},{"rank":4,"glyph":"M","code":"U+004D","peak":325,"ink":363,"flood":0,"steps":109},{"rank":5,"glyph":"B","code":"U+0042","peak":324,"ink":291,"flood":0,"steps":96},{"rank":6,"glyph":"Q","code":"U+0051","peak":321,"ink":288,"flood":0,"steps":103},{"rank":7,"glyph":"W","code":"U+0057","peak":321,"ink":381,"flood":0,"steps":117},{"rank":8,"glyph":"8","code":"U+0038","peak":320,"ink":285,"flood":0,"steps":94},{"rank":9,"glyph":"G","code":"U+0047","peak":320,"ink":279,"flood":0,"steps":102},{"rank":10,"glyph":"N","code":"U+004E","peak":318,"ink":285,"flood":0,"steps":100},{"rank":11,"glyph":"0","code":"U+0030","peak":317,"ink":258,"flood":0,"steps":97},{"rank":12,"glyph":"D","code":"U+0044","peak":315,"ink":264,"flood":0,"steps":99},{"rank":13,"glyph":"g","code":"U+0067","peak":315,"ink":255,"flood":0,"steps":97},{"rank":14,"glyph":"5","code":"U+0035","peak":314,"ink":261,"flood":0,"steps":94},{"rank":15,"glyph":"6","code":"U+0036","peak":314,"ink":261,"flood":0,"steps":94},{"rank":16,"glyph":"b","code":"U+0062","peak":314,"ink":258,"flood":0,"steps":96},{"rank":17,"glyph":"&","code":"U+0026","peak":313,"ink":282,"flood":0,"steps":103},{"rank":18,"glyph":"p","code":"U+0070","peak":313,"ink":249,"flood":0,"steps":96},{"rank":19,"glyph":"O","code":"U+004F","peak":312,"ink":264,"flood":0,"steps":102},{"rank":20,"glyph":"R","code":"U+0052","peak":312,"ink":255,"flood":0,"steps":94},{"rank":21,"glyph":"d","code":"U+0064","peak":312,"ink":255,"flood":0,"steps":97},{"rank":22,"glyph":"q","code":"U+0071","peak":311,"ink":243,"flood":0,"steps":97},{"rank":23,"glyph":"9","code":"U+0039","peak":310,"ink":249,"flood":0,"steps":94},{"rank":24,"glyph":"3","code":"U+0033","peak":309,"ink":240,"flood":0,"steps":94},{"rank":25,"glyph":"a","code":"U+0061","peak":308,"ink":228,"flood":0,"steps":97},{"rank":26,"glyph":"H","code":"U+0048","peak":307,"ink":252,"flood":0,"steps":97},{"rank":27,"glyph":"E","code":"U+0045","peak":303,"ink":228,"flood":0,"steps":90},{"rank":28,"glyph":"K","code":"U+004B","peak":303,"ink":234,"flood":0,"steps":95},{"rank":29,"glyph":"2","code":"U+0032","peak":302,"ink":216,"flood":0,"steps":91},{"rank":30,"glyph":"$","code":"U+0024","peak":302,"ink":237,"flood":0,"steps":93},{"rank":31,"glyph":"S","code":"U+0053","peak":301,"ink":216,"flood":0,"steps":93},{"rank":32,"glyph":"m","code":"U+006D","peak":301,"ink":303,"flood":0,"steps":111},{"rank":33,"glyph":"%","code":"U+0025","peak":300,"ink":267,"flood":0,"steps":107},{"rank":34,"glyph":"w","code":"U+0077","peak":300,"ink":285,"flood":0,"steps":110},{"rank":35,"glyph":"4","code":"U+0034","peak":297,"ink":225,"flood":0,"steps":97},{"rank":36,"glyph":"U","code":"U+0055","peak":297,"ink":228,"flood":0,"steps":97},{"rank":37,"glyph":"Z","code":"U+005A","peak":297,"ink":204,"flood":0,"steps":91},{"rank":38,"glyph":"k","code":"U+006B","peak":297,"ink":225,"flood":0,"steps":92},{"rank":39,"glyph":"X","code":"U+0058","peak":296,"ink":219,"flood":0,"steps":96},{"rank":40,"glyph":"A","code":"U+0041","peak":294,"ink":234,"flood":0,"steps":101},{"rank":41,"glyph":"h","code":"U+0068","peak":294,"ink":222,"flood":0,"steps":93},{"rank":42,"glyph":"P","code":"U+0050","peak":293,"ink":213,"flood":0,"steps":92},{"rank":43,"glyph":"C","code":"U+0043","peak":292,"ink":228,"flood":0,"steps":100},{"rank":44,"glyph":"e","code":"U+0065","peak":289,"ink":207,"flood":0,"steps":96},{"rank":45,"glyph":"u","code":"U+0075","peak":288,"ink":204,"flood":0,"steps":97},{"rank":46,"glyph":"o","code":"U+006F","peak":287,"ink":198,"flood":0,"steps":96},{"rank":47,"glyph":"s","code":"U+0073","peak":287,"ink":189,"flood":0,"steps":91},{"rank":48,"glyph":"n","code":"U+006E","peak":285,"ink":195,"flood":0,"steps":93},{"rank":49,"glyph":"V","code":"U+0056","peak":281,"ink":207,"flood":0,"steps":101},{"rank":50,"glyph":"=","code":"U+003D","peak":279,"ink":180,"flood":0,"steps":96},{"rank":51,"glyph":"F","code":"U+0046","peak":278,"ink":186,"flood":0,"steps":90},{"rank":52,"glyph":"z","code":"U+007A","peak":277,"ink":165,"flood":0,"steps":90},{"rank":53,"glyph":"c","code":"U+0063","peak":270,"ink":174,"flood":0,"steps":93},{"rank":54,"glyph":"y","code":"U+0079","peak":268,"ink":189,"flood":0,"steps":98},{"rank":55,"glyph":"x","code":"U+0078","peak":265,"ink":180,"flood":0,"steps":95},{"rank":56,"glyph":"7","code":"U+0037","peak":262,"ink":159,"flood":0,"steps":91},{"rank":57,"glyph":"v","code":"U+0076","peak":262,"ink":168,"flood":0,"steps":96},{"rank":58,"glyph":"t","code":"U+0074","peak":260,"ink":150,"flood":0,"steps":91},{"rank":59,"glyph":")","code":"U+0029","peak":259,"ink":156,"flood":0,"steps":91},{"rank":60,"glyph":"f","code":"U+0066","peak":258,"ink":144,"flood":0,"steps":91},{"rank":61,"glyph":"Y","code":"U+0059","peak":257,"ink":168,"flood":0,"steps":98},{"rank":62,"glyph":"^","code":"U+005E","peak":257,"ink":159,"flood":0,"steps":95},{"rank":63,"glyph":"(","code":"U+0028","peak":256,"ink":147,"flood":0,"steps":90},{"rank":64,"glyph":"\\","code":"U+005C","peak":256,"ink":141,"flood":0,"steps":91},{"rank":65,"glyph":"?","code":"U+003F","peak":255,"ink":150,"flood":0,"steps":91},{"rank":66,"glyph":"[","code":"U+005B","peak":253,"ink":156,"flood":0,"steps":90},{"rank":67,"glyph":"}","code":"U+007D","peak":252,"ink":162,"flood":0,"steps":91},{"rank":68,"glyph":"]","code":"U+005D","peak":251,"ink":156,"flood":0,"steps":92},{"rank":69,"glyph":"J","code":"U+004A","peak":250,"ink":144,"flood":0,"steps":93},{"rank":70,"glyph":"T","code":"U+0054","peak":250,"ink":162,"flood":0,"steps":92},{"rank":71,"glyph":"/","code":"U+002F","peak":248,"ink":144,"flood":0,"steps":91},{"rank":72,"glyph":"{","code":"U+007B","peak":248,"ink":159,"flood":0,"steps":91},{"rank":73,"glyph":"1","code":"U+0031","peak":246,"ink":132,"flood":0,"steps":92},{"rank":74,"glyph":"L","code":"U+004C","peak":241,"ink":132,"flood":0,"steps":90},{"rank":75,"glyph":"r","code":"U+0072","peak":241,"ink":114,"flood":0,"steps":90},{"rank":76,"glyph":"+","code":"U+002B","peak":240,"ink":135,"flood":0,"steps":92},{"rank":77,"glyph":"j","code":"U+006A","peak":238,"ink":135,"flood":0,"steps":90},{"rank":78,"glyph":"|","code":"U+007C","peak":238,"ink":144,"flood":0,"steps":90},{"rank":79,"glyph":"i","code":"U+0069","peak":233,"ink":117,"flood":0,"steps":90},{"rank":80,"glyph":"l","code":"U+006C","peak":233,"ink":117,"flood":0,"steps":90},{"rank":81,"glyph":"I","code":"U+0049","peak":231,"ink":108,"flood":0,"steps":91},{"rank":82,"glyph":"!","code":"U+0021","peak":226,"ink":99,"flood":0,"steps":91},{"rank":83,"glyph":"<","code":"U+003C","peak":222,"ink":96,"flood":0,"steps":92},{"rank":84,"glyph":">","code":"U+003E","peak":222,"ink":96,"flood":0,"steps":92},{"rank":85,"glyph":"~","code":"U+007E","peak":221,"ink":90,"flood":0,"steps":94},{"rank":86,"glyph":"*","code":"U+002A","peak":218,"ink":84,"flood":0,"steps":92},{"rank":87,"glyph":"-","code":"U+002D","peak":214,"ink":63,"flood":0,"steps":93},{"rank":88,"glyph":";","code":"U+003B","peak":195,"ink":63,"flood":0,"steps":91},{"rank":89,"glyph":"\"","code":"U+0022","peak":191,"ink":48,"flood":0,"steps":93},{"rank":90,"glyph":":","code":"U+003A","peak":185,"ink":54,"flood":0,"steps":92},{"rank":91,"glyph":",","code":"U+002C","peak":176,"ink":39,"flood":0,"steps":94},{"rank":92,"glyph":"`","code":"U+0060","peak":173,"ink":24,"flood":0,"steps":95},{"rank":93,"glyph":"_","code":"U+005F","peak":171,"ink":33,"flood":0,"steps":98},{"rank":94,"glyph":".","code":"U+002E","peak":159,"ink":27,"flood":0,"steps":94},{"rank":95,"glyph":"'","code":"U+0027","peak":154,"ink":24,"flood":0,"steps":94},{"rank":96,"glyph":" ","code":"U+0020","peak":0,"ink":0,"flood":0,"steps":78}],"spearmanInkPeak":0.9760128649633197},"control":null,"percentile":null,"p":null,"details":{"glyphs":96},"scrambles":0,"registeredScrambles":0,"deviation":null,"protocol":{"id":"alphabet","version":1,"kind":"alphabet","registered":"2026-09-26","title":"The alphabet","question":"Which glyph's light pattern fires the most cells?","stimulus":"Every glyph in shared/glyphs.js (printable ASCII plus the solid block, 96 in all), each shown as a 3-character message (\"AAA\") to its own fresh worm, exactly as the site shows a message.","measure":"Peak cells firing (activity above 0.05) during the message and its aftermath: the same peak the site reports for every message. Also each glyph's lit pixels (ink) and the Spearman rank correlation between ink and peak.","control":"None. The ink correlation shows how much of the ranking is simply the amount of light.","rule":"No pass rule: measured. Published as a ranking (top 10, bottom 10 and every value), ties in glyph order. The only claim is which glyph's light pattern fires the most cells in this model; the worm does not read letters.","chosen":[{"name":"repeats","value":3,"why":"a short message, like a typical word, the same for every glyph"}],"caveats":["How a glyph is turned into light (strips of the view per photoreceptor) is a modelling choice shown on the site; real receptive fields are not in the data."],"seed":20260926,"params":{"repeat":3}}},{"id":"fatigue","version":1,"title":"Ten pokes","question":"Does the response shrink when the same spot is poked again and again?","rule":"No pass rule: measured. Any decline is the model's built-in fatigue (tauA = 40 steps, adapt = 1.5, both chosen by us), not learning or memory.","verdict":"measured","summary":"Poke 1 fired 2375 cells at its peak, poke 10 fired 194 (ratio 0.0817); with the model's fatigue switched off: 2448 → 2490 (ratio 1.02). This is the model's chosen fatigue, not learning.","real":{"cells":["dsoCR_1r; PDF","hCR1_l1; SN","dsoCR_2l; PDF","chaeMech_sg3r3","chaeMech_sg1r2","chaeMech_sg1l2"],"peaks":[2375,2484,2465,10,33,82,133,177,191,194],"st":[0.6837977399894347,0.8586899546595911,0.5622483479965013,0.000007862285882083894,4.1002569091518394e-11,0.0000862693705130493,0.0012094958710804349,0.0025710868259617805,0.003043198407491824,0.0031921043253078096],"ratio":0.08168421052631579,"stRatio":0.0046681995839254024},"control":null,"percentile":null,"p":null,"details":{"noFatigue":{"peaks":[2448,2490,2490,2490,2490,2490,2490,2490,2490,2490],"st":[0.8981027148353556,0.936415523601075,0.9364206354754666,0.9364209827035666,0.9364210075388352,0.9364210083149374,0.9364210083149374,0.9364210083149374,0.9364210083149374,0.9364210083149374],"ratio":1.017156862745098,"stRatio":1.0426658252409429},"model":{"tauA":40,"adapt":1.5}},"scrambles":0,"registeredScrambles":0,"deviation":null,"protocol":{"id":"fatigue","version":1,"kind":"fatigue","registered":"2026-09-26","title":"Ten pokes","question":"Does the response shrink when the same spot is poked again and again?","stimulus":"One fresh worm. 10 identical pokes of the same 6 touch sensors (drawn by seed from the 53 touch sensors defined in touch-startle), one every 30 steps (1 s). Each poke is a drive of 1.2 for 5 steps, the site's poke.","measure":"For each poke, within the 30 steps from its onset: the peak number of cells firing (activity above 0.05) and the peak startle-muscle activity. Ratio = the last poke's peak ÷ the first poke's peak.","control":"The same 10 pokes on a worm with the model's fatigue switched off (adapt = 0), to show how much of any change comes from fatigue.","rule":"No pass rule: measured. Any decline is the model's built-in fatigue (tauA = 40 steps, adapt = 1.5, both chosen by us), not learning or memory.","chosen":[{"name":"cells","value":"6 touch sensors, drawn by seed","why":"the most one poke on the site can touch"},{"name":"poke","value":"drive 1.2 for 5 steps","why":"the site's poke"},{"name":"pokes","value":10,"why":"enough to see a trend"},{"name":"interval","value":"30 steps (1 s)","why":"a quick but ordinary poking rhythm"},{"name":"seed","value":20260926,"why":"fixed in advance"}],"caveats":["The fatigue time constant and strength are chosen model parameters, shown on the site; nothing here is trained."],"seed":20260926,"params":{"drive":1.2,"pokeSteps":5,"cells":6,"pokes":10,"interval":30,"touchExcludesEyes":true}}},{"id":"touch-startle-v2","version":2,"title":"Touch and startle, one sensor at a time","question":"Does touch reach the startle muscles?","rule":"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","verdict":"fails","summary":"One touch sensor at a time drove the startle muscles to a mean peak of 0.01534 (1 of 53 pokes above 0.05; 1 lit up more than half the body); one other sensory neuron at a time: 0.01686 (17 of 368; 17), so touch 0.910×; scramble p95 0.002229. Fails: touch is under 2× the other senses.","real":{"touch":0.015342539913155704,"other":0.0168568540341278,"ratio":0.9101662672105799,"touchCells":53,"otherCells":368},"control":{"n":50,"mean":0.001858970048067584,"sd":0.0002562139792221452,"p95":0.0022287760761400843,"min":0.0011244094721090813,"max":0.002364047606774818,"values":[0.0017601228019976248,0.0020841636708344895,0.002067065849749687,0.0014703251458662201,0.0018498456444835678,0.0016731516330255767,0.002087156024783966,0.0016811099876365989,0.0018692677143468505,0.001691323166460136,0.0018531044813956232,0.0015398066756512532,0.002079046353396991,0.0011244094721090813,0.0015477587794178033,0.0019531348490790033,0.00222601471092653,0.0020636045731053003,0.0023055972717300833,0.0022310353749511744,0.001969447344242816,0.0021946833094033465,0.0017810263885377146,0.0016723309157533213,0.0013696317613515552,0.001847507386593386,0.001702753892977467,0.001813567273803977,0.002087626763841685,0.0021383649437271787,0.001940727315352275,0.001804934315867503,0.002065975766600048,0.0017745505908804287,0.001689898531792079,0.0018438806047321556,0.001585833346075417,0.0014892671012512043,0.0017742754302295586,0.002364047606774818,0.0016474628408920948,0.0015750265963518206,0.002052449752724694,0.002206447943081717,0.001846196131361349,0.0016635645822353192,0.002016607564756442,0.001935773848442936,0.0019228766293430013,0.0020147217434543225]},"percentile":100,"p":0.0196078431372549,"details":{"conditions":{"atLeastRatioTimesOther":false,"aboveScrambleP95":true},"touchPokes":{"reachedStartle":1,"cascades":1,"of":53,"each":[{"cell":"dsoCR_1r; PDF","peak":0.0002216522116214037,"cellsFiring":66},{"cell":"dsoCR_2r","peak":0.003375873333425261,"cellsFiring":66},{"cell":"hCR1_l1; SN","peak":0,"cellsFiring":9},{"cell":"hCR1_l2; SN","peak":0,"cellsFiring":12},{"cell":"dsoCR_2l; PDF","peak":0.0001320805968134664,"cellsFiring":20},{"cell":"hCR2_l; SN","peak":0,"cellsFiring":10},{"cell":"chaeMech_sg2l1","peak":0.0004863787326030433,"cellsFiring":19},{"cell":"chaeMech_sg2l4","peak":0.000914822521735914,"cellsFiring":5},{"cell":"antCR_3r; SN","peak":0,"cellsFiring":11},{"cell":"antCR_4r; SN","peak":0,"cellsFiring":8},{"cell":"antCR_5r; SN","peak":0,"cellsFiring":2},{"cell":"chaeMech_sg2l3","peak":0,"cellsFiring":20},{"cell":"chaeMech_sg2l2","peak":0.00012987204051266113,"cellsFiring":7},{"cell":"chaeMech_sg2r4","peak":0.016122510129889633,"cellsFiring":43},{"cell":"chaeMech_sg2r1","peak":0.011908377029612893,"cellsFiring":86},{"cell":"dsoCR_1l","peak":0,"cellsFiring":6},{"cell":"antCR_5l; SN","peak":0,"cellsFiring":5},{"cell":"chaeMech_sg3r3","peak":0.0030566295621004733,"cellsFiring":50},{"cell":"chaeMech_sg3l3","peak":0,"cellsFiring":39},{"cell":"hCR1_r; SN","peak":0,"cellsFiring":25},{"cell":"chaeMech_sg2r3","peak":0.009524823975273952,"cellsFiring":135},{"cell":"hCR2_r; SN","peak":0,"cellsFiring":48},{"cell":"chaeMech_sg1r2","peak":0.0011790932750651943,"cellsFiring":45},{"cell":"chaeMech_sg3r4","peak":0.0005120893474668264,"cellsFiring":6},{"cell":"chaeMech_sg1r1","peak":0,"cellsFiring":19},{"cell":"interparapodCR1_sg1r","peak":0.0006939096429050551,"cellsFiring":15},{"cell":"doCRunp","peak":0.00003676641911927921,"cellsFiring":11},{"cell":"chaeMech_sg3l4","peak":0.001852501614242404,"cellsFiring":29},{"cell":"chaeMech_sg3l2","peak":0.0010958020878509462,"cellsFiring":78},{"cell":"chaeMech_sg3r1","peak":0.003965946001092864,"cellsFiring":59},{"cell":"chaeMech_sg3r2","peak":0.00005482872074935585,"cellsFiring":7},{"cell":"chaeMech_sg3l1","peak":0.0007362462424680416,"cellsFiring":12},{"cell":"pygCirrusCR1_r","peak":0,"cellsFiring":13},{"cell":"chaeMech_sg1l1","peak":0,"cellsFiring":11},{"cell":"interparapodCR1_sg1l","peak":0.00020294927526265383,"cellsFiring":23},{"cell":"VentralpygCR3r","peak":0,"cellsFiring":4},{"cell":"pygCirrusCR3r","peak":0.7563264550020298,"cellsFiring":2394},{"cell":"chaeMech_sg1l2","peak":0.0004300643789368526,"cellsFiring":73},{"cell":"pygCirrusCR_2l","peak":0,"cellsFiring":10},{"cell":"hCR1_r1; antCR_1r; SN","peak":0,"cellsFiring":21},{"cell":"dsoCR_4r","peak":0,"cellsFiring":4},{"cell":"dsoCR_3r","peak":0,"cellsFiring":11},{"cell":"pygCirrusCR2_r","peak":0,"cellsFiring":13},{"cell":"pygCirrusCR1l","peak":0.0001105155857506664,"cellsFiring":17},{"cell":"VentralpygCR3l","peak":0.0000798612260647739,"cellsFiring":22},{"cell":"VentralpygCR2_l","peak":0.000004566444658848923,"cellsFiring":16},{"cell":"VentralpygCR1_r","peak":0,"cellsFiring":2},{"cell":"VentralpygCR1_l","peak":0,"cellsFiring":4},{"cell":"VentralpygCRunp","peak":0,"cellsFiring":9},{"cell":"antCR_4l; SN","peak":0,"cellsFiring":6},{"cell":"hCR3l; SN","peak":0,"cellsFiring":10},{"cell":"hCR3r; SN","peak":0,"cellsFiring":2},{"cell":"VentralpygCR2_r","peak":0,"cellsFiring":25}]},"otherPokes":{"reachedStartle":17,"cascades":17,"of":368,"peaks":[0,0,0,0,0,0,0,0,0,0,0,0,0,0.09016368871698432,0,0.05790292148183577,0,0,0.005297328153725782,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00012876531885315975,0,0,0,0,0,0,0,0,0,0,0,0.8689805357716978,0,0,0,0.0005896703175191457,0,0,0,0,0,0,0,0,0,0,0.27270211882326595,0,0,0.8726569813055297,0,0,0,0,0,0.0015069476794451475,0,0,0.00010277735418640077,0.0008055521175265312,0.0023308167001232505,0.011070563613126675,0,0,0.000007051332431728952,0.0012904183204227593,0,0.0005401642588367395,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0054155458873689595,0,0.005590428324315629,0,0,0,0,0,0.0015067653281827613,0.000504989642649889,0,0,0,0,0,0,0.002291808312293142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8650297336280346,0.000030161201152623107,0.0002484223107330763,0.0018973200155111651,0,0,0.5410317232211431,0,0,0,0,0.0027405169870083532,0,0,0,0.0010920747978768002,0,0,0.0005449357734808776,0.0004577659929054789,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002668710963916965,0,0.0007437663973348663,0.0003779930217812459,0.011476707605822867,0.000744191583483674,0,0,0,0,0.0011289647372905165,0,0.2424194438268993,0,0,0,0,0,0,0.0022609344143802446,0,0,0,0,0,0,0,0,0,0,0,0.000013117371660579616,0,0,0,0.000022690115050257493,0,0,0,0,0,0,0.5884601700430115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.34092467206937727,0,0.06806935515911998,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2591215694907684,0.0732164599259401,0,0,0,0,0.08321135538092979,0,0,0,0,0,0.00003861374473975351,0,0,0,0.0008432373310824914,0.00198783737141639,0,0.0020209777479370437,0,0,0.08086599776349128,0.067303333930757,0,0,0,0,0,0.017894443692966888,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01147981775951242,0,0,0,0.00036832918946553644,0,0,0,0,0,0,0,0,0,0,0,0,0.7282186952264359,0,0,0,0,0.0029824060062916638,0,0,0,0,0,0,0],"top":[{"cell":"SN-ASTC_1r","peak":0.8726569813055297,"cellsFiring":2461},{"cell":"SN-NS1_l","peak":0.8689805357716978,"cellsFiring":2445},{"cell":"SN-YF5cil","peak":0.8650297336280346,"cellsFiring":2443},{"cell":"SN-DLSO1.0_1l","peak":0.7282186952264359,"cellsFiring":2425},{"cell":"SNMB2_3r","peak":0.5884601700430115,"cellsFiring":2418},{"cell":"SNMB2_2r","peak":0.5410317232211431,"cellsFiring":2415},{"cell":"SNMB1_l 1318312","peak":0.34092467206937727,"cellsFiring":2365},{"cell":"SN-DLSO3_3l","peak":0.27270211882326595,"cellsFiring":2321},{"cell":"SN-NS15_r","peak":0.2591215694907684,"cellsFiring":2044},{"cell":"SNMB 1355428","peak":0.2424194438268993,"cellsFiring":2303}]}},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"touch-startle-v2","version":2,"kind":"touch-startle-single","follows":"touch-startle","registered":"2026-09-26","registeredAfter":"the touch-startle v1 result was known","why":"touch-startle v1 drove every condition to the same ceiling: touch 0.867, all 10 other-sensory draws 0.869 to 0.876, all 50 scrambles 0.860 to 0.897. Driving 53 sensors at once ignites a whole-body cascade in this all-excitatory model, so v1 could not tell touch from anything else. Its verdict (fails) stands and is published. v2 asks the same question with the smallest touch the site allows: one sensor at a time. Nothing else changes: same measure, same rule, same scrambles.","title":"Touch and startle, one sensor at a time","question":"Does touch reach the startle muscles?","stimulus":"For each of the 53 touch sensors (the same set as v1) in turn, a fresh worm at rest gets the site's poke, a drive of 1.2 for 5 steps, into that one sensor only. For comparison, the same single-cell poke into each of the 368 other sensory neurons (same definition as v1: not photoreceptors, not non-directional light sensors, not touch sensors, at least one outgoing synapse), every one of them, no sampling.","measure":"For each poke, the peak over 60 steps (2 s) from onset of st, the mean activity of the 192 startle muscles. Touch response = the mean of the 53 touch pokes' peaks. Other-sensory response = the mean of the 368 other pokes' peaks. Also reported, not used for the verdict: how many pokes of each kind take st above 0.05, and how many light up more than half of all cells.","control":"Within the real wiring: the 368 other sensory neurons. Wiring control, with the 53 single touch pokes: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.","rule":"Passes if the real touch response is at least 2× the other-sensory response AND greater than p95 of the scrambles' touch responses; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","chosen":[{"name":"poke","value":"drive 1.2 for 5 steps into one cell","why":"the site's poke on the smallest possible target, to stay below the whole-body cascade that decided v1"},{"name":"window","value":"60 steps (2 s)","why":"a 5-step poke needs less time than v1's 10-step drive (v1's touch response peaked at step 28); keeps the lab a few seconds of CPU"},{"name":"touch cells","value":"touch role minus the 4 eyespot photoreceptors (53 cells)","why":"unchanged from v1"},{"name":"comparison cells","value":"all 368 other sensory neurons with at least one outgoing synapse","why":"no sampling is needed when each cell is poked alone"},{"name":"specificity factor","value":2,"why":"unchanged from v1"},{"name":"scrambles","value":50,"why":"enough for a 95th percentile; the whole lab stays a few seconds of CPU"},{"name":"swaps per scramble","value":"10 × connections","why":"the usual amount for Maslov–Sneppen shuffling"},{"name":"seed","value":20260926,"why":"fixed in advance: the date the protocols were written"},{"name":"pass threshold","value":"95th percentile of the scrambles","why":"unchanged from v1"}],"caveats":["Registered after the v1 result was known, to remove v1's ceiling; weigh it accordingly. The v1 verdict is the one registered in advance.","Every synapse is modelled as excitatory, so all sensory input tends to spread; the other-sensory comparison is there to show whether touch is special."],"seed":20260926,"params":{"drive":1.2,"pokeSteps":5,"windowSteps":60,"ratio":2,"touchExcludesEyes":true,"reachThreshold":0.05,"scrambles":50,"swapsPerEdge":10,"percentile":95}}},{"id":"follow-the-light","version":1,"title":"Follow the light","question":"Does it swim toward a light?","rule":"Passes if the real wiring's attraction is greater than 0 AND greater than p95 of the scrambles' attractions; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","verdict":"fails","summary":"With the lamp lit the worm stayed 41.8 µm farther from it on average than with it dark (ended closer in 2 of 8 directions; closest approach 503 µm), against a scramble p95 of 49.3 µm: fails.","real":{"attraction":-0.38748913237189475,"attractionUm":-41.84688885050277,"endedCloser":2,"closestUm":503.27303207336735,"trials":[{"dir":[1,1,1],"litMeanUm":1570.850405981011,"darkMeanUm":1672.6478132861948,"closestUm":715.6926768834594,"litEndUm":1828.7947584450044,"darkEndUm":1457.3086048518285},{"dir":[1,1,-1],"litMeanUm":1830.2575999099206,"darkMeanUm":1896.8359445617189,"closestUm":891.2070579016008,"litEndUm":951.1198404331827,"darkEndUm":1728.4166597550243},{"dir":[1,-1,1],"litMeanUm":1895.8757317679826,"darkMeanUm":1654.9258689857645,"closestUm":932.4741653857022,"litEndUm":3035.7582245050803,"darkEndUm":660.9543493606691},{"dir":[1,-1,-1],"litMeanUm":1845.7215397204345,"darkMeanUm":1994.0071336453789,"closestUm":503.27303207336735,"litEndUm":1778.7634310591366,"darkEndUm":1140.410641778793},{"dir":[-1,1,1],"litMeanUm":2019.318216859967,"darkMeanUm":2019.789214002706,"closestUm":585.1035783443137,"litEndUm":3209.2127385878584,"darkEndUm":2273.6395397774118},{"dir":[-1,1,-1],"litMeanUm":2224.93781723128,"darkMeanUm":2277.31991705342,"closestUm":915.5808334425649,"litEndUm":1866.6792378232396,"darkEndUm":2456.239511281987},{"dir":[-1,-1,1],"litMeanUm":2336.1501177967307,"darkMeanUm":2007.5612192055357,"closestUm":1089.0899864440116,"litEndUm":2359.3748560122235,"darkEndUm":1866.158899719647},{"dir":[-1,-1,-1],"litMeanUm":2464.9922417917514,"darkMeanUm":2330.241449514336,"closestUm":1089.112203633097,"litEndUm":2261.8320500994178,"darkEndUm":2084.7601346309307}]},"control":{"n":50,"mean":-0.23493935248673625,"sd":0.5475835963022831,"p95":0.4563926221300746,"min":-2.191971199267894,"max":0.6593115682863708,"values":[-0.8385267916652825,0.6593115682863708,-0.16997425059840432,-0.3572543999726776,0.025501135262403496,0.10277931253860961,-0.6350279901267606,-0.5739298719363104,-0.6119276519860297,0.4486109621741521,-0.6595609208419535,-0.4366384988751677,-0.1976691558722372,-0.12371848523119033,-0.3201131664597756,-0.31445131176883345,-0.46181044899631907,-1.9460125370900396,0.14371454219307012,-2.191971199267894,0.47443199422588567,-0.2507962442218119,-0.9179650168446167,0.462759434821284,0.02016450189162522,-0.012733912606976538,-0.2603066254420745,-0.1592846824997367,-0.1446386662720045,-0.09341191845551844,0.41774889257087433,0.07176904269992757,-0.49634261144655345,0.38648401510891617,0.3395443941007432,-0.21999917314545114,0.2941022011719334,-0.7514736727208906,-0.35030801544209833,-0.12099859944664648,0.24147089820059398,-0.034336529684660944,-0.7452562053719443,-0.18174639767585,-0.3614584294429406,0.44281629754981644,-0.8159426456315768,-0.31773819567129613,-0.53443861780008,0.3295860233785852]},"percentile":30,"p":0.7058823529411765,"details":{"controlUm":{"mean":-25.37227537180508,"p95":49.288121226937406}},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"follow-the-light","version":1,"kind":"phototaxis","registered":"2026-09-26","registeredBefore":"any lamp was lit, in the lab or on the site","title":"Follow the light","question":"Does it swim toward a light?","stimulus":"A fresh worm at rest at the centre of its tank, head up. A lamp is lit 10 units (1.08 mm) away from it in one of 8 directions, the corners of a cube around the worm, and stays lit for 900 steps (30 s). The light each side of the body gets (shared/lamp.js) drives that side's 13 photoreceptors the way a message's lit strip does, min(1, 1.6 × light): each side's eyes look out sideways, a little forward and a little up, direction (±0.8, 0.5, 0.33) in the body frame; a pigment cup lets an eye see light from its own side only, as the cosine of the angle off its axis; brightness is 1 / (1 + (d / 10 units)²) at distance d. The body swims as on the site (shared/body.js), so where the worm goes changes what its eyes see: a closed loop. Each direction is also run with the lamp dark.","measure":"For each trial, the mean distance from the worm to the lamp, sampled after each of the 900 steps. Attraction = the mean over the 8 directions of (mean distance with the lamp dark − mean distance with it lit), in units; positive = the worm stayed closer to the lamp when it was lit. Also reported, not used for the verdict: the closest approach in each lit trial, and in how many of the 8 directions the worm ended the trial closer to the lit lamp than to the dark one.","control":"Within the real wiring: the same 8 trials with the lamp dark, which is the path the worm swims anyway. With no light and no other input every cell stays at 0 in any wiring, so the dark trials are the same for every wiring. Wiring control, with the 8 lit trials: the same test on 50 degree-preserving scrambles of the wiring. A scramble picks two connections a→b and c→d at random and rewires them to a→d and c→b, unless that would connect a cell to itself or duplicate an existing connection; each connection keeps its synapse count and its sending cell. Every cell keeps its number of inputs and outputs, and every sensor and muscle stays where it is; only who connects to whom is shuffled. 10 × (number of connections) successful swaps per scramble; scramble k (k = 0…49) is seeded from the protocol seed and k.","rule":"Passes if the real wiring's attraction is greater than 0 AND greater than p95 of the scrambles' attractions; otherwise fails. p95 = the 95th percentile of the 50 scramble values, by linear interpolation between the sorted values (the numpy and R default). Also reported, not used for the verdict: the percentile (share of scrambles below the real value, ties count half) and the Monte Carlo p-value (1 + scrambles at or above the real value) / (1 + scrambles).","chosen":[{"name":"lamp distance","value":"10 units (1.08 mm)","why":"about five body lengths: far enough that getting there takes swimming, near enough to be seen"},{"name":"falloff","value":"10 units","why":"at its starting distance the lamp is half as bright as up close, so a side facing it gets 0.8, a little under a fully lit message strip (1.0)"},{"name":"eye direction","value":"(±0.8, 0.5, 0.33) in the body frame","why":"the larva's eyes sit on the sides of the head, looking out, slightly forward and up; the real visual fields are not in the data"},{"name":"pigment cup","value":"cosine of the angle off the eye's axis, own side only","why":"the simplest directional eye"},{"name":"trial","value":"900 steps (30 s)","why":"how long a lamp stays lit on the site"},{"name":"directions","value":"the 8 corners of a cube","why":"evenly spread around the worm: as many above as below, left as right, ahead as behind"},{"name":"measure","value":"mean distance over the trial, lit minus dark","why":"rewards getting there and staying near; the distance at the last step alone depends on where a helical swimmer happens to be; the dark twin removes the path it swims anyway"},{"name":"scrambles","value":50,"why":"enough for a 95th percentile; the whole lab stays a few seconds of CPU"},{"name":"swaps per scramble","value":"10 × connections","why":"the usual amount for Maslov–Sneppen shuffling"},{"name":"seed","value":20260926,"why":"fixed in advance: the date the protocols were written"},{"name":"pass threshold","value":"above 0 and above the 95th percentile of the scrambles","why":"the conventional 5% level, and it has to actually get closer"}],"caveats":["The eyes' directions, the pigment cup and the falloff are ours; the real visual fields are not in the data.","Every synapse is modelled as excitatory (transmitters are unknown for most cells).","The body's physics and the tank are ours (shared/body.js); the tank's wall turns the worm back, which limits how far it can drift from any lamp in 30 s.","Real Platynereis larvae swim toward light with their eyespots and the ciliary band beside them (Jékely et al. 2008). This tests whether this model of the wiring does, not whether the animal does."],"seed":20260926,"params":{"directions":"cube","distance":10,"steps":900,"falloff":10,"eye":[0.8,0.5,0.33],"scrambles":50,"swapsPerEdge":10,"percentile":95}}}],"key":{"labVersion":1,"protocolSha256":"266cfcdabc01be49f01969d8a884cc9c5f0a51843d237b7ce7797d069cad3511","wiringSha256":"4f5cadaa7ebd42d62ba7e7b60e012809f23664177dc5b4120db227dbba2cbbfb","codeSha256":"07d4df62c3fb718fc6cf6e87ed70a8532f4837e4e2727f71230f12424f903599","scrambles":"registered"},"protocolSha256":"266cfcdabc01be49f01969d8a884cc9c5f0a51843d237b7ce7797d069cad3511","wiringSha256":"4f5cadaa7ebd42d62ba7e7b60e012809f23664177dc5b4120db227dbba2cbbfb","codeSha256":"07d4df62c3fb718fc6cf6e87ed70a8532f4837e4e2727f71230f12424f903599","protocolSha256s":{"eyes-sides":"fff039b419df072581aa6e15c691d0272fb637b391fc1ffdcc8bae1a18f694cf","touch-startle":"574083072e051795c71eaeb614bd74f7b17cdcbffa6f6710b5ccaf5ea9d202f7","light-latency":"587f57c327d8826b90140b531541f493de3e3ef114062142cedf5d699423fed5","alphabet":"fdbca930cd88209cb31aaca5d515c721acdffd08b6f9ed4c659cba6764c57fea","fatigue":"98fc71bb57a366edaf388c0a0725853256e492e33e9e1d72f1caf7788f12c593","touch-startle-v2":"8fb53810d2dde841abde3f4fdd105f9b63ec8da509190711f19ba815210bbed5","follow-the-light":"1e9494bc67a7aeafc80fef41a65a81b56d7b06f874e3a530bb6645978dd02634"},"resultsSha256":"055ac0d61cd8079ad306f064f54e969218345694aab2d977c4d670cd9cb328a1","startedAt":"2026-09-26T23:24:06.294Z","computedAt":"2026-09-26T23:24:24.526Z","workerMs":18185,"wallMs":18232}