Instead of a rendered 3D strand, this view plots the reaction the way single-molecule biophysics papers actually record it: branch migration is a genuine 1D random walk along the reaction coordinate (number of base pairs displaced), simulated step by step and drawn as a live scrolling trace — not a scripted animation.
Each "Add Input" draws a real exponential waiting time for toehold nucleation (rate = k(b)·[input], the same bimolecular rate law as the 3D version), then, once nucleated, the branch-migration front performs an unbiased ±1 random walk over the 6-unit branch domain: reflecting at the toehold end, absorbing once it reaches the far end (protector fully displaced). This is the standard model used to explain why strand-displacement completion times are themselves random from molecule to molecule (Srinivas et al. 2013, Nucleic Acids Research).
Nucleation: P(wait > t) = exp(-k(b)[I]·t) t½ = ln2 / (k(b)[I])
Migration: x(n+1) = x(n) ± 1 (p=½ each), reflecting at 0, absorbed at 6
k(b) ≈ k_max / (1 + exp(-(b - 3)/1.1)), k_max ≈ 3×10⁶ M⁻¹s⁻¹
The rate-law curve panel plots k(b) directly and marks your current toehold length; the strip charts above it show each side's own random-walk trajectory in real time. Because migration here is modeled as toehold-independent (its step rate doesn't depend on b — only nucleation does, per the same reference), running the same toehold length twice can still produce visibly different completion times: that variability is the point, not noise to be smoothed out.