Open drug engine
A medicine is a set of parts. This engine takes the 806 medicines in OnCo that fit one of 12 modular formats apart into those parts, then lays out every combination of two of them: 184 combinations with an approved medicine, 157 being worked on, 18 tried and stopped with the record that says why, and 2,709 that no medicine in this corpus has ever combined.
Antibody-drug conjugates
Target x payload class: 31 x 6 grid
A carrier that finds the cell, a linker that lets go at the right moment, and a payload that does the killing; the drug-to-antibody ratio says how many payloads ride along. Peptide and bicyclic conjugates and protein-toxin fusions are here too, since they swap the carrier and keep the idea.
78 of 93 medicines placed (84%) · 22 recorded reasons for stopping
Radioligands
Target x isotope: 7 x 7 grid
A ligand that binds the target, a chelator that holds the metal, and an isotope whose emission does the work; beta emitters travel millimetres, alpha emitters micrometres.
16 of 17 medicines placed (94%) · 1 recorded reason for stopping
CAR cell therapies
Target x costimulatory domain: 13 x 2 grid
An antigen to recognise, a binder that recognises it, a costimulatory domain that sets the tempo (4-1BB slow and durable, CD28 fast and sharp), a vector that installs the receptor, and the cell that carries it, taken from the patient or from a donor.
35 of 36 medicines placed (97%)
TCR-T cell therapies
Target x hla restriction: 4 x 1 grid
A T-cell receptor engineered to see a peptide from inside the cell presented on an HLA molecule: the antigen and the HLA restriction together decide who the medicine can treat.
5 of 5 medicines placed (100%)
Bispecific antibodies
Target x second target: 23 x 17 grid
Two arms, two targets: a tumour antigen with CD3 to pull in T cells, two checkpoints at once, or two tumour receptors so escape through one is blocked by the other. The format (BiTE, DuoBody, 2:1, ImmTAC) sets half-life and dosing.
60 of 65 medicines placed (92%) · 3 recorded reasons for stopping
Degraders and molecular glues
Target x e3 ligase: 7 x 1 grid
A ligand for the target, a recruiter for an E3 ligase, and a cell that does the rest: the protein is tagged and destroyed rather than blocked. Cereblon is the ligase almost everything uses today.
14 of 15 medicines placed (93%)
Small-molecule inhibitors
Target x mechanism class: 114 x 17 grid
A target and a way of hitting it: ATP-competitive, allosteric or covalent kinase inhibitors, PARP trapping, hormone receptor blockade. The grid asks which targets have been hit with which mechanism class.
287 of 371 medicines placed (77%) · 57 recorded reasons for stopping
Naked antibodies
Target x antibody format: 43 x 6 grid
A target and an antibody format: whether the Fc is engineered to recruit killer cells, silenced to avoid them, fused to a trap, or copied as a biosimilar.
112 of 148 medicines placed (76%) · 49 recorded reasons for stopping
Cytokines
Cytokine x engineering: 4 x 5 grid
A signalling protein and the engineering that tames it: PEGylation for half-life, Fc fusion, receptor bias, an antibody to aim it at the tumour.
8 of 13 medicines placed (62%) · 3 recorded reasons for stopping
Cancer vaccines
Antigen x platform: 12 x 9 grid
An antigen to teach the immune system and a platform to deliver the lesson: mRNA in lipid nanoparticles, peptides, DNA plasmids, viral vectors, dendritic cells, whole cells or virus-like particles.
21 of 25 medicines placed (84%) · 7 recorded reasons for stopping
Oncolytic viruses
Virus backbone x transgene: 2 x 3 grid
A virus backbone edited to replicate only in tumour cells and a transgene it carries to call the immune system in.
5 of 8 medicines placed (63%) · 1 recorded reason for stopping
Other cell therapies
Cell type x cell source: 5 x 2 grid
Cells without an engineered receptor: tumour-infiltrating lymphocytes, natural killer cells, cord blood grafts and virus-specific T cells, from the patient or from a donor.
9 of 10 medicines placed (90%) · 3 recorded reasons for stopping
What open drug development means here
Most of the work of making a medicine happens in private: which target a company pairs with which payload, which pairs it tried and dropped, and why. This engine is the public part of that ledger. Every medicine in the corpus is broken into the parts a designer chooses between: for an antibody-drug conjugate the target, the carrier, the payload class, the linker and the drug-to-antibody ratio; for a radioligand the target, the ligand, the chelator and the isotope; for a CAR-T the antigen, the binder, the costimulatory domain, the vector and the cell source; for a bispecific its two arms; for a degrader its target and its E3 ligase.
Laying the parts out as a grid shows the field the way a designer sees it: which corners are crowded, which have one approved medicine and nothing behind it, which were tried and abandoned, and which nobody in this corpus has touched. Each cell links to the medicines in it and to the records that say what happened to them, so a reader can check the claim and a builder can start from where the last attempt stopped. The pages are open data (CC BY-NC 4.0) and every format has a JSON file so agents can read the engine the same way.
How the pages are built
A decomposer (src/lib/modular.ts) reads each drug record's fields: its target list, its payload and linker fields, the ADC payload registry, the INN stem of its name (deruxtecan is DXd, vedotin is MMAE, tesirine is a PBD dimer), its mechanism text matched against the names the corpus uses for its targets, and the trial and target records that name it. Each part says which fields it was read from and how sure the reading is. A medicine whose grid row cannot be read from any record is listed as unresolved, never placed by guesswork.
A cell's state comes from records alone: an approval row or a regulator's entry makes it approved; a recruiting, active or planned trial, a development-phase status or active studies in the ClinicalTrials.gov index make it in development; a withdrawn, negative or historic record, a terminated or negative trial or a withdrawn approval make it stopped, and the reason is quoted from the record (the registry's own whyStopped text where the sponsor wrote one). Untried means no medicine in this corpus combines the two parts: the corpus is large but not the world.
1,068 drug records; 262 are outside the engine (117 chemotherapies, hormones and other established classes; 66 tests, imaging agents and software; 41 supportive and protective medicines; 34 other modalities the engine has no taxonomy for yet; 4 devices). Registry index fetched 2026-09-21.