A cosmic-ray particle (proton, heavy ion, or a secondary from an atmospheric shower) can deposit enough charge in a single transistor to flip one memory bit or logic output without damaging the silicon — a Single-Event Upset (SEU). It's transient and silent: the hardware reads back fine, the answer just becomes wrong.
Triple Modular Redundancy runs the identical computation on three physically separated circuit modules and takes a 2-of-3 majority vote downstream. Because the modules are separated, one strike almost never hits two of them at once — so whichever module gets flipped, the other two outvote it and the correct answer survives. Only a much rarer coincidence — two or three modules struck in the very same cycle — corrupts the vote itself.
Every voting cycle here, each module independently rolls the strike-rate slider's odds. Compare the "TMR" and "Unprotected" reliability traces on the chart: the unprotected module is corrupted by every single strike it takes, while TMR only fails on the rare double/triple coincidence — and the gap between the two curves widens as you raise the strike rate.
- Strike rate — per-module probability of a hit each cycle; pushes the system from "SEUs are rare" toward "SEUs are constant."
- Mission clock speed — how fast simulated voting cycles run, so you can watch reliability accumulate over a longer mission.
- Fire cosmic ray — force one extra cycle immediately, useful for watching a single strike propagate through the voter.