Why this works at all
Short version: the bottleneck was never brains or credentials. It was hours.
The whole idea
Research is mostly labor. Labor is now cheap. Judgment isn’t, and that part stays mine.
Reading a hundred sources, checking a date against an archive, redrawing a figure, rebuilding a PDF, arguing with a referee. None of that requires a genius. It requires hours, and hours used to mean an institution. Now I rent the hours from a machine and keep the decisions: what to write about, which claim to make, which objection is fatal, what to cut, what to retract.
The pipeline
Same eight steps for every paper. Step 8 loops back to step 5 until the attacks stop landing.
UNVERIFIEDbuild_paper.py prints the PDFsteps 6–8 repeat until the attack file runs out of ammunition
Steps 1 and 7 are mine. Everything between is delegated and then audited. The audit is not optional; it is most of the work I do.
The paper is a Python file
No Word. No LaTeX. The document you’d cite is the output of a program, and that’s the trick.
Every project in the repo has the same skeleton:
The rule that carries the most weight: no number appears in the text or a figure unless it lives in data.py with a source attached. One entry looks like this:
BEEPLE_CHRISTIES = dict(
value=69_346_250, unit="USD",
source="Christie's auction results, 11 Mar 2021",
status="verified", # or "UNVERIFIED" — and it stays flagged until checked
)
The build script pulls from that file, lays out the pages, numbers the figures, and writes the PDF. Rebuilding the entire paper is two commands:
> python generate_figures.py wrote figures/fig1_hiring_margin.png ... fig5_electrification.png > python build_paper_v4.py nobody_to_blame_v4_core.pdf 26 pp nobody_to_blame_v4_full.pdf 30 pp >
Why a program instead of a document
- AI is exact with code. Tell it to change one paragraph in a 100,000-character script and it changes exactly that. Nothing else moves. Try that with a Word doc.
- Numbers can’t drift. The text, the tables, and the figures all read from
data.py. Fix a number once and it’s fixed everywhere on the next build. - Versions are real files.
build_paper_v3.pystill builds draft 3, forever. New draft = copy the script, edit, rebuild. Old drafts never break, and any two can be diffed. - One script, two editions. The economics paper builds a 26-page core and a 30-page full version from the same source. One flag.
- Models run, they don’t pose. When a paper makes a formal claim, the model is a script that writes its results to JSON, and the paper cites that output. If the model is wrong, the JSON says so before a reader does.
Why drafts improve fast
Cheap rebuilds change how revision feels. You stop defending sentences and start spending edits.
A fix is usually a tiny diff. Say a fact that was flagged UNVERIFIED finally gets pinned down:
BEEPLE_CHRISTIES = dict( value=69_346_250, unit="USD", - source="press coverage, Mar 2021", - status="UNVERIFIED", + source="Christie's auction results, 11 Mar 2021", + status="verified", )
Two commands later there’s a new PDF with the correction in the text, the table, and the figure caption. Because a full rebuild costs seconds, a revision pass can make forty small edits in an evening instead of five. That’s the entire speed story, and the file dates back it up:
Physics paper, first full PDF. Too long, too soft, didn’t know it yet.
Three revisions in one day. Restructure, cuts, figure pass.
Attack notes, defense notes, verdict filed against my own draft. The bench scores the formal model a 3 out of 10.
Toy model written, run, and cited. Changelog kept. The 3/10 was the to-do list.
The economics paper moved even faster: drafts 1 through 4 inside a day, including throwing away and rebuilding the central claim. The art paper went from draft 1 to draft 3 in an afternoon, most of that spent swapping placeholder plates for real museum scans. None of that pace is possible when a revision means re-touching a 25-page document by hand.
Attack, defend, improve
Nobody at home hands you a hostile committee. So I commission one.
When a draft feels done, it goes on trial. Three files, three jobs:
ATTACK_NOTES.md
A no-mercy referee pass. Its job is to kill the paper: name the weakest claim, the sloppiest figure, the sentence that overreaches. Charges come back in a table, with verdicts.
PROSECUTIONDEFENSE_NOTES.md
The best honest answer to every charge. Concede what’s true. Rebut what isn’t. Skipping a charge is not allowed.
DEFENSEVERDICT.md
An impartial ruling, charge by charge, with scores per dimension and concrete orders for the next draft. Not a pep talk.
BENCHThe verdict is the part that matters, because it disagrees with me in writing. On the physics paper it scored honesty a 9 and the formal model a 3, then ordered the fix: cut, state the claim louder, build a toy model, define what would kill the thesis. Draft 2.4 did those four things.
The economics paper’s notes contain the line “Draft 3’s central claim is retracted.” The attack cycle killed my thesis and I kept the receipts: superseded drafts stay in the folder, and every project carries an error log of numbers that were wrong in earlier versions, so the same mistake can’t sneak back in. A review process that never wins an argument against you isn’t a review process.
Picture grabs
Two pipelines: charts generated from data, and real public-domain scans fetched by script.
Charts are code, so they regenerate whenever a number changes and every paper shares one look. Historical images are different. The art paper needed the actual Niépce heliograph, Daguerre’s boulevard, Monet’s Impression, Sunrise, Malevich’s Black Square. A small script resolves each work against the Wikimedia Commons API, pulls a public-domain scan, and writes a _sources.tsv license log next to the files. The figure script notices which real scans exist and swaps them in over the drawn stand-ins; captions adjust on their own.
generate_figures.py. Every number traces to data.py.
_sources.tsv.Every image can answer “where is this from, and am I allowed to use it?” The UNVERIFIED flag, applied to pixels.
The papers
Same pipeline, four fields. Links open the files in this folder.
The Compression Hypothesis
v1 → v2.4 · 5 revisions · full attack/defense/verdict cycle · toy model
What Bell tests, contextuality, holography, and evolutionary interface theory do and don’t imply about “objects in spacetime.” A position paper that had to survive its own referee-from-hell before v2.4 existed.
Nobody to Blame
v1 → v4 in under a day · draft 3’s central claim retracted · model runs as code
Who gets blamed when AI displaces work, and why the political response takes the form it does. The politics follow attribution, not size, and AI is the first big displacement with nobody to point at.
The Disarmed Countermovement
Draft 1.1, core + full · companion to Nobody to Blame · carries the history and philosophy cut from v3
Marx, Polanyi, and the politics of losing labor’s leverage. Every prior countermovement converted displacement into reform because labor was still needed; if AI removes that leverage, the response is bargained (ownership), bought (income without power), or broken (repression) — and the bargaining window closes while labor still matters.
The Shareholder Commonwealth
v1 core + full · original claim flagged as the paper’s own · fund arithmetic as code
The case for universal equity endowment, labeled as advocacy in line one. Its original claim — equity-funded insurance that pays out most when wages collapse — is flagged in the disclosure as mine to defend, not borrowed.
From Photography to Blockchain
v1 → v3 in an afternoon · 53 references · 15 headline numbers re-verified · real PD plates
Digital and blockchain-native art as a major movement, argued against photography’s slow climb into the canon. The plates are real public-domain museum scans, pulled by the Commons pipeline with a license log.
The shelf keeps growing
Newest drafts land here with their full process folders — research notes, data.py, figure scripts, the build program, and the attack/defense/verdict record. Compact entries now; fuller write-ups as they earn them.
Same Machine, Different Hemisphere
Draft 2 · 26 pp · attack/defense/verdict on file
How Thailand and the United States each manufactured a national culture, where the manufacturing failed, and why 2026 is an American ebb tide and a Thai door ajar — not an ending in either country.
The Permanent Exposure
Draft 4.0, core + full · two full review cycles (v1 → v4)
Why the quantum threat to blockchains is a public-key problem that already happened, and what AI does to the clock. A position paper on quantum, AI, and the limits of “be your own bank.”
The Journeyman Age
Draft v4, core + full · revised under adversarial review · numeral audit on file
AI, the printing press, and the price of standing behind work — a position paper on naming and navigating the present information revolution.
The Intolerable Fact
Draft v4, core + full · began as Unknown Face (v1–v2), renamed at v3 — the whole trail ships
Jung’s shadow, the science of what we cannot bear to know, and the case for looking anyway.
So, the PhD question
Depends what you thought the degree was for.
| What the PhD bundled | What stands in for it here | Covered? |
|---|---|---|
| Years of reading time | Research sweeps with sources and UNVERIFIED flags | Mostly |
| Assistants’ hands | The Python build system; figures and models as code | Yes |
| A hostile committee | Attack → defense → verdict, run until it stops landing hits | Yes, meaner |
| Peer review by strangers | Nothing. Self-attack is not independent review. | No |
| Credentialed trust | Only a public trail of honest work, kept over time | Not yet |
The degree still buys real things, and pretending otherwise would be the kind of overclaim the attack files exist to catch. But the core capability people meant by “you need a PhD for that” — producing a rigorous, sourced, illustrated, self-critical paper — is now a workflow on a home PC. What’s left is the old problem: having something true to say.
One line to share
The paper is a program. The referee is hired. The judgment is still mine.
Numbers with sources. Figures from scripts. Drafts that rebuild in seconds. A review that’s allowed to win. Everything disclosed.