A quantitative biophysical framework for the limits of reversible preservation.
What magnitudes, thresholds and time windows separate an organism or tissue in a reversible pause from one that can no longer recover?
StasisPath answers that question as a computable, auditable network rather than a narrative. Every claim carries a status and its dependencies; every threshold was frozen before the data exist; and a single edit to the source of truth repropagates through the whole framework.
| value | what it means | |
|---|---|---|
| Grounding | 97.3 % | Fraction of the 251-node network resting on primary peer-reviewed sources (91 catalogued) and on bounds that stay robust at every uncertainty corner. |
| Resolution at the decisive frontier | 0 % | Frontier |
A well-grounded framework is not an answered question. A complete set of blueprints is not a bridge that carries traffic. We report both numbers because one headline percentage invites exactly that confusion.
The repository is bilingual and split by language, each edition self-contained and regenerable:
| English | Español | |
|---|---|---|
| Framework documents | en/ |
es/ |
| Manuscript | PAPER_STASISPATH_EN.md · .pdf |
PAPER_STASISPATH_ES.md · .pdf |
| Read first | en/MARCO.md |
es/MARCO.md |
| README | this file | README.es.md |
The two editions are translations of each other and are kept consistent by machine:
python3 tools/check_parity.py fails if any number, status, dependency or frozen text differs between the two knowledge graphs,
and python3 tools/check_numbers.py fails if any computed value differs between a generated English document and its Spanish twin.
Spanish only, by design: es/BITACORA.md (the working log, including every self-correction), es/INFORME_SESION_2026-09-27.md,
and the original calculation record in es/20_cotas/ (scripts and outputs), es/30_respuestas/ and es/10_fuentes/.
They are archival and are referenced from the English documents by path. The YAML schema keys and the Python identifiers
(fuentes, parametros, cotas, ...) are also still Spanish; they are names, not prose.
The field benchmarks cryoprotectants against M22 (critical cooling rate 0.10 °C/min). That anchors the search on a solution instead of a requirement, and discards candidates that would suffice.
StasisPath computes the requirement directly:
A 1400 g human brain requires a critical cooling rate of ≤ 0.425 °C/min — 4.25× more permissive than M22.
This turns CPA screening into a single DSC measurement any laboratory can run:
import stasispath as sp
sp.required_ccr(1400.0) # 0.425 °C/min — the bar for a human brain
sp.screen_candidate_cpa("M22", 0.10) # ADMISSIBLE (clears by ×4.25)
sp.screen_candidate_cpa("VS55", 2.5) # REJECTED (misses by ×5.9)
sp.screen_candidate_cpa("candidate", None) # UNMEASURED — never a pass or a failTwo constraints are enforced in code, not in prose:
-
Clearing the cooling-rate bar says nothing about preserved function. It is a necessary
condition on the ice-avoidance axis only. Frontier
$X_2$ is precisely the fact that no chemistry has yet cleared both axes. -
An unmeasured chemistry returns
UNMEASURED. A hardcoded value for an unmeasured quantity is how a framework fabricates progress. We removed one of our own.
Ranked by expected value of information per unit cost. A measurement is worth doing when its plausible range straddles a decision threshold.
| Open quantity | EVOI | rel. cost | EVOI/cost | verdict |
|---|---|---|---|---|
| Critical cooling rate of a low-toxicity candidate (DSC) | 0.988 | 1.0 | 0.99 | run first |
| Cooling-law exponent (P21) | 0.241 | 0.5 | 0.48 | run |
| Nucleation rate at −6 °C | 0.419 | 12 | 0.03 | defer on cost |
| Human equivalent ischemia, optimal reperfusion | 1.000 | 30 | 0.03 | defer on cost |
| P19 — LTP after vitrification | 0.179 | 20 | 0.01 | defer on cost |
A differential scanning calorimetry run is the single most valuable experiment in the
framework. If a low-toxicity candidate clears 0.426 °C/min, frontier
Caution: the candidate that looked most promising, natural deep eutectic solvents, is already measured and does not qualify: it crystallizes in DSC at 30 °C/min (more than 70× above the bar), and its own paper sets 50 % w/v as a toxicity ceiling. A new chemistry is needed.
P21 ranks second: one control vessel, three small bags, three large bags, one thermocouple. Forty-eight times better than P19 per unit cost, and it carries the entire multi-organ projection. It had been deprioritized for looking trivial.
Every threshold was frozen before any data exist, with SHA-256 certificates over
date + protocol text in en/red/prereg.lock. The engine recomputes each hash on every run and halts
with an alarm if a frozen text changed.
| ID | Question | SHA-256 (first 16) | Status |
|---|---|---|---|
| P15 | Does the connectome survive a realistic cryonics protocol? | b081e1bef45061f1 |
no data |
| P18 | Minimum falsifiable claim of the framework | 40bf19b0ba442705 |
no data |
| P19 | Does a chemistry that scales preserve LTP? | 5b728de09bf17d1c |
no data |
| P20 | Expected run length without prior fixation | 74ec536bc98a2a7f |
no data |
| P21 | Is the cooling-law exponent below 2.34? | 3ed875463de17d30 |
no data |
The P19 rule, exactly as frozen: PASS if the M22 arm reaches ≥ 130 % of baseline LTP without differing from the V3 positive control; FAIL if it falls to ≤ 110 % while the control works; everything between is inconclusive and never reinterpreted. Respiration is a secondary measure, not a threshold.
A threshold is never moved to rescue a hypothesis. Adding a new preregistration is legitimate; editing a frozen one is not. P18 still contains the project's prototype name inside its frozen text, and has deliberately not been renamed — editing a hash-locked record, even cosmetically, would destroy the evidence that it was never altered.
The framework was audited against its own premises. The audit was built to make results worse.
FAIL_STOP— an unphysical extrapolation. Bound C2 reported that ten-year storage requires −129 °C. But the glass transition is −123 °C: below it there is no liquid water and no metabolism, so Q10 is undefined, not merely extrapolated. The figure is withdrawn as a quantitative claim; C2's actual verdict (storage requires T < 0 °C under any measured Q10) survives untouched.- A geometry premise, now quantified. Characteristic length was computed with a sphere formula throughout, including for the torso, which is a cylinder. Rather than assert the correction is harmless, we computed the flip factor for every organ — the multiplicative error at which a verdict reverses. The brain flips only at ×1.94 against a worst-case geometric error of ×1.5: the verdict survives, with ×1.29 to spare. That margin was not visible before the audit.
- A density assumed in silence. Converting grams to centimetres needs a density. 1.0 g/cm³ was assumed without declaring it. Now an explicit API parameter.
- A disclosure, not a finding. The exponent n = 2 behind the whole organ table is preregistered (P21) but has never been measured. Flagged on every computation.
- A mistake of this repository. An earlier version of the toolkit, the manuscripts and the OSF template described, for P19, a "double threshold" (OCR ≥ 85 % and LTP ≥ 120 %) that did not match the frozen preregistration. It has been corrected everywhere, and the toolkit now implements the frozen rule with a test at every threshold and boundary.
Every link below is the English edition; the Spanish twin has the same name under es/.
| Document | What it is |
|---|---|
PAPER_STASISPATH_EN.md |
Reference manuscript (12 sections, 52 references). Full analytical development, comparative biology, the design specification, the five hash-locked preregistrations and the self-audit. |
PAPER_STASISPATH_ES.md |
Spanish synthesis of the same manuscript. |
PAPER_STASISPATH_EN.pdf · ES.pdf |
Typeset PDFs, rebuilt from the Markdown with python3 build_papers_pdf.py. |
| Document | What it is |
|---|---|
en/LAB_DESIGN_TABLES_AND_GAPS.md |
Operational design tables: biological scales (E5 → E0), comparative CPA toxicity, phase-by-phase reperfusion matrix, non-Q10 domains, regulatory framing (TRL 1–7), and five falsifiable predictions (only the first, P19, is preregistered). |
en/PREREGISTRATION_P19_OSF.md |
OSF / AsPredicted-style registration form for P19, generated from the hash-locked text by tools/gen_p19_osf.py so it cannot drift from the preregistration. |
en/SFSA.md |
Self-audit report: regime guards, dimensional homogeneity, value-of-information ranking. |
en/00_marco/method.md |
The MATE + TRIADA method in one page. |
| Document | What it answers |
|---|---|
en/MARCO.md |
The complete framework: every node, its status, its derivation chain. |
en/RUMBO.md |
Greedy minimum path of experimental closures, and what each one is worth. |
en/ESPACIO.md |
The two-dimensional chemical space of frontier X2: required cooling rate vs demonstrated synaptic viability. |
en/BARRIDO.md |
Value-by-value sweeps of every margin against the framework. |
en/TRIANGULACION.md |
Unknowns projected by independent paths; empty intersections reported as contradictions. |
en/CONFIANZA.md |
Monte Carlo robustness of each verdict, and which parameters to measure first. |
en/CASCADA.md |
Uncertainty propagation along the P19 inference chain. |
en/CRUCE.md |
Physiological data crossed against the Arrhenius thermal law, isolating active mechanisms. |
en/ESCALADO.md |
Cross-species scaling laws with leave-one-out validation. |
en/PRECISION.md |
Biot regime check, Monte Carlo viable mass, Poisson nucleation. |
en/MARGENES.md · BRECHAS · DERIVACION · FORMULACION · ENCUENTROS · PROYECCION · P21 |
Margins, gaps to human, Arrhenius derivation, internal formulation, layer collisions, conditional projection, P21 status. |
en/red/grafo.md · en/red/informe.md |
Dependency graph and engine report. |
| Document | What it is |
|---|---|
es/BITACORA.md |
Full working log, including every self-correction and every error found. |
es/INFORME_SESION_2026-09-27.md |
Technical memo on the 94.7 % → 97.3 % verification pass and the source audit. |
One file per edition is edited by hand; everything else regenerates. It holds the framework in interconnected layers:
| Layer | Contents |
|---|---|
fuentes |
Primary literature catalogue, F1–F93 (91 active), each with DOI, method and the specific measured value it supplies. |
parametros |
Biophysical constants with empirical uncertainty ranges (Q10, Tg, CCR, fracture stress, CPA diffusivity). |
cotas |
Thermodynamic inequalities and kinetic limits, C1–C11, each evaluated at every uncertainty corner. |
afirmaciones |
Ontology (O1–O4), magnitudes (G1–G8), frontiers (X1–X2) and laws (L1–L45), each with its derivation chain. |
vias |
Candidate pathways V01–V27, with the numerical window each one does or does not have. |
preguntas |
The canonical questions Q1–Q22 and their verdicts. |
preregistro |
The five frozen experimental designs (P15, P18, P19, P20, P21) with explicit stopping criteria. |
derivadas |
Quantities computed, never written by hand — characteristic lengths, cooling rates, the CCR–molarity line. |
Every node carries one, and a node can never outrank its weakest dependency.
| Tag | Meaning |
|---|---|
| M | Mate — robust at every uncertainty corner. The verdict does not depend on which end of any range you take. |
| V | Verified against a primary peer-reviewed source read in full. |
| P | Prior — supported only by a secondary source, a review or an abstract. |
| A | Open — no sufficient evidence either way. Frontier X2 lives here. |
| ROTO | Broken — a claim this framework previously made and has since refuted. |
Five rules govern development. The second is the load-bearing one.
- R1 — Dependencies rule. A derived node can never hold a higher certainty than its weakest premise:
status(A) ≤ min(status(deps)). The one deliberate exception is a preregistration, which does not lose status because the thing it tests is open — that is its purpose. - R2 — Invariance of rules. Falsification thresholds are sealed under SHA-256 in
red/prereg.lock. Never reformulate the board, and never move a preregistered threshold to save the narrative. Editing a frozen threshold triggers an alarm in the engine. - R3 — Corner conservatism. Every physical claim must hold simultaneously at the most optimistic and the most pessimistic end of every measured range.
- R4 — Advance through critical squares in order.
- R5 — Stop when the verdict is forced. If the opponent has one escape, there is no mate.
Caution
Zero tolerance for self-deception.
- We do not claim that reversible whole-body stasis in adult non-hibernating mammals is viable today. No published protocol achieves it.
- Extrapolation from isolated organ (E3) to whole body (E0) is treated formally as an open theoretical conjecture, not a result.
- Frontier X2 remains open
[A]and will be considered closed only when a laboratory reports durable LTP in brain tissue vitrified with a low-critical-rate cryoprotectant (CCR ≤ 0.43 °C/min).
en/ English edition es/ Spanish edition (same shape)
├── red/ The framework itself
│ ├── stasispath.yaml SINGLE SOURCE OF TRUTH of this edition — the only file edited by hand
│ ├── motor.py Verification engine: statuses, bounds, corner evaluation, scoring
│ ├── prereg.lock SHA-256 certificates for the frozen preregistrations
│ ├── sfsa_auditoria.py Self-audit (optional: needs the SFSA package, see below)
│ └── *.py Scaling, margins, triangulation, sweeps, precision, projection
├── MARCO.md ... RUMBO.md Generated documents
└── LAB_DESIGN_TABLES_AND_GAPS.md · PREREGISTRATION_P19_OSF.md
stasispath-tools/ Installable toolkit — 79 unit tests, zero dependencies
└── stasispath/
├── design_spec.py What a given organ REQUIRES; CPA screening; flip factors
├── assumptions.py Executable regime guards (Biot, Q10 below Tg, isochoric, geometry)
├── experiment_value.py EVOI-per-cost ranking of the open set
├── predictions.py The FROZEN P19 decision rule, and four exploratory hypotheses (H2–H5)
├── f3_ischemia.py Piecewise Q10 kinetics and equivalent ischemic dose
├── f4_nucleation.py Stochastic ice nucleation (Poisson)
├── f5_cooling.py Cooling phases and rate constraints
├── thermal_stress.py Thermomechanical stress and fracture near Tg
├── cpa_toxicity.py Arrhenius toxicity rescue at subzero temperatures
├── cpa_washout.py Kedem–Katchalsky stepwise washout
├── organ_projector.py Anthropometric multi-organ constraint projection
└── boa_connector.py Ingests TotalSegmentator / BOA radiologic volume masks
tools/ check_parity.py · check_numbers.py · gen_p19_osf.py
PAPER_STASISPATH_{EN,ES}.md/.pdf · build_papers_pdf.py · README.es.md · CONTRIBUTORS.md · LICENSE · img/
Every .md under en/red, en/ and es/ that is not named above as hand-written is generated by the engine. None is hand-edited.
(cd en && python3 red/motor.py) # recompute the English edition and regenerate its documents
(cd es && python3 red/motor.py) # recompute the Spanish edition
python3 tools/check_parity.py # EN and ES graphs agree on every number, status and frozen text
python3 tools/check_numbers.py # every generated EN document agrees numerically with its ES twin
python3 tools/gen_p19_osf.py # regenerate the P19 registration form from the frozen text
cd stasispath-tools && python3 -m pytest -q # 79 testsThe self-audit (red/sfsa_auditoria.py) is optional and needs the SFSA package: install it, or run with
SFSA_PATH=/path/to/sfsa/python python3 red/sfsa_auditoria.py. Without it the script stops with a clear message; nothing else depends on it.
Edit en/red/stasispath.yaml, rerun the engine, and bounds, derived quantities, margins, triangulation and sweeps all repropagate.
If a new value falls outside a predicted range, the framework reports a contradiction and names the law that fails — it does not absorb the data.
That has happened twice without being sought. Edit one edition and mirror the change in the other, then run the two checks above.
Development follows a fixed protocol, applied before any compute is spent:
- Inventory — is it already measured, or already on disk?
- Mathematics — write the numeric bound before running or reading anything.
- Reuse — what existing computation applies?
Five governing rules, of which the second is the load-bearing one:
- R1 — preserve tension; do not force a hypothesis closed.
- R2 — invariance of rules: never reformulate the board, never move a preregistered threshold to save the narrative.
- R3 — project the last three forced moves and stop.
- R4 — advance through critical squares in order.
- R5 — stop when the verdict is forced. If the opponent has one escape, there is no mate.
Does not: a single measurement, a new physical law, or an executed experiment. Everything inside was measured by someone else.
Does:
- a design specification that redirects the search — the requirement is 0.425 °C/min, not M22's 0.10, which admits a class of chemistries that M22-anchored screening excludes a priori;
- frontier
$X_2$ quantified on two axes, function and scale, with an empty intersection (the viability–stability plot is Fahy's, 2004; the 2026 axes are ours); - firm negative results — whole-body preservation is not viable by conduction, and the trunk cannot be cooled;
- a reusable method where contradictions are reported rather than averaged away.
The value of this work is not decided by 97.3 %. It is decided by whether someone puts a candidate solvent in a calorimeter. A framework cannot substitute for the instrument.
Released for academic and scientific research under CC BY-NC 4.0. Commercial exploitation,
resale and proprietary relicensing are prohibited. See LICENSE.
If you use StasisPath, please cite it:
Malia, A., with Claude (Anthropic) and Grok (xAI) (2026). StasisPath: A Quantitative Biophysical Framework for Metabolic Depression, Ice Avoidance, and the Thermodynamic Limits of Reversible Mammalian Preservation. StasisPath Initiative. DOI: 10.5281/zenodo.23087196
GitHub also reads CITATION.cff and offers a "Cite this repository" button.
