This is the repressilator (Elowitz & Leibler, 2000) — a genuinely different oscillator topology from the 3D single-gene Goodwin model: instead of one gene's own delayed feedback, three separate genes are wired into a cyclic repression ring, A ⊣ B ⊣ C ⊣ A, each with its own mRNA and protein solved as a real coupled ODE pair:
dm_i/dt = −m_i + α / (1 + p_j^n) + α₀
dp_i/dt = −β · (p_i − m_i)
where m_i, p_i are gene i's mRNA and protein, and p_j is the protein of whichever gene represses it around the ring. No single gene delays itself — the delay instead comes from having to pass through the other two genes in the loop, which is why the repressilator can sustain oscillation at much lower Hill cooperativity (n ≳ 1–1.5 here) than a single-gene autorepressor needs.
- Hill cooperativity n — below ~1 the ring relaxes to a shared fixed point (all three genes settle to the same level); above it the ring locks onto a limit cycle with the three genes evenly spaced in phase.
- Max transcription rate α — sets how strongly an unrepressed gene transcribes; larger α raises the oscillation amplitude.
- Leaky expression α₀ — a floor on transcription even when fully repressed (real promoters always leak); too much leak flattens the oscillation.
- Decay ratio β — protein decay rate relative to mRNA decay; the ring's period scales roughly as 1/β, matching real repressilator strains where faster protein degradation (e.g. via an ssrA tag) shortens the oscillation period.
- Reset — kicks each gene to a random level so you can see whether the ring relaxes back to the fixed point (damped) or is pulled back onto the same limit cycle from anywhere (a true attractor).
The oscilloscope trace mirrors how the real repressilator was actually read out in E. coli — as three fluorescent-reporter time traces — and the ring diagram's three nodes light up in strict rotation A → B → C, each roughly a third of a period behind the last, exactly as this simulator's own peak-lag readout measures live.