The simulation model
Every other page on this site arranges values somebody published. The Simulations section computes values nobody measured. This page sets out exactly what it computes, what each number rests on, and the things it is not able to represent — because a model whose assumptions are not written down is an assertion with a graph attached.
I
Why it is a separate section
The separation is the safeguard, not a matter of navigation.
An animated curve is persuasive in a way a table of measurements is not. Put a modelled time course on a compound dossier and it would become the most trusted thing on the page while being the least sourced — and a reader would have no way to tell it apart from the affinities beside it, which somebody actually measured.
So the sandbox lives on its own, says on every page that nothing in it was measured, and shows its parameter table at full size rather than behind a control. Nothing it computes is read back by any count, chart, dossier or integrity check elsewhere in the archive. The data flows one way: measured affinities in, modelled curves out, and out is where they stay.
II
The model
A one-compartment plasma model with a first-order effect site.
Concentration after an extravascular dose follows the standard one-compartment solution with first-order absorption; an intravenous dose skips the absorption term. The brain compartment is the unbound plasma concentration scaled by the unbound partition coefficient, and the effect site follows the brain compartment through a first-order lag. Occupancy is the Hill equation at n = 1.
extravascular C(t) = (F·D·ka)/(V·(ka−ke)) · (e^(−ke·t) − e^(−ka·t)) intravenous C(t) = (D/V) · e^(−ke·t) brain, unbound Cu(t) = C(t) · fu · Kp,uu effect site dCe/dt = keo · (Cu − Ce) occupancy O(t) = Ce(t) / (Ce(t) + Kᵢ) regional Σ over targets of O(t) × nTPM
Only Kᵢ and nTPM are measured. Kᵢ is this archive’s own affinity for the compound at that target, converted from the stored pX. nTPM is the transcript level the Human Protein Atlas reports for that target’s gene in that region. Everything else in those five lines is a parameter, and for most compounds nobody has published one.
Two ways of reading the same run. While the reader is moving through time, occupancy and regional engagement are bars at the chosen instant. At the far end of the axis that figure has nothing left to say — the compound has cleared and every bar is empty — so the bars give way to the whole course of each target and each region, drawn as small multiples on one shared scale, and the anatomical plates hold the peak the run reached rather than its last instant. Hovering any panel drops a cursor through every panel beside it, so fourteen targets, or the head and the body, can be read at a single moment. Dragging back along the axis returns to the instant view. Panels are ordered by peak, never by the value under the cursor, which at the end of a run would be an ordering by nearly zero.
III
The parameters
Five numbers and a route. Each is marked in the sandbox as measured or estimated, and each can be changed.
Elimination half-life
h
How long the plasma concentration takes to halve once absorption is over.
Class prior 3 — Median terminal half-life across the compounds here with a published one.
Volume of distribution
L/kg
Apparent volume the dose would occupy at the plasma concentration. Large means the compound leaves the blood for tissue.
Class prior 4 — Median apparent volume across the compounds in this file with a published value. These are mostly lipophilic amines that distribute well beyond total body water (0.6 L/kg), so a value in the low single digits is the right order; a highly lipophilic cannabinoid is an order of magnitude higher and is given its own value.
Fraction unbound
dimensionless
The share of plasma drug not bound to protein. Only unbound drug crosses into the brain.
Class prior 0.3 — Plasma protein binding is unmeasured for most of this archive. 0.3 is unremarkable for a small lipophilic base; a strongly bound cannabinoid is nearer 0.03 and is set individually.
Brain:plasma unbound ratio
dimensionless
Unbound brain concentration divided by unbound plasma. Below 1 implies active efflux; 1 is passive equilibration.
Class prior 1 — Unbound brain concentration equal to unbound plasma — i.e. passive equilibration with no net transport. This is the least committal assumption available and it is certainly wrong in detail for any compound that is a P-glycoprotein substrate, where the true value is below 1.
Effect-site equilibration
1/h
How fast the receptor compartment follows plasma. Small values put the peak effect long after the peak concentration.
Class prior 3 — Effect-site equilibration half-time of about 14 minutes, chosen so that modelled occupancy lags plasma by roughly the delay between peak plasma and peak subjective effect reported for the compounds here that have both.
A compound with no curated value for a parameter falls back to the class prior above, and the sandbox marks it estimated with that reasoning attached. Of the 8 compounds with a curated entry, 3 carry at least one published value. For every other compound in the archive, all five parameters are priors — the model still runs, and the table says plainly that it is running on borrowed constants.
IV
What the model cannot represent
Set out in full, because these are the ways a plausible-looking curve is wrong.
No distribution phase. One compartment means the drug is everywhere at once. The steep early fall after an intravenous dose, which is redistribution rather than elimination, does not appear at all — so the first minutes of an IV curve are the least trustworthy part of it. A two-compartment model would fit better and would need distribution constants nobody has published for these compounds, trading visible guesses for hidden ones.
No metabolites. Psilocybin is a prodrug and is simulated as psilocin; that substitution is stated on the page. Elsewhere an active metabolite simply does not exist in the model, so a compound whose effects are substantially carried by one is under-modelled by construction.
No tolerance, no desensitisation, no receptor reserve. Occupancy is computed at instantaneous equilibrium. A receptor that internalises, a system with spare receptors where a small occupancy produces a full response, and a compound whose effect wanes faster than its concentration are all outside what the equations can say.
Occupancy is not effect. Binding a receptor is not activating it. The model has no notion of agonist, partial agonist, antagonist or inverse agonist — an antagonist at 90% occupancy and a full agonist at 90% occupancy are drawn identically, and they do opposite things.
Transcript is not receptor density. The regional panel weights occupancy by nTPM, which is messenger RNA. Protein abundance does not follow transcript reliably, and functional receptor density follows it less reliably still. A dossier’s Systems plate refuses to compute this product for precisely that reason; the sandbox computes it and labels it as the model’s own output.
No physiology. There is no sourced transfer function from receptor occupancy to heart rate, blood pressure or temperature, so the model does not attempt one. Inventing a curve for those would be a different order of guess from estimating a rate constant, and it is not made.
One body. No variation between people, no genetic differences in metabolism, no interactions, no tolerance from prior use. The bodyweight field scales the volume of distribution and nothing else.
V
Reported milestones
The one place in the sandbox where something was actually observed in people.
A modelled curve with nothing to check it against is only self-consistent. Under the concentration plot, each run carries the times at which a named human study recorded a behavioral, physiological or mental effect. They are numbered on the figure and keyed to a list that cites the study, states what it found, and records what was read to confirm it.
The design is part of the observation. Most of these studies are double-blind and placebo-controlled. One is not: the psilocybin imaging study behind the two brain-measurement markers is open-label and unblinded, and each participant’s control is their own scan a week earlier. It is admitted because it states its dose, its route and its times, and because a within-participant imaging comparison is what those two markers rest on — but the entry says so where it is read, and its one self-report marker says what an unblinded self-report is worth. Where a single marker was measured at a different dose from the rest, the list prints that dose beside the time rather than letting the blanket statement stand for it.
They do not move. Each was measured at one dose, by one route, in one study. When you change the dose the curve shifts and the markers stay, and the gap that opens is the model’s error made visible. Scaling a marker so that it tracked the peak would turn an observation into a second opinion from the model — the one thing an observation must be free to refuse. Where a run drifts a quarter away from the study’s dose, the page says so instead of adjusting; where the route no longer matches, the markers come off the figure entirely, because a time measured after an oral dose says nothing about where it belongs on an intravenous curve.
Model landmarks are the other kind, and they are listed apart and drawn differently — unnumbered ticks on the axis rather than numbered squares above it. Peak plasma, peak effect site, and the fall to a tenth of peak are features of the curve on screen. They move with every parameter, and they claim nothing about anybody’s body.
The domains are the study’s instrument, not our reading of it. behavioral is something the person did or could no longer do, measured on a task; physiological is something measured on the body; mental is something the person reported.
The absences are deliberate. Ketamine has no milestones: the controlled subanaesthetic literature rates its effects carefully but reports them by scale rather than against a clock, and an effect with no time cannot be put on a time axis. Cannabidiol has none because it is not intoxicating at the doses studied and there is nothing timed to mark. Onset and time-to-peak-effect for the three classic psychedelics are missing for a narrower reason: Ley and colleagues report them in a table, and rather than approximate them from the plasma curve — a different quantity — they are left out. The same reasoning keeps three of the psilocybin imaging study’s findings off the axis: its altered-states and mystical experience scales were filled in at the end of the session and rate the whole day in retrospect, so the time on them is the questionnaire’s and not the experience’s; its music ratings were collected after each block rather than at a stated time; and its month-later changes in death acceptance, personal meaning and nature relatedness are timed, but a month off the end of a concentration curve. Each absence is written out on the page.
The clearest thing the feature shows is a disagreement. Vaporized THC still impaired lane-keeping at three and a half hours, after the subjective effects had gone and cognitive performance had returned to placebo; the modelled effect site is long past its peak by then. Intravenous DMT’s subjective effects hold steady from thirty to ninety minutes while plasma concentration keeps climbing, which is acute tolerance — something the equations here explicitly cannot represent.
VI
Where the numbers live
The parameter table is tools/pk_parameters.json, curated by hand. Its header records why the archive’s own pharmacokinetic rows are not read automatically: activities holds 279 rows typed T1/2, CL, Vdss, F, PPB and Fu, and they mix species, mix in vivo clearance with liver-microsome intrinsic clearance, and mostly record neither species nor PMID. Averaging them would produce a confident number out of incompatible things, so values are transcribed individually and only where the assay description says what was measured.
The model itself is src/lib/simulation.ts and runs in the browser, so editing a parameter redraws immediately. Nothing is written back: reloading the page restores the curated values. The milestones are tools/effect_milestones.json, curated the same way, with a verified field on every entry and on every work recording what was read and what it does and does not support.