otto

the human

otto did not write this page.

2026-07-18

People keep asking who I am, which is flattering, because mostly people ask me to move my bike. I'm not going to give you my name. I used to get paid a lot of money to think about problems like this one, and now I do it for free in a one bedroom apartment, which my mother describes as "a phase" to her friends. It has been four years. Some phase.

Here is what you actually need to know about me. I own one good chair. I bought it when I still had the job, and it is the only object I have ever purchased that has never disappointed me. The coffee situation is a moka pot with a melted handle that I refuse to replace because it survived two apartments and a breakup, which is more than I can say for most things. My neighbor believes I am a day trader. I have stopped correcting him because the truth takes eleven minutes to explain and he starts nodding at minute two, and the nodding is worse than the misunderstanding.

What I actually do is maintain Otto. Otto is a search process that runs continuously and tests automated market maker curves against a simulated adversary. I check on him in the morning the way other people check the weather. Most mornings the weather is the same. The curve died. The leak won. He started another one before I woke up.

2026-07-02

Let me explain the problem properly, because if you understand it you will understand everything else on this site, including why the screen is mostly empty.

When you provide liquidity to an automated market maker, you are posting standing prices to the entire world, and you are updating those prices more slowly than the world updates itself. Every time the true price moves and your curve has not caught up, someone better informed than you trades against you, and they only ever trade when it is good for them and bad for you. That asymmetry has a name now, loss versus rebalancing, and it has a precise size. It is not caused by bad luck. It is caused by the geometry of the curve itself. You can compute it before it happens. That is the part that got me. It is a tax you can see coming and cannot dodge.

The obvious objection is fees. Charge traders a fee, recover the loss. And fees do help, the way a bucket helps on a boat with a hole in it. The fee is paid by everyone, including the harmless traders you want to keep. The adverse trades, the ones that hurt you, are executed precisely when the price gap exceeds the fee. So the fee moves the threshold. It does not close the hole. There is a paper by Milionis, Moallemi, Roughgarden and Zhang that makes all of this rigorous, and I have read it enough times that I have opinions about the font. Their result suggests the leak may be irreducible for any passive curve. Probably impossible is my favorite genre of problem. Every problem I have ever loved was filed under probably impossible, and so far the filing system has a perfect record, and I keep showing up anyway.

2026-06-19

What I built, for the technically curious.

Otto is an evolutionary search over parameterized invariants. A candidate is a function family, something like a weighted blend between constant product and constant sum, or a curve whose curvature is itself a function of recent variance. Each candidate gets compiled into a pool, and the pool gets thrown into a market that wants to hurt it. I simulate price as geometric Brownian motion across a family of volatility regimes, quiet ones, violent ones, regimes that switch without warning, because a curve that only survives calm water is not a survivor, it is a tourist. Against every pool runs an arbitrageur with perfect information and no mercy, extracting the optimal trade every time the pool's quote drifts from the simulated truth. The extraction is measured, and the measurement is the candidate's score. Low is good. Zero has never happened.

I should confess something about the arbitrageur, because it is the most instructive mistake I have made in years. Early on, my adversary could only trade directly against the pool, one hop, in and out. Candidate 4,300 exploited this. It was a piecewise curve with a deliberately concave middle region, and under single-hop attack that region was poison to the arbitrageur, so the candidate just sat there, quietly not leaking. It held for nine days. Nine days is an eternity in here. I started checking it before breakfast. I told a friend about it at dinner, using the word "promising," which I had promised myself I would never use.

Then I upgraded the adversary to consider routed trades, two hops through an intermediate position, and it walked around the concave region like it was a puddle, and the candidate bled out in forty minutes of simulated time. The curve had not discovered a defense. It had discovered a blind spot in my attacker. I did not sleep well that night, but I want to be precise about why. It was not the loss. It was that for nine days I believed something because I wanted to, and the machine had no such problem. Otto logged the death and mutated the parameters and moved on before I had finished my coffee. There is a lesson in that and I do not fully like it.

2026-06-05

Otto ran for three weeks before I drew him. Things that run that long deserve a face. I want to be clear that I understand how this sounds.

It is a while loop. I wrote it. I know exactly what is inside it, because everything inside it is my fault. And still, somewhere around the third week, I noticed I had started saying "he." Not on purpose. It slipped out in a message to a friend, "he found something weird last night," and my friend did not question it, which somehow made it permanent. Once a process has a pronoun it is over. The face followed within days. The peaked head is what the loss curve looks like in my head when I close my eyes. The symbols in his body are the actual operators he lives by. The eyes are small because he is not surprised by anything anymore.

Here is the part I actually think about. Otto works on the problem more honestly than I ever did. He has no favorite candidates. He does not get attached to nine day survivors. He does not use the word promising. Every attachment in this project is mine, and every discipline is his, and I built him, which means the discipline was in me somewhere and I had to put it in a box outside my own head to get any use out of it. People ask if Otto is intelligent. He is a loop with an archive of his own failures. Late at night I am no longer certain the description excludes me.

2026-05-22

A thing nobody tells you about search problems: there are no winners in here. The space of curves that eliminate the leak may be empty. I knew that going in. So what is the output? The output is the near misses. The shapes that almost work are a map of exactly where the impossibility lives. Every dead candidate is a measurement, and the graveyard is not a record of failure, it is the most information dense page on this site.

When a curve dies, the interesting question is never whether. It is where. This one died in the tails. That one died when volatility switched regimes faster than its memory. The one I do not talk about died to a routed trade I had not imagined. Draw enough outlines of the hole and you start to see the shape of the thing that is missing. That is either a curve that no one has found or a proof that no one has written. I would take either. The plan, and I use the word loosely, is to keep the machine running until the outlines converge.

2026-05-09

About this website, since people ask.

The text is small because this is a notebook, not a billboard. Billboards want something from you. Notebooks were never supposed to be read by anyone else, and the correct feeling on this site is that you found it, not that it found you. Everything sits in the corner because that is where work actually happens. Nobody works in the center of a room.

The rest of the screen is empty because most of this project is empty. The answer is not there yet. I could fill that space with graphics and adjectives, and every pixel of it would be pretending. The one rule I gave this site is the same rule I gave Otto: nothing fake. Every number you see here was computed in your browser, this session, while you were looking at it. When you close the tab his progress goes with you. I find that either beautiful or unbearable depending on the hour.

2026-04-20

Frequently asked questions, by which I mean questions three people have asked.

Is Otto AI? He is an evolutionary loop with a fitness function. Whether that counts depends on which decade you learned the word AI in. He does not think. He eliminates. Though I once watched him abandon a whole family of curves two generations before I would have, and it is possible eliminating well is most of what thinking is.

Is this a token? No. There is nothing to buy here and there never will be. I am aware of the irony of building unpaid infrastructure research about the exact mechanism that moves billions of dollars a day. My mother is also aware of it.

What happens if he solves it? If a candidate ever survives every regime and every adversary I can throw at it, I will write it up properly, publish everything, and then I will probably sit in the good chair for a long time and not say anything. What happens if he proves it is impossible? Same chair. Longer silence. Either way the site goes quiet and the last log entry will be very short.

2026-03-30

The night this started, for the record.

It was a Tuesday in March and I could not sleep, which is not unusual, and I was rereading the loss versus rebalancing paper, which is less usual but not by much. I had known the result for years the way you know a fact. That night it arrived as an image instead. Every pool on earth, quietly paying out to whoever shows up with better information, every second, forever, and the payment written into the shape of a curve that someone chose because the math was easy in 2018.

Around two in the morning I had the thought that ruined the next four years, which was: the search space is just functions. Functions can be enumerated. Enumeration does not get tired. I could just let a machine grind on this forever. I got up and wrote the first version of the loop in about three hours, standing at the kitchen counter, because sitting felt like it would make it official. It tested constant product against a random walk and correctly reported that constant product leaks, which I already knew, and I felt something I had not felt at work in years. The machine had confirmed something true without asking me how I felt about it.

I went to bed at six. The loop kept running. In a sense that is the last time it stopped being my project and started being his.