{"labVersion":2,"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},{\"caveats\":[\"Jékely et al. 2008 describe illumination of one eyespot changing the beating of the cilia next to it, which with the larva's rotation steers it toward light.\",\"The cilia rule comes from the same lab's studies, so this checks that the wiring carries the known mechanism.\"],\"chosen\":[{\"name\":\"drive\",\"value\":1,\"why\":\"the most a message gives one photoreceptor on the site\"},{\"name\":\"light on\",\"value\":\"30 steps (1 s)\",\"why\":\"as in eyes-sides\"},{\"name\":\"window\",\"value\":\"60 steps (2 s)\",\"why\":\"the light plus 1 s\"},{\"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, in the direction the lab reports\"}],\"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. Each cell keeps its transmitter; which cholinergic and serotonergic inputs each ciliated cell has is read from each scrambled wiring.\",\"id\":\"eyespot-cilia\",\"kind\":\"eyespot-cilia\",\"measure\":\"Over the 60 steps (2 s) from onset, the mean arrest of the left ciliated cells minus the right ones, each cell's arrest by the model's cilia rule (shared/model.js). Laterality = ((left − right with left light) − (left − right with right light)) / 2; positive = the lit side's cilia stop more.\",\"params\":{\"drive\":1,\"onSteps\":30,\"percentile\":95,\"scrambles\":50,\"swapsPerEdge\":10,\"windowSteps\":60},\"question\":\"Does light on one eyespot change the cilia on its own side?\",\"registered\":\"2026-09-26\",\"registeredBefore\":\"any simulation of model v2 was run\",\"rule\":\"Passes if the real wiring's laterality is greater than 0 AND greater than p95 of the scrambles' lateralities; 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 1.0 into its left eyespot photoreceptors only (eye cells named eyespot-PRC… on the left side) for 30 steps (1 s). A second fresh worm gets the same into its right eyespot photoreceptors only.\",\"title\":\"One eyespot, one side\",\"version\":1},{\"caveats\":[\"Bezares-Calderón et al. 2018: water vibrations make larvae close their locomotor cilia and raise their parapodia, through collar receptor neurons.\",\"Every synapse outside the ciliary circuit is still modelled as excitatory.\"],\"chosen\":[{\"name\":\"drive\",\"value\":\"1.2 for 10 steps\",\"why\":\"the site's poke, long enough to cross several synapses\"},{\"name\":\"window\",\"value\":\"60 steps (2 s)\",\"why\":\"as in touch-startle v2\"},{\"name\":\"comparison\",\"value\":\"10 random groups of other sensory neurons, as many as the collar receptors\",\"why\":\"as in touch-startle v1\"},{\"name\":\"specificity factor\",\"value\":2,\"why\":\"as in the touch-startle protocols\"},{\"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\":\"every part above 2× the other senses and above the 95th percentile of the scrambles\",\"why\":\"both halves of the reflex, specifically\"}],\"control\":\"Within the real wiring: the other sensory neurons. Wiring control, with the collar receptors: 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\":\"startle-reflex\",\"kind\":\"cr-startle\",\"measure\":\"Over the 60 steps (2 s) from onset: the peak of st (the mean activity of the startle muscles) and the peak of the mean arrest of all ciliated cells (the model's cilia rule).\",\"params\":{\"drive\":1.2,\"onSteps\":10,\"otherDraws\":10,\"percentile\":95,\"ratio\":2,\"scrambles\":50,\"swapsPerEdge\":10,\"windowSteps\":60},\"question\":\"Does a vibration make it close its cilia and raise its parapodia together?\",\"registered\":\"2026-09-26\",\"registeredBefore\":\"any simulation of model v2 was run\",\"rule\":\"Passes only if the collar receptors' startle peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' startle peaks, AND their cilia-arrest peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' arrest peaks; 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 1.2 (the site's poke) for 10 steps into its collar receptor cells: sensory neurons whose name contains CR and that are not photoreceptors, the vibration sensors of Bezares-Calderón et al. 2018. For comparison, 10 fresh worms each get the same drive into as many other sensory neurons, drawn at random (not photoreceptors, not non-directional light sensors, not collar receptors or chaetal mechanosensors, with at least one outgoing synapse).\",\"title\":\"The startle reflex\",\"version\":1},{\"caveats\":[\"Verasztó et al. 2017: the synchronous rhythmic activation of cholinergic cells drives the coordinated arrests of all cilia.\",\"Registered after seeing which ciliated cells get cholinergic input (the metatroch gets none), not after any simulation.\"],\"chosen\":[{\"name\":\"burst\",\"value\":\"drive 1.0 into MC for 60 steps\",\"why\":\"the model's rhythm burst\"},{\"name\":\"stopped\",\"value\":\"arrest above 0.5\",\"why\":\"more stopped than beating\"},{\"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\":\"Reported for context, not a verdict: 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\":\"stop-and-go\",\"kind\":\"mc-burst\",\"measure\":\"Over 90 steps (3 s) from onset, the largest share of ciliated cells stopped at once (arrest above 0.5), overall and for each band (prototroch, paratrochs, akrotroch, metatroch).\",\"params\":{\"drive\":1,\"onSteps\":60,\"percentile\":95,\"scrambles\":50,\"stopped\":0.5,\"swapsPerEdge\":10,\"windowSteps\":90},\"question\":\"When the rhythm's MC cell bursts, how much of the ciliary band stops together?\",\"registered\":\"2026-09-26\",\"registeredBefore\":\"any simulation of model v2 was run\",\"rule\":\"Measured, no pass rule.\",\"seed\":20260926,\"stimulus\":\"A fresh worm at rest gets the model's rhythm burst: a drive of 1.0 into the MC cell for 60 steps (2 s).\",\"title\":\"Stop and go\",\"version\":1}]","model":{"id":"model-v2","strength":0.03226,"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":"passes","summary":"Lateralization 0.006163 (ciliary bands 0.006128, more active on the lit side; body-wall muscles 0.00003473, more active on the lit side) against a scramble p95 of 0.003527: passes.","real":{"lateralization":0.0061627999025006455,"L_cil":0.006128069327722128,"L_bend":0.00003473057477851728,"movers":0.0007463406079854294,"leftLight":{"cil":0.0028582371370062514,"bend":-0.00010843458051077636,"movers":0.0007018323505153265},"rightLight":{"cil":-0.0032698321907158765,"bend":-0.00014316515528929363,"movers":0.0007908488654555322}},"control":{"n":50,"mean":0.0011240699235381389,"sd":0.0011177778764573487,"p95":0.003526566241105421,"min":0,"max":0.0043725295513936425,"values":[0.0013047865302806307,0.0000523447027147256,0,0.0010690154186500324,0.0006629549246602212,0.0007073818737381794,0.0016566231538624676,0.0043725295513936425,0.003102989885725084,0.00153508004338287,0.0038731287136893368,0.0015446364337305925,0.000835921240990047,0.00027491581088772175,0.0001696707101769864,0.00026815525363414646,0.0001987138565562292,0.0020832707241372917,0.0012945300377056493,0.0028337908579894955,0.002284741515057704,0.0010970865683481031,0.00025727552739448573,0.0006202551319071009,0,0.0009857306779149533,0.0013709716160429592,0.0019056926179821184,0.0002458728467862447,0.00008774920137114215,0.00016263869667260258,0.0012305920384768482,0,0.0008730529834567067,0.00003607271282570228,0.000031313417632151006,0.0006720176982345156,0.00008427761269146169,0.0016454879957126353,0,0.0002646265482756262,0.000755838092585943,0.0012807372135134171,0.0001959830814605561,0.001990859075573718,0.0005275530056139716,0.0014094589828082841,0.0019610901938276687,0.0020242898489702425,0.004361791551864747]},"percentile":100,"p":0.0196078431372549,"details":{"parts":{"L_cil":{"real":0.006128069327722128,"realAbs":0.006128069327722128,"side":"the lit side","controlAbs":{"n":50,"mean":0.0006495034568220212,"sd":0.0007930393335368982,"p95":0.002274777493447384,"min":0,"max":0.003071676468092933,"values":[0.0011811411760850176,0,0,0.0010657731507159522,0.0006629549246602212,0.00034479520380133037,0,0.0022845238622961382,0.003071676468092933,0.0006043006653422041,0.0027759764423281267,0.0006774753353308836,0.000835921240990047,0,0.0001696707101769864,0.000045600789055205,0.00014484192741709653,0.00019258609868759712,0.0012945300377056493,0.0008038376159610574,0.000835921240990047,0.0010657731507159522,0,0.0006202551319071009,0,0.0008774967978255394,0.0012945300377056493,0.000835921240990047,0.0001503549594073487,0.000042621040665983314,0,0.0000741562996719883,0,0.0008730529834567067,0.00003607271282570228,0,0.00041681200548538224,0,0.0016454879957126353,0,0.000042621040665983314,0.0000571663446387468,0.000042621040665983314,0.000042621040665983314,0.0002595531224693638,0.0003741909648193989,0.0004930524864807891,0.0019610901938276687,0.0020153300960061515,0.002262865264854462]},"percentile":100,"aboveP95":true},"L_bend":{"real":0.00003473057477851728,"realAbs":0.00003473057477851728,"side":"the lit side","controlAbs":{"n":50,"mean":0.00047456646671611806,"sd":0.0006666401132524768,"p95":0.0019672823645680033,"min":0,"max":0.0020989262870102854,"values":[0.00012364535419561305,0.0000523447027147256,0,0.0000032422679340801604,0,0.0003625866699368491,0.0016566231538624676,0.0020880056890975047,0.000031313417632151006,0.0009307793780406659,0.0010971522713612103,0.000867161098399709,0,0.00027491581088772175,0,0.00022255446457894148,0.00005387192913913266,0.0018906846254496945,0,0.0020299532420284382,0.0014488202740676566,0.000031313417632151006,0.00025727552739448573,0,0,0.00010823388008941395,0.00007644157833730984,0.0010697713769920714,0.00009551788737889602,0.000045128160705158835,0.00016263869667260258,0.0011564357388048599,0,0,0,0.000031313417632151006,0.0002552056927491333,0.00008427761269146169,0,0,0.00022200550760964288,0.0006986717479471962,0.0012381161728474339,0.00015336204079457278,0.0017313059531043544,0.00015336204079457268,0.000916406496327495,0,0.00000895975296409123,0.0020989262870102854]},"percentile":36,"aboveP95":false}},"movers":{"real":0.0007463406079854294,"control":{"n":50,"mean":0.00017116292824205813,"sd":0.00015688859599469247,"p95":0.0004990265181741061,"min":0,"max":0.000516406995510659,"values":[0.00016879142591346411,0.000008273840106521145,0,0.00012427969211143287,0.00024436643024247406,0.00008903534020762306,0.00018169415235910942,0.0004943066208773428,0.00036166035585587453,0.0004552405089315669,0.00045108820262439446,0.000516406995510659,0.00009707472476013449,0.000043454434624188325,0.000019703695375391987,0.00008076104409613936,0.00002533559327365475,0.00026289483078535886,0.0001503325205077528,0.000406542310238616,0.0003260818003385706,0.00012871674480564407,0.00003744435251959643,0.00017550478097707388,0,0.00022072608439324502,0.0001602316009204973,0.00021440448868829723,0.00004582347213225412,0.000009899080412744515,0.00004787368702864354,0.00023981479072434297,0,0.00011128587849158799,0.000005709991181372632,0.000004949540206372258,0.0005084263549531011,0.000046962005793266354,0.00020805992654191523,0,0.000040040733344670643,0.00011707388405292742,0.00020065177397903122,0.000021769893067712492,0.0002200268219820811,0.00007017386789827305,0.00015928197307395328,0.00031762736112137636,0.00023545455274665136,0.0005028882523260034]}}},"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.0007687 (step 12); 10 draws of other sensory neurons averaged 0.000; scramble p95 0.002529. Fails: touch does not beat the scramble p95.","real":{"touch":0.0007687229372095317,"touchPeakStep":12,"other":0,"ratio":null,"touchCells":53},"control":{"n":50,"mean":0.0009507302415446852,"sd":0.0007430967657338351,"p95":0.002528936959447491,"min":0.00007218790415208787,"max":0.003205094845422233,"values":[0.000780672809923999,0.0011039862341325108,0.00121205134352446,0.0003449528230703436,0.001186889629025245,0.001684030886584272,0.0008337737453985028,0.00007218790415208787,0.0016736014658818021,0.00009309619902827156,0.0003884064305263261,0.000198601455243382,0.0014536232856698916,0.00018768516990045706,0.00036621300629728165,0.0013265394857929398,0.000996093998158661,0.0004307418591148841,0.001445304859468403,0.0004032074781813814,0.00211516123090405,0.000488936956874871,0.00047574731676528853,0.0008736961153772427,0.0001812244784863045,0.0006105858531858152,0.0008110290897699693,0.00019102353447427353,0.002326636022189632,0.002830374241360308,0.0011808438963877659,0.0026944559081130137,0.0010445560522687931,0.000624412830802612,0.0006044084827105204,0.00017183510741839805,0.0004178271725929032,0.0008898216571348408,0.0007500127297438061,0.0010313811668917576,0.00042662227497203276,0.0005593119076365838,0.003205094845422233,0.0008990361190323407,0.0011363100751016948,0.002319151632642994,0.0003597098669464079,0.00037124098647230613,0.0008957231960569819,0.0008686812604234243]},"percentile":46,"p":0.5490196078431373,"details":{"conditions":{"atLeastRatioTimesOther":true,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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,"step":0,"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_sg1r10) crossed 0.05 7 steps after light onset (233 ms of model time); the 41 of 50 scrambles that responded took 3.71 steps on average (sd 1.44).","real":{"steps":7,"ms":233.33333333333334,"firstMuscle":"MUSlongV_sg1r10"},"control":{"n":50,"mean":3.707317073170732,"sd":1.4360345127994727,"p95":7,"min":3,"max":10,"values":[10,null,3,3,4,4,3,3,8,3,4,3,null,3,3,3,4,3,null,3,3,null,null,7,3,4,3,4,3,4,4,3,null,4,null,3,3,3,3,4,3,4,3,null,3,3,4,4,null,3],"responded":41},"percentile":77,"p":null,"details":{"controlMs":{"mean":123.57723577235772,"p95":233.33333333333334},"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 (41); \"_\" the fewest (0). Rank correlation between a glyph's lit pixels and its peak: 0.980.","real":{"top":[{"rank":1,"glyph":"@","code":"U+0040","peak":41,"ink":405,"flood":0,"steps":114},{"rank":2,"glyph":"#","code":"U+0023","peak":38,"ink":351,"flood":0,"steps":107},{"rank":3,"glyph":"M","code":"U+004D","peak":38,"ink":363,"flood":0,"steps":109},{"rank":4,"glyph":"W","code":"U+0057","peak":38,"ink":381,"flood":0,"steps":117},{"rank":5,"glyph":"%","code":"U+0025","peak":35,"ink":267,"flood":0,"steps":107},{"rank":6,"glyph":"m","code":"U+006D","peak":35,"ink":303,"flood":0,"steps":111},{"rank":7,"glyph":"&","code":"U+0026","peak":34,"ink":282,"flood":0,"steps":103},{"rank":8,"glyph":"w","code":"U+0077","peak":34,"ink":285,"flood":0,"steps":110},{"rank":9,"glyph":"G","code":"U+0047","peak":33,"ink":279,"flood":0,"steps":102},{"rank":10,"glyph":"Q","code":"U+0051","peak":33,"ink":288,"flood":0,"steps":103}],"bottom":[{"rank":87,"glyph":"-","code":"U+002D","peak":15,"ink":63,"flood":0,"steps":85},{"rank":88,"glyph":":","code":"U+003A","peak":14,"ink":54,"flood":0,"steps":76},{"rank":89,"glyph":";","code":"U+003B","peak":14,"ink":63,"flood":0,"steps":76},{"rank":90,"glyph":"\"","code":"U+0022","peak":12,"ink":48,"flood":0,"steps":80},{"rank":91,"glyph":",","code":"U+002C","peak":10,"ink":39,"flood":0,"steps":77},{"rank":92,"glyph":".","code":"U+002E","peak":8,"ink":27,"flood":0,"steps":74},{"rank":93,"glyph":"`","code":"U+0060","peak":8,"ink":24,"flood":0,"steps":75},{"rank":94,"glyph":"'","code":"U+0027","peak":7,"ink":24,"flood":0,"steps":71},{"rank":95,"glyph":" ","code":"U+0020","peak":0,"ink":0,"flood":0,"steps":78},{"rank":96,"glyph":"_","code":"U+005F","peak":0,"ink":33,"flood":0,"steps":96}],"all":[{"rank":1,"glyph":"@","code":"U+0040","peak":41,"ink":405,"flood":0,"steps":114},{"rank":2,"glyph":"#","code":"U+0023","peak":38,"ink":351,"flood":0,"steps":107},{"rank":3,"glyph":"M","code":"U+004D","peak":38,"ink":363,"flood":0,"steps":109},{"rank":4,"glyph":"W","code":"U+0057","peak":38,"ink":381,"flood":0,"steps":117},{"rank":5,"glyph":"%","code":"U+0025","peak":35,"ink":267,"flood":0,"steps":107},{"rank":6,"glyph":"m","code":"U+006D","peak":35,"ink":303,"flood":0,"steps":111},{"rank":7,"glyph":"&","code":"U+0026","peak":34,"ink":282,"flood":0,"steps":103},{"rank":8,"glyph":"w","code":"U+0077","peak":34,"ink":285,"flood":0,"steps":110},{"rank":9,"glyph":"G","code":"U+0047","peak":33,"ink":279,"flood":0,"steps":102},{"rank":10,"glyph":"Q","code":"U+0051","peak":33,"ink":288,"flood":0,"steps":103},{"rank":11,"glyph":"█","code":"U+2588","peak":33,"ink":432,"flood":0,"steps":95},{"rank":12,"glyph":"B","code":"U+0042","peak":32,"ink":291,"flood":0,"steps":96},{"rank":13,"glyph":"N","code":"U+004E","peak":32,"ink":285,"flood":0,"steps":100},{"rank":14,"glyph":"O","code":"U+004F","peak":32,"ink":264,"flood":0,"steps":102},{"rank":15,"glyph":"5","code":"U+0035","peak":31,"ink":261,"flood":0,"steps":94},{"rank":16,"glyph":"6","code":"U+0036","peak":31,"ink":261,"flood":0,"steps":94},{"rank":17,"glyph":"8","code":"U+0038","peak":31,"ink":285,"flood":0,"steps":94},{"rank":18,"glyph":"9","code":"U+0039","peak":31,"ink":249,"flood":0,"steps":94},{"rank":19,"glyph":"A","code":"U+0041","peak":31,"ink":234,"flood":0,"steps":101},{"rank":20,"glyph":"C","code":"U+0043","peak":31,"ink":228,"flood":0,"steps":100},{"rank":21,"glyph":"0","code":"U+0030","peak":30,"ink":258,"flood":0,"steps":97},{"rank":22,"glyph":"3","code":"U+0033","peak":30,"ink":240,"flood":0,"steps":94},{"rank":23,"glyph":"D","code":"U+0044","peak":30,"ink":264,"flood":0,"steps":99},{"rank":24,"glyph":"R","code":"U+0052","peak":30,"ink":255,"flood":0,"steps":94},{"rank":25,"glyph":"g","code":"U+0067","peak":30,"ink":255,"flood":0,"steps":97},{"rank":26,"glyph":"$","code":"U+0024","peak":29,"ink":237,"flood":0,"steps":93},{"rank":27,"glyph":"H","code":"U+0048","peak":29,"ink":252,"flood":0,"steps":97},{"rank":28,"glyph":"V","code":"U+0056","peak":29,"ink":207,"flood":0,"steps":101},{"rank":29,"glyph":"b","code":"U+0062","peak":29,"ink":258,"flood":0,"steps":96},{"rank":30,"glyph":"d","code":"U+0064","peak":29,"ink":255,"flood":0,"steps":97},{"rank":31,"glyph":"p","code":"U+0070","peak":29,"ink":249,"flood":0,"steps":96},{"rank":32,"glyph":"q","code":"U+0071","peak":29,"ink":243,"flood":0,"steps":97},{"rank":33,"glyph":"2","code":"U+0032","peak":28,"ink":216,"flood":0,"steps":91},{"rank":34,"glyph":"4","code":"U+0034","peak":28,"ink":225,"flood":0,"steps":97},{"rank":35,"glyph":"E","code":"U+0045","peak":28,"ink":228,"flood":0,"steps":90},{"rank":36,"glyph":"S","code":"U+0053","peak":28,"ink":216,"flood":0,"steps":93},{"rank":37,"glyph":"U","code":"U+0055","peak":28,"ink":228,"flood":0,"steps":97},{"rank":38,"glyph":"a","code":"U+0061","peak":28,"ink":228,"flood":0,"steps":97},{"rank":39,"glyph":"K","code":"U+004B","peak":27,"ink":234,"flood":0,"steps":95},{"rank":40,"glyph":"X","code":"U+0058","peak":27,"ink":219,"flood":0,"steps":96},{"rank":41,"glyph":"h","code":"U+0068","peak":27,"ink":222,"flood":0,"steps":93},{"rank":42,"glyph":"k","code":"U+006B","peak":27,"ink":225,"flood":0,"steps":92},{"rank":43,"glyph":"u","code":"U+0075","peak":27,"ink":204,"flood":0,"steps":97},{"rank":44,"glyph":"y","code":"U+0079","peak":27,"ink":189,"flood":0,"steps":98},{"rank":45,"glyph":"P","code":"U+0050","peak":26,"ink":213,"flood":0,"steps":92},{"rank":46,"glyph":"Y","code":"U+0059","peak":26,"ink":168,"flood":0,"steps":98},{"rank":47,"glyph":"Z","code":"U+005A","peak":26,"ink":204,"flood":0,"steps":91},{"rank":48,"glyph":"e","code":"U+0065","peak":26,"ink":207,"flood":0,"steps":96},{"rank":49,"glyph":"n","code":"U+006E","peak":26,"ink":195,"flood":0,"steps":93},{"rank":50,"glyph":"o","code":"U+006F","peak":26,"ink":198,"flood":0,"steps":96},{"rank":51,"glyph":"=","code":"U+003D","peak":25,"ink":180,"flood":0,"steps":96},{"rank":52,"glyph":"s","code":"U+0073","peak":25,"ink":189,"flood":0,"steps":91},{"rank":53,"glyph":"v","code":"U+0076","peak":25,"ink":168,"flood":0,"steps":96},{"rank":54,"glyph":"x","code":"U+0078","peak":25,"ink":180,"flood":0,"steps":95},{"rank":55,"glyph":"F","code":"U+0046","peak":24,"ink":186,"flood":0,"steps":89},{"rank":56,"glyph":"^","code":"U+005E","peak":24,"ink":159,"flood":0,"steps":95},{"rank":57,"glyph":"c","code":"U+0063","peak":24,"ink":174,"flood":0,"steps":93},{"rank":58,"glyph":"z","code":"U+007A","peak":24,"ink":165,"flood":0,"steps":88},{"rank":59,"glyph":"7","code":"U+0037","peak":23,"ink":159,"flood":0,"steps":90},{"rank":60,"glyph":"?","code":"U+003F","peak":23,"ink":150,"flood":0,"steps":89},{"rank":61,"glyph":"J","code":"U+004A","peak":23,"ink":144,"flood":0,"steps":91},{"rank":62,"glyph":"T","code":"U+0054","peak":23,"ink":162,"flood":0,"steps":92},{"rank":63,"glyph":"+","code":"U+002B","peak":22,"ink":135,"flood":0,"steps":92},{"rank":64,"glyph":"/","code":"U+002F","peak":22,"ink":144,"flood":0,"steps":87},{"rank":65,"glyph":"t","code":"U+0074","peak":22,"ink":150,"flood":0,"steps":85},{"rank":66,"glyph":"L","code":"U+004C","peak":20,"ink":132,"flood":0,"steps":85},{"rank":67,"glyph":"\\","code":"U+005C","peak":20,"ink":141,"flood":0,"steps":85},{"rank":68,"glyph":"j","code":"U+006A","peak":20,"ink":135,"flood":0,"steps":77},{"rank":69,"glyph":"{","code":"U+007B","peak":20,"ink":159,"flood":0,"steps":85},{"rank":70,"glyph":"|","code":"U+007C","peak":20,"ink":144,"flood":0,"steps":77},{"rank":71,"glyph":"}","code":"U+007D","peak":20,"ink":162,"flood":0,"steps":84},{"rank":72,"glyph":"1","code":"U+0031","peak":19,"ink":132,"flood":0,"steps":83},{"rank":73,"glyph":"(","code":"U+0028","peak":19,"ink":147,"flood":0,"steps":82},{"rank":74,"glyph":")","code":"U+0029","peak":19,"ink":156,"flood":0,"steps":83},{"rank":75,"glyph":"[","code":"U+005B","peak":19,"ink":156,"flood":0,"steps":81},{"rank":76,"glyph":"]","code":"U+005D","peak":19,"ink":156,"flood":0,"steps":83},{"rank":77,"glyph":"f","code":"U+0066","peak":19,"ink":144,"flood":0,"steps":82},{"rank":78,"glyph":"i","code":"U+0069","peak":19,"ink":117,"flood":0,"steps":77},{"rank":79,"glyph":"l","code":"U+006C","peak":19,"ink":117,"flood":0,"steps":77},{"rank":80,"glyph":"r","code":"U+0072","peak":19,"ink":114,"flood":0,"steps":83},{"rank":81,"glyph":"I","code":"U+0049","peak":18,"ink":108,"flood":0,"steps":77},{"rank":82,"glyph":"~","code":"U+007E","peak":18,"ink":90,"flood":0,"steps":94},{"rank":83,"glyph":"!","code":"U+0021","peak":17,"ink":99,"flood":0,"steps":77},{"rank":84,"glyph":"*","code":"U+002A","peak":17,"ink":84,"flood":0,"steps":86},{"rank":85,"glyph":"<","code":"U+003C","peak":17,"ink":96,"flood":0,"steps":86},{"rank":86,"glyph":">","code":"U+003E","peak":17,"ink":96,"flood":0,"steps":86},{"rank":87,"glyph":"-","code":"U+002D","peak":15,"ink":63,"flood":0,"steps":85},{"rank":88,"glyph":":","code":"U+003A","peak":14,"ink":54,"flood":0,"steps":76},{"rank":89,"glyph":";","code":"U+003B","peak":14,"ink":63,"flood":0,"steps":76},{"rank":90,"glyph":"\"","code":"U+0022","peak":12,"ink":48,"flood":0,"steps":80},{"rank":91,"glyph":",","code":"U+002C","peak":10,"ink":39,"flood":0,"steps":77},{"rank":92,"glyph":".","code":"U+002E","peak":8,"ink":27,"flood":0,"steps":74},{"rank":93,"glyph":"`","code":"U+0060","peak":8,"ink":24,"flood":0,"steps":75},{"rank":94,"glyph":"'","code":"U+0027","peak":7,"ink":24,"flood":0,"steps":71},{"rank":95,"glyph":" ","code":"U+0020","peak":0,"ink":0,"flood":0,"steps":78},{"rank":96,"glyph":"_","code":"U+005F","peak":0,"ink":33,"flood":0,"steps":96}],"spearmanInkPeak":0.9799254615431598},"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 25 cells at its peak, poke 10 fired 22 (ratio 0.880); with the model's fatigue switched off: 28 → 28 (ratio 1.00). 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":[25,23,22,22,22,22,22,22,22,22],"st":[0,0,0,0,0,0,0,0,0,0],"ratio":0.88,"stRatio":null},"control":null,"percentile":null,"p":null,"details":{"noFatigue":{"peaks":[28,28,28,28,28,28,28,28,28,28],"st":[0,0,0,0,0,0,0,0,0,0],"ratio":1,"stRatio":null},"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.000 (0 of 53 pokes above 0.05; 0 lit up more than half the body); one other sensory neuron at a time: 0.000 (0 of 368; 0); scramble p95 0.00008478. Fails: touch does not beat the scramble p95.","real":{"touch":0,"other":0,"ratio":null,"touchCells":53,"otherCells":368},"control":{"n":50,"mean":0.00003900320822001133,"sd":0.0000245310366350042,"p95":0.00008478321496279376,"min":0.000008860588422976434,"max":0.00011505932750695814,"values":[0.000035042915059071994,0.0000478911736896613,0.00005618199459335667,0.00002176157935045121,0.00004314523438832272,0.00006294199849446684,0.00003410378304813877,0.000008860588422976434,0.00006924974982869817,0.000011280199249989628,0.000020674987657306094,0.000012351118255869351,0.00005844777415576281,0.000009002911370634189,0.000014507192159188713,0.000053332732154243866,0.00004527867795846794,0.00002349546421158169,0.00005819089884603243,0.0000313447876035312,0.00006978219003803184,0.000024763879248339375,0.000024142853660163405,0.000035336721979913376,0.000011985686716752468,0.0000243730501325965,0.00002853330907502663,0.000012924454106111663,0.00008699911739530757,0.00008207488976749914,0.00004660453050288974,0.00010167185424712819,0.00004934370788634292,0.00002217110207157192,0.00002607334926490139,0.000011662351580354263,0.000019503758930622776,0.00003663014132549998,0.00004521602290278336,0.00003638451634510859,0.000017143673881716364,0.00003509968958513917,0.00011505932750695814,0.00003843489007836899,0.000047805035872603276,0.00007587034125671775,0.000022748686920898326,0.000011440845095272813,0.00003449907749686273,0.00003879559563133139]},"percentile":0,"p":1,"details":{"conditions":{"atLeastRatioTimesOther":true,"aboveScrambleP95":false},"touchPokes":{"reachedStartle":0,"cascades":0,"of":53,"each":[{"cell":"dsoCR_1r; PDF","peak":0,"cellsFiring":2},{"cell":"dsoCR_2r","peak":0,"cellsFiring":6},{"cell":"hCR1_l1; SN","peak":0,"cellsFiring":3},{"cell":"hCR1_l2; SN","peak":0,"cellsFiring":4},{"cell":"dsoCR_2l; PDF","peak":0,"cellsFiring":3},{"cell":"hCR2_l; SN","peak":0,"cellsFiring":3},{"cell":"chaeMech_sg2l1","peak":0,"cellsFiring":2},{"cell":"chaeMech_sg2l4","peak":0,"cellsFiring":1},{"cell":"antCR_3r; SN","peak":0,"cellsFiring":1},{"cell":"antCR_4r; SN","peak":0,"cellsFiring":1},{"cell":"antCR_5r; SN","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg2l3","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg2l2","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg2r4","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg2r1","peak":0,"cellsFiring":4},{"cell":"dsoCR_1l","peak":0,"cellsFiring":2},{"cell":"antCR_5l; SN","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg3r3","peak":0,"cellsFiring":6},{"cell":"chaeMech_sg3l3","peak":0,"cellsFiring":1},{"cell":"hCR1_r; SN","peak":0,"cellsFiring":3},{"cell":"chaeMech_sg2r3","peak":0,"cellsFiring":7},{"cell":"hCR2_r; SN","peak":0,"cellsFiring":3},{"cell":"chaeMech_sg1r2","peak":0,"cellsFiring":4},{"cell":"chaeMech_sg3r4","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg1r1","peak":0,"cellsFiring":2},{"cell":"interparapodCR1_sg1r","peak":0,"cellsFiring":1},{"cell":"doCRunp","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg3l4","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg3l2","peak":0,"cellsFiring":6},{"cell":"chaeMech_sg3r1","peak":0,"cellsFiring":2},{"cell":"chaeMech_sg3r2","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg3l1","peak":0,"cellsFiring":1},{"cell":"pygCirrusCR1_r","peak":0,"cellsFiring":1},{"cell":"chaeMech_sg1l1","peak":0,"cellsFiring":1},{"cell":"interparapodCR1_sg1l","peak":0,"cellsFiring":1},{"cell":"VentralpygCR3r","peak":0,"cellsFiring":1},{"cell":"pygCirrusCR3r","peak":0,"cellsFiring":3},{"cell":"chaeMech_sg1l2","peak":0,"cellsFiring":4},{"cell":"pygCirrusCR_2l","peak":0,"cellsFiring":1},{"cell":"hCR1_r1; antCR_1r; SN","peak":0,"cellsFiring":2},{"cell":"dsoCR_4r","peak":0,"cellsFiring":1},{"cell":"dsoCR_3r","peak":0,"cellsFiring":2},{"cell":"pygCirrusCR2_r","peak":0,"cellsFiring":3},{"cell":"pygCirrusCR1l","peak":0,"cellsFiring":2},{"cell":"VentralpygCR3l","peak":0,"cellsFiring":2},{"cell":"VentralpygCR2_l","peak":0,"cellsFiring":2},{"cell":"VentralpygCR1_r","peak":0,"cellsFiring":1},{"cell":"VentralpygCR1_l","peak":0,"cellsFiring":1},{"cell":"VentralpygCRunp","peak":0,"cellsFiring":1},{"cell":"antCR_4l; SN","peak":0,"cellsFiring":1},{"cell":"hCR3l; SN","peak":0,"cellsFiring":1},{"cell":"hCR3r; SN","peak":0,"cellsFiring":1},{"cell":"VentralpygCR2_r","peak":0,"cellsFiring":1}]},"otherPokes":{"reachedStartle":0,"cascades":0,"of":368,"peaks":[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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"top":[{"cell":"SNaant_2r","peak":0,"cellsFiring":1},{"cell":"SNaant_1r","peak":0,"cellsFiring":1},{"cell":"SNaant_3r","peak":0,"cellsFiring":2},{"cell":"SN 839187","peak":0,"cellsFiring":1},{"cell":"SNnuchPDF_l1","peak":0,"cellsFiring":2},{"cell":"SN-DLSO2_necklace-l","peak":0,"cellsFiring":1},{"cell":"SN-IRP2-burs","peak":0,"cellsFiring":1},{"cell":"SN-DLSO1.2__DLSOr11","peak":0,"cellsFiring":1},{"cell":"SN-DLSO1.1NP_r","peak":0,"cellsFiring":1},{"cell":"SNaant_3l","peak":0,"cellsFiring":1}]}},"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":"passes","summary":"With the lamp lit the worm stayed 15.2 µm closer to it on average than with it dark (ended closer in 1 of 8 directions; closest approach 44.0 µm), against a scramble p95 of 8.47 µm: passes.","real":{"attraction":0.14041307860380337,"attractionUm":15.163910423817745,"endedCloser":1,"closestUm":44.00365095309781,"trials":[{"dir":[1,1,1],"litMeanUm":1586.3470343954932,"darkMeanUm":1672.6478132861948,"closestUm":720.5124662154267,"litEndUm":2112.2034633986323,"darkEndUm":1457.3086048518285},{"dir":[1,1,-1],"litMeanUm":1815.4259799273889,"darkMeanUm":1896.8359445617189,"closestUm":996.3772360691817,"litEndUm":1750.2001210287156,"darkEndUm":1728.4166597550243},{"dir":[1,-1,1],"litMeanUm":1694.1455803626623,"darkMeanUm":1654.9258689857645,"closestUm":44.00365095309781,"litEndUm":2503.4293475018826,"darkEndUm":660.9543493606691},{"dir":[1,-1,-1],"litMeanUm":1866.5810195376127,"darkMeanUm":1994.0071336453789,"closestUm":874.4288261231172,"litEndUm":1083.761037330025,"darkEndUm":1140.410641778793},{"dir":[-1,1,1],"litMeanUm":2022.7151777181653,"darkMeanUm":2019.789214002706,"closestUm":599.2999134568423,"litEndUm":2700.6939036524277,"darkEndUm":2273.6395397774118},{"dir":[-1,1,-1],"litMeanUm":2256.3347430366894,"darkMeanUm":2277.31991705342,"closestUm":912.4014134783989,"litEndUm":2751.77713079878,"darkEndUm":2456.239511281987},{"dir":[-1,-1,1],"litMeanUm":2091.9586520410076,"darkMeanUm":2007.5612192055357,"closestUm":894.396917859468,"litEndUm":2223.963844703853,"darkEndUm":1866.158899719647},{"dir":[-1,-1,-1],"litMeanUm":2398.509089845494,"darkMeanUm":2330.241449514336,"closestUm":1089.112203633097,"litEndUm":2335.955198841191,"darkEndUm":2084.7601346309307}]},"control":{"n":50,"mean":-0.1279258258350252,"sd":0.21821370242430718,"p95":0.07840473919202601,"min":-0.7822302963130139,"max":0.24360378238249214,"values":[-0.1609021678352507,-0.0007467997397039294,-0.5882754501364693,-0.07511861236681061,0.0012530885894792565,-0.02489883102759416,-0.03846328875809446,-0.12227469095978782,-0.026396505202478382,-0.2748842107293292,-0.41234426402657487,-0.3966996908903939,0.000021501440486959567,0.03340872000742423,0.004850294251165899,0.004426759969293315,-0.08466434731437422,-0.7505262851516965,0.000001976888542198907,-0.23123921187724505,0.24360378238249214,-0.5157513622417751,-0.0992407520474552,-0.02867303782718733,0.004287831545594312,-0.15987778404712305,0.0024084533397796815,-0.07664192729774899,-0.5220079134326916,-0.01766824795372024,-0.08543815877321714,-0.7822302963130139,-0.1677026463568041,0.0012445533308707013,0.012690145632763716,0.001976215709968754,-0.3477738648241655,-0.12136080477601308,-0.12552455361606207,-0.163763203010717,-0.024809405024965425,0.02401404189566092,0.0871015359988494,-0.04585836895193207,-0.46466138043249505,0.004977977313060045,0.14473270966417418,0.06777532087257532,0.000030859088282486624,-0.09867899672883418]},"percentile":96,"p":0.058823529411764705,"details":{"controlUm":{"mean":-13.815349561053548,"p95":8.467319809042849}},"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}}},{"id":"eyespot-cilia","version":1,"title":"One eyespot, one side","question":"Does light on one eyespot change the cilia on its own side?","rule":"Passes if the real wiring's laterality is greater than 0 AND greater than p95 of the scrambles' lateralities; 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":"passes","summary":"Laterality 0.006456: with the left eyespot lit the left cilia were stopped 0.006264 more than the right; with the right lit, 0.006649 more on the right. Scramble p95 0.003211: passes.","real":{"laterality":0.006456421385439555,"withLeft":0.006264134003446,"withRight":-0.00664870876743311,"leftCells":["eyespot-PRCR1_l","eyespot-PRCR3_l"],"rightCells":["eyespot-PRCR1_r","eyespot-PRCR3_r"]},"control":{"n":50,"mean":-0.00037394754481821064,"sd":0.001956444582086009,"p95":0.0032113364292762985,"min":-0.004175625689080289,"max":0.004143659908743619,"values":[-0.004054319901498197,0,-0.004143659908743619,0,0,-0.00006832994707321873,0,0,0,-0.00002551301504006816,-0.004143659908743619,0,0,-0.00009957881805744947,0,0,-0.000872349454472341,0,0,0,0,-0.004143659908743619,-0.00003196578033667108,0,0,-0.004143659908743619,0,0,-0.004175625689080289,0,0.004143659908743619,-0.004143659908743619,0.0020718299543718093,0,0,0,0,0,-0.000049561081605826604,-0.004143659908743619,0,0,0.004143659908743619,0.004143659908743619,0,0,0,0.0010359149771859047,0.0000031012409266739228,0]},"percentile":100,"p":0.0196078431372549,"details":{},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"eyespot-cilia","version":1,"kind":"eyespot-cilia","registered":"2026-09-26","registeredBefore":"any simulation of model v2 was run","title":"One eyespot, one side","question":"Does light on one eyespot change the cilia on its own side?","stimulus":"A fresh worm at rest gets a drive of 1.0 into its left eyespot photoreceptors only (eye cells named eyespot-PRC… on the left side) for 30 steps (1 s). A second fresh worm gets the same into its right eyespot photoreceptors only.","measure":"Over the 60 steps (2 s) from onset, the mean arrest of the left ciliated cells minus the right ones, each cell's arrest by the model's cilia rule (shared/model.js). Laterality = ((left − right with left light) − (left − right with right light)) / 2; positive = the lit side's cilia stop more.","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. Each cell keeps its transmitter; which cholinergic and serotonergic inputs each ciliated cell has is read from each scrambled wiring.","rule":"Passes if the real wiring's laterality is greater than 0 AND greater than p95 of the scrambles' lateralities; 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":1,"why":"the most a message gives one photoreceptor on the site"},{"name":"light on","value":"30 steps (1 s)","why":"as in eyes-sides"},{"name":"window","value":"60 steps (2 s)","why":"the light plus 1 s"},{"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, in the direction the lab reports"}],"caveats":["Jékely et al. 2008 describe illumination of one eyespot changing the beating of the cilia next to it, which with the larva's rotation steers it toward light.","The cilia rule comes from the same lab's studies, so this checks that the wiring carries the known mechanism."],"seed":20260926,"params":{"drive":1,"onSteps":30,"windowSteps":60,"scrambles":50,"swapsPerEdge":10,"percentile":95}}},{"id":"startle-reflex","version":1,"title":"The startle reflex","question":"Does a vibration make it close its cilia and raise its parapodia together?","rule":"Passes only if the collar receptors' startle peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' startle peaks, AND their cilia-arrest peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' arrest peaks; 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":"Collar receptors drove the startle muscles to 0.001079 (other senses 0.000, scramble p95 0.003815) and the cilia to a mean arrest of 0.2271 (other senses 0.04178, scramble p95 0.008545). Fails: startle does not beat the scramble p95.","real":{"startle":0.0010789930747705512,"arrest":0.2270833503426493,"otherStartle":0,"otherArrest":0.041784642089663274,"crCells":34},"control":{"n":50,"mean":0.0014911266185319743,"sd":0.0011935847480914381,"p95":0.0038151447011841788,"min":0.00004735959890922459,"max":0.004921895180207987,"values":[0.0003557317249942571,0.00013665742638598508,0.0016697558166924864,0.001470982196527378,0.00034969345627663034,0.002469033727417506,0.0018745828165265266,0.0003045404931375136,0.0048316225002054125,0.00047082083411472314,0.0011944180538800235,0.0008702706970022215,0.0033849858155008405,0.000291957277416562,0.000501207735699912,0.0008150696424612155,0.0017226809266806715,0.001321699741917352,0.002148379588713093,0.0011349960404913872,0.004167092880379641,0.001704472174727319,0.0007791764498203216,0.0019070528796873987,0.000277070813657095,0.0014585089908602338,0.002023649679661806,0.00004735959890922459,0.0028379243653944286,0.0023402791951715094,0.00013248886777243266,0.004921895180207987,0.003249864026050394,0.0013316729261229436,0.0012122791059958615,0.00011519150818154837,0.000829060568624603,0.0018378644017502666,0.00046726936125196517,0.002667592081706971,0.0006135416333563626,0.0007517412789942076,0.0016957955425217126,0.002855762632255695,0.0022711921289252737,0.0005085814142754922,0.0008365345420315862,0.00023345912147002915,0.001954957383228854,0.0012079136815638474]},"percentile":42,"p":0.5882352941176471,"details":{"conditions":{"startleSpecific":true,"startleAboveScrambles":false,"arrestSpecific":true,"arrestAboveScrambles":true},"arrestControl":{"n":50,"mean":0.0023321384849245624,"sd":0.0031444786787012753,"p95":0.008544518613296491,"min":0,"max":0.015660038424862757,"values":[0.0025847558240874747,0,0.000017965370918520624,0.006079245412293526,0.0016531174381573994,0.015660038424862757,0.010622729676306049,0.00004080253873123891,0.0008519453306992849,0.0038129087593970876,0.00034287784041629895,0.003613368290340683,0,0.003010708476520247,0.0002627464063051674,0.007221913172139062,0.0004051633230927918,0.004419128197090079,0.000024239680744229266,0.002041165186609659,0.00038410495552751754,0.0011968871112912893,0.0006179490851031409,0.0005712492339726952,0.0013339334432708307,0.0016931412327620718,0.00027308312969075306,0.0016571967345145014,0.00021248204031526442,0.002633022370799962,0.0033873837027284834,0,0.0011254237550828191,0.000313644219810764,0.009626650337879855,0.0001523802186258965,0.0020841817151651615,0.001732389520232876,0.002649508054471678,0.00001869559249219795,0,0.000866216467108573,0.0008305822977692717,0.0002613586063186328,0.0005448848629991213,0.004824997650252448,0.0037116727067364585,0.004199113949995727,0.006721122029386921,0.0003188498732116487]},"arrestPercentile":100,"crNames":["dsoCR_1r; PDF","dsoCR_2r","hCR1_l1; SN","hCR1_l2; SN","dsoCR_2l; PDF","hCR2_l; SN","antCR_3r; SN","antCR_4r; SN","antCR_5r; SN","dsoCR_1l","antCR_5l; SN","hCR1_r; SN","hCR2_r; SN","interparapodCR1_sg1r","doCRunp","pygCirrusCR1_r","interparapodCR1_sg1l","VentralpygCR3r","pygCirrusCR3r","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"],"otherCandidates":368,"otherDraws":[{"st":0,"arrest":0.00369082257930532,"cells":["SNnuchPDF_l1","SNaant_3l","SN-NS5_l","SN-IRP2-FMRF","SN-DLSO1.2-1_l","SN-DLSO1.2_4lPDF-dcl2","SN-NS1_l","SNMB with bubble 2","SNant_r 1959493","antPUc_3r; SN","neuropodPUc1_sg2l","hPUc_3l; SN","SN 1777191","SNMB2_2l","SNMB2_4l","SN-DLSO_l3","MS5_r","SNPDF-pyg_l","dsoPU2unp","ventralParaPU1_sg1r","ventralParaPB1_sg2l","ventralTeloPB1r","SNimmature 1329205","SNant 1328430","SNpalp 1325634","SNtorii_l","SNnuch_r4 ","SNnuch_r9","SN-DLSO1.3_1r","SN-NS15_r","hPU1_r; SN","SNlasso_l","pygCirrusPU_c1r_Hair_cell pygidium 1279544","SNnuch_l11"]},{"st":0,"arrest":0.07118311865628436,"cells":["SN-IRP2-burs","SN-NS15_l","SN-DLSO1.2_5l_DLSOl10","SNgolden_l","SN-DLSO2_1l","SN-DLSO3_3l","SNdors_sg1l","hPUc1_r","ventraltrunkPB1_sg2l","MS2","SNpyg 1354804","dorsalTeloPUc_1l","hCirrusPU_c1r","UnicilNonP_SNpost 1175413","ventralTeloPUc_1l","SN-sg3r 1449611","interparaPU1_sg2r","SNMB 1374515 ","SNMB 1372331","ventralTeloPUc_1r","SNant 1329667","SNr 1326535","SN-DLSO1.0_1r","SN-DLSO_r1","SNnuchBx_r","interparaPUc1_sg1r","SNMB 1302664","SN-NS17_r","sensory67;SN","dorsalTeloPB1l","ventralCirrusPB1_pygr","SN-DLSO1.3_2l","SNnuch_r2","SNnuch_l12 ant "]},{"st":0,"arrest":0.01312657128675355,"cells":["SNaant_3l","SNpygM_l","SNhead_l; INintl2","SN-DLSO1.2-1_l","SN-DLSO_r2","SNhead20_l","SN-MIP1_l","SN-NS19_r","SN-DLSO2l 1639380","dorsalTeloPU2l","dorsalParaPU2_sg2r","UnicilNonP_SNpost 1175413","SN-NS27_r","SN-DLSO_l3","spinPU3_sg3l","SNPDF-pyg_l","interparaPU1_sg2r","SN-DSO7","SN-sg3r 1370204","ventralParaPB1_sg1l","SNpyg 1354533","SNstiff_pstl2","SNpyg 1335846_putPU","SNMB2_r 1326587 ","SN-DSO20","SNnuchBx_r","antPUc_2l; SN","SNMB ventral head r 1285843","hPU1_r; SN","SNlasso_l","pygCirrusPBc1r","SNlasso_r","SN 1155296","SNantlerPDF_r"]},{"st":0,"arrest":0.001834804180168557,"cells":["SNhook_l","SN-NS15_l","sensory25;SN","SNgolden_l","SN-DLSO_r10","SN-DLSO_r2","SN-WLD_1l","SN-DLSO3_5l2","SN-NS19_l","SNdors_sg1l","dorsalParaPU1_sg2r","SNcir 1770015","SNMB2_2l","SNMB2_4l","SN-DLSO_l3","ventralParaPB1_sg1r","interparaPM1_sg1l","ventraltrunkPB1_sg1r","SNpygM_r","SNhorn_r","SNant 1329667","SN HC 1325701","SN HC 1325683","SNantimp 1322646","SNnuch_r10","SNMB 1299042","SN-DSO6","SN-DLSO3-PDF_l","SN-DLSO3_5r1","SN-DLSO3_5r2","SNnuch_l3","SN-DLSO_l8","SNnuch_l8 ","SN-DLSO1.0_1l"]},{"st":0,"arrest":0.03283741275986264,"cells":["SNaant_3r","SNpygM_l","SN-DLSO1.2_2r_DLSOr9","SN-DLSO1.2_5l_DLSOl10","SN-NS5_r","SN47Ach","antenna_right8;SN","SN-sg0l 1732520","interparaPUc1_sg2l","ventralParaPB2_sg2l_PKD2-1+","interparaPM1_sg2l","SNpyg 1354804","MS1","SNMB2_4l","SN-DLSO1.1_2r","SN 1419788","ventraltrunkPU1_sg1r","ventraltrunkPB1_sg1r","dorsalTeloPUc_1r","dorsalTeloPB1r","SNpyg 1335846_putPU","SNbicilDhead_r","pygCirrusPBc12","SN 1323537","SNhorn_l ","SN-NS17_r","dorsalTeloPB1l","ventralCirrusPB1_pygr","ventralpygPB1l","SN-DLSO3-PDF_l","SNstiff_sg0r2","MS3_r","SN-DSO10","SNPDF-dc_l1_DLSO1.1_4l"]},{"st":0,"arrest":0.025323320961324555,"cells":["SN-DLSO_l1","SN47Ach","SN-NS20_l","ventralParaPU2_sg1l","spinPU3_sg2l","SN-gland_sg2l","antPUc_3r; SN","SNMB2_2l","ventralTeloPUc_1l","SNFVa_sg2r1","SNMB 1442493","SN-DLSO1.1_2r","SNMB2_2r","dorsalParaPUc1_sg2l","SN-l 1391603","ventralParaPB1_sg1r","ventralpygPU1unp","SNMB 1355428","SNstiff_pstl2","notopodPUc1_sg3l","SNMIP-vc_l","SNnuchBx_r","SNMB1_l 1318312","SN-DLSO_r 1315272","pygCirrusPBcl4","ventralpygPB1l","SN-DLSO3-PDF_l","SNblunt_r","SNnuchNS_r1","SNMB 1209703","MS3_r","SN-DLSO1.3_4l_DLSOl11","SN-DLSO1.0_1l","SNnuch_r1 "]},{"st":0,"arrest":0.06089598031056445,"cells":["SNaant_2r","SN-DLSO_l1","SNblunt_l","SN-NS22_l","SN-NS3_r","antenna_right8;SN","spinPU3_sg2l","SNbronto_l","SNimmature_pstr 1769486","ventralParaPU2_sg2r","SN-DLSO2_necklace-r","antPUc_1r; SN","SN-DLSO1.3_1l","ventralParaPU1_sg2r","SN-NS4","SN 1415538","MS5_r","spinPU2_sg3l","SNPDF-pyg_l","SNgolden_r","interparaPM1_sg2r","ventralTeloPB1r","ventraltrunkPB1_sg1r","antPUc_2l; SN","antPUc_3l; SN","SNtorii_r","interparaPU1_sg1r","SNlasso_l","dorsalTeloPB1l","SN-DSO8","SNnuchNS_r1","SNMIP-vc_r","SNnuch_l11","SNantlerPDF_r"]},{"st":0,"arrest":0.0568063615075051,"cells":["SN-DLSO1.1NP_r","MS4","SN-DLSO_l1","SN-DLSO1.3_PDF_4r","interparaPUc1_sg2l","dorsalTeloPUc_1l","neuropodPUc1_sg3l","hCirrusPU_c1r","SNpalp 1372849","SNpalp 1325687","SN 1419788","SNMB6_r 1397112","spinPB2_sg3r","spinPU3_sg3l","SNMB 1374632","ventralTeloPUc_1r","ventralParaPU1_sg1l","interparaPM1_sg2r","ventralTeloPB1r","dorsalTeloPB1r","SNpyg_l 1335833","SNMB1_r 1335598","SNMB3_r 1325844","SNpalp 1325634","SNnuch_r18","SNnuchBx_r","SNnuch_r6  ","SNMB 1299042","pygCirrusPU_c1r_Hair_cell pygidium 1279544","pygCirrusMSPUc2r pygidium 1279526","ventralpygPB1l","SN-DLSO1.4_1l","MS3_l","SNnuch_l11"]},{"st":0,"arrest":0.05573211346294128,"cells":["SN 839187","SNhead_l; INintl2","MS4","SN-DLSO1.2_5l_DLSOl10","SN-DLSO2_1l","SN-DLSO2l","SN-DLSO_r6","SN-NS19_l","hCirrusPU_1l","neuropodPUc1_sg2l","hPUc1_l","spinPB3_sg3l","antPUc_1r; SN","SNMB2_4l","SN-YF5cil","SN 1415538","spinPU3_sg3l","spinPB2_sg3l","SN-DSO7","pygCirrusPBc1l","pygCirrusPBc13","SNnuchBx_r","antPUc_2l; SN","antPUc_3l; SN","SNMB 1318326","SNnuch_r12 ","SNMB 1293405","SN-NS17_r","SNblunt_r","SNnuch_l4","SNnuchBx_l","MS3_l","SNPDF-dc_l1_DLSO1.1_4l","SNnuch_l13 ant "]},{"st":0,"arrest":0.09641591519192289,"cells":["SNaant_1r","SNpygM_l","SN-DLSO_l1","SN-DLSO2_1l","SNstiff_sg0r1","pygPBunp","SN-LSO_r; INintr2","SN-NS5_r","SN-NS19_l","spinPU3_sg2l","dorsalTeloPUc_1l","MS1","SN-DLSO2_necklace-r","UnicilNonP_SNpost 1175413","spinPB2_sg3l","ventralpostParaPUc1_sg1l","SN-sg3r 1370204","ventralParaPU1_sg1r","ventraltrunkPB1_sg3l_PKD2-1+","ventralTeloPB1r","SNbicilDhead_r","SNpalp 1325626","SN 1323537","SNMB 1311598","SNnuch_r3","SNantlerPDF_l","SNhorn_l ","SNFVa_sg3r1","SN-DSO8","ventralpostParaPUc2_sg2l1","SNnuchBx_l","SN-DLSO1.1_3l_116l","SN-DSO10","SNPDF-dc_l1_DLSO1.1_4l"]}]},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"startle-reflex","version":1,"kind":"cr-startle","registered":"2026-09-26","registeredBefore":"any simulation of model v2 was run","title":"The startle reflex","question":"Does a vibration make it close its cilia and raise its parapodia together?","stimulus":"A fresh worm at rest gets a drive of 1.2 (the site's poke) for 10 steps into its collar receptor cells: sensory neurons whose name contains CR and that are not photoreceptors, the vibration sensors of Bezares-Calderón et al. 2018. For comparison, 10 fresh worms each get the same drive into as many other sensory neurons, drawn at random (not photoreceptors, not non-directional light sensors, not collar receptors or chaetal mechanosensors, with at least one outgoing synapse).","measure":"Over the 60 steps (2 s) from onset: the peak of st (the mean activity of the startle muscles) and the peak of the mean arrest of all ciliated cells (the model's cilia rule).","control":"Within the real wiring: the other sensory neurons. Wiring control, with the collar receptors: 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 only if the collar receptors' startle peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' startle peaks, AND their cilia-arrest peak is at least 2× the other-sensory mean AND greater than p95 of the scrambles' arrest peaks; 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":"1.2 for 10 steps","why":"the site's poke, long enough to cross several synapses"},{"name":"window","value":"60 steps (2 s)","why":"as in touch-startle v2"},{"name":"comparison","value":"10 random groups of other sensory neurons, as many as the collar receptors","why":"as in touch-startle v1"},{"name":"specificity factor","value":2,"why":"as in the touch-startle protocols"},{"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":"every part above 2× the other senses and above the 95th percentile of the scrambles","why":"both halves of the reflex, specifically"}],"caveats":["Bezares-Calderón et al. 2018: water vibrations make larvae close their locomotor cilia and raise their parapodia, through collar receptor neurons.","Every synapse outside the ciliary circuit is still modelled as excitatory."],"seed":20260926,"params":{"drive":1.2,"onSteps":10,"windowSteps":60,"otherDraws":10,"ratio":2,"scrambles":50,"swapsPerEdge":10,"percentile":95}}},{"id":"stop-and-go","version":1,"title":"Stop and go","question":"When the rhythm's MC cell bursts, how much of the ciliary band stops together?","rule":"Measured, no pass rule.","verdict":"measured","summary":"An MC burst stopped at most 15% of the 72 ciliated cells at once (paratroch 0%, akrotroch 0%, prototroch 48%, metatroch 0%); scrambles: mean 1%, p95 3%.","real":{"peak":0.1527777777777778,"bandPeak":{"paratroch":0,"akrotroch":0,"prototroch":0.4782608695652174,"metatroch":0},"cilia":72},"control":{"n":50,"mean":0.009722222222222226,"sd":0.011311264137888273,"p95":0.027777777777777776,"min":0,"max":0.041666666666666664,"values":[0.027777777777777776,0.013888888888888888,0.013888888888888888,0.013888888888888888,0.013888888888888888,0,0.013888888888888888,0.013888888888888888,0,0.013888888888888888,0,0,0,0.027777777777777776,0,0.013888888888888888,0,0.013888888888888888,0.027777777777777776,0,0,0,0.013888888888888888,0,0,0,0,0,0.027777777777777776,0.041666666666666664,0,0.013888888888888888,0.013888888888888888,0,0,0.013888888888888888,0.027777777777777776,0.027777777777777776,0,0.027777777777777776,0,0.013888888888888888,0.013888888888888888,0,0.013888888888888888,0,0,0,0.027777777777777776,0]},"percentile":100,"p":0.0196078431372549,"details":{},"scrambles":50,"registeredScrambles":50,"deviation":null,"protocol":{"id":"stop-and-go","version":1,"kind":"mc-burst","registered":"2026-09-26","registeredBefore":"any simulation of model v2 was run","title":"Stop and go","question":"When the rhythm's MC cell bursts, how much of the ciliary band stops together?","stimulus":"A fresh worm at rest gets the model's rhythm burst: a drive of 1.0 into the MC cell for 60 steps (2 s).","measure":"Over 90 steps (3 s) from onset, the largest share of ciliated cells stopped at once (arrest above 0.5), overall and for each band (prototroch, paratrochs, akrotroch, metatroch).","control":"Reported for context, not a verdict: 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":"Measured, no pass rule.","chosen":[{"name":"burst","value":"drive 1.0 into MC for 60 steps","why":"the model's rhythm burst"},{"name":"stopped","value":"arrest above 0.5","why":"more stopped than beating"},{"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":["Verasztó et al. 2017: the synchronous rhythmic activation of cholinergic cells drives the coordinated arrests of all cilia.","Registered after seeing which ciliated cells get cholinergic input (the metatroch gets none), not after any simulation."],"seed":20260926,"params":{"drive":1,"onSteps":60,"windowSteps":90,"stopped":0.5,"scrambles":50,"swapsPerEdge":10,"percentile":95}}}],"key":{"labVersion":2,"protocolSha256":"2a9f11e31021b84a3c14de7e5cfba3ca2e8d0457c8c46cac47e500e138686ac2","wiringSha256":"4f5cadaa7ebd42d62ba7e7b60e012809f23664177dc5b4120db227dbba2cbbfb","transmittersSha256":"ec601da7351db6bededb5a6835f8c2591268cbef92a3b963094a81fd31729aa1","codeSha256":"e4fe306e9471bb4c86d8461778b5f46bce58b60a00e94efc9859a625cae0fa74","scrambles":"registered"},"protocolSha256":"2a9f11e31021b84a3c14de7e5cfba3ca2e8d0457c8c46cac47e500e138686ac2","wiringSha256":"4f5cadaa7ebd42d62ba7e7b60e012809f23664177dc5b4120db227dbba2cbbfb","codeSha256":"e4fe306e9471bb4c86d8461778b5f46bce58b60a00e94efc9859a625cae0fa74","protocolSha256s":{"eyes-sides":"fff039b419df072581aa6e15c691d0272fb637b391fc1ffdcc8bae1a18f694cf","touch-startle":"574083072e051795c71eaeb614bd74f7b17cdcbffa6f6710b5ccaf5ea9d202f7","light-latency":"587f57c327d8826b90140b531541f493de3e3ef114062142cedf5d699423fed5","alphabet":"fdbca930cd88209cb31aaca5d515c721acdffd08b6f9ed4c659cba6764c57fea","fatigue":"98fc71bb57a366edaf388c0a0725853256e492e33e9e1d72f1caf7788f12c593","touch-startle-v2":"8fb53810d2dde841abde3f4fdd105f9b63ec8da509190711f19ba815210bbed5","follow-the-light":"1e9494bc67a7aeafc80fef41a65a81b56d7b06f874e3a530bb6645978dd02634","eyespot-cilia":"e54d9ed1efb8b92191d2b3933d2a3f7576fcb39c524edfa54df72dc22a6ed99f","startle-reflex":"cb25e92da036a913ec4af16d16a599fe88a3e117370bb444a0414f327c5742b0","stop-and-go":"e91ec5ca8d4c3bbbbb6d48eb44e05932b8e37cd056fc2383b27b4d0329dd0bde"},"resultsSha256":"161c7cdd36653f3a61a18e97e6509d0e271430fe2c3e71010cac42274549c38f","startedAt":"2026-09-30T03:59:46.992Z","computedAt":"2026-09-30T04:00:02.845Z","workerMs":15813,"wallMs":15853}