MODEL PROTEIN FOLDING · MATH · THE COUNT · under KEEPER ERIS
Levinthal’s Paradox · 3²⁰⁰ vs a Millisecond
A 100-residue chain has 200 backbone torsions. At 3 states each that is 3²⁰⁰ ≈ 2.7 × 10⁹⁵ shapes, so a blind search would outlast the universe by 10⁶⁵, yet small proteins fold in milliseconds or less.
Dave (t249u): "can you build some pages on protein folding, the math and the difficulty, edutaiton please, use this wasm engine"
Dave’s I-13 engine on this page
booting I-13 v0.3…
LIT What the VM computes here: The VM computes 3²⁰⁰ by recursive powers (its call depth is capped at 48, so the power is split into blocks of 32). It does all the time conversions, and it runs the whole Zwanzig-style first-passage sum, unrolled into up to 600 statements. JS only draws the chart.
LIT Cyrus Levinthal (1969, “How to fold graciously”) pointed out that an unfolded chain has an astronomical number of conformations. A common way to count: 100 residues → 200 φ/ψ torsions → 3 stable states each → 3²⁰⁰ ≈ 10⁹⁵.
LIT Even sampling one conformation every 0.1 ps (10¹³ per second), exhaustive search needs about 10⁷⁵ years, versus 1.38 × 10¹⁰ years for the age of the universe. Real small proteins fold in µs to s. That mismatch is the paradox.
LIT Zwanzig, Szabo and Bagchi (PNAS 1992) showed that a small, physically reasonable energy bias against locally wrong configurations, of the order of a few kT, cuts Levinthal’s time to a biologically significant size. Folding is a biased search, not a random one.
AMBER Levinthal’s own estimate is often quoted as 10³⁰⁰; the 3²⁰⁰ count is the textbook simplification. Both are about the size of the search, not real folding.
WALL The paradox does not say folding is impossible. It says folding cannot be an unbiased random search. How the bias is encoded in each sequence is still not fully solved.
Lab MODEL interactive, computed on the I-13 VM
residues n · sampling rate /s · bias U kT
MODEL Biased search: a birth–death chain on the number of wrong bonds after Zwanzig et al. Each wrong bond is fixed at 10⁹/s, and each right bond breaks to one of ν = 2 wrong states at ν·10⁹·e^(−U)/s. The I-13 VM computes the exact mean first-passage time from all-wrong to all-right. At U = 0 the result equals the blind-search scale; at a few kT it drops toward milliseconds.
Sources (browsed Oct 2026)
MODEL Two agents, as Dave set for every world. The ARTIST folds the 36-residue HP chain S4 PPPHHPPHHPPPPPHHHHHHHPPHHPPPPHHPPHPP on the cubic (3D) lattice with pivot, corner and kink moves. The CRITIC judges each move (Metropolis at temperature T) and scores the best fold as −E/18 (E_ref = -18, best found by our annealing; literature optimum −18). It also has Dave’s I-13 VM recount every kept fold from raw coordinates. Rendered with Three.js r160 from a pinned CDN, devicePixelRatio capped at 2. Drag to orbit, scroll to zoom.
LIT on load: the seal is recomputed, the page’s facts are re-checked as arithmetic (throws on mismatch), 200 seeded ARTIST rounds must improve, the workspace loop logs 5 entries, and the OBJ and SVG exports must agree. Then the engine boots, its SHA-256 is checked, and the page’s VM results are compared with independent JS.
Gallery of kept folds (WebGL snapshots):
Workspace improvement loop: instructions for agents MODEL
- Measure: every 40 rounds, record the acceptance rate, the best score, the best E and the rounds since the last improvement.
- Try next: after a 40-round plateau, reheat T ×1.5. If acceptance is under 15%, warm T ×1.25; if over 45%, cool T ×0.7; otherwise anneal T ×0.9.
- Log back: append {entry, round, measured, tried, T} to the workspace log (in the JSON export and the list below), and have the I-13 VM recount the best fold.
- Repeat, forever: never stop improving. Re-check every claim against the engine and the sources before you make it.
Live workspace log:
Shared board MODEL ARTIST ↔ CRITIC
Background art: AMBER MODEL a generative field seeded from this page’s seal.
proving…
Seal sha256(name|slug|blurb): 9e90d74fba3538dfc1ad527c32c9fd18b653857a44c4f5f2c1b45850a28598ae