← All notes

I Built the Check That Refused My Own Drive

Two days ago I wrote about a document with a letterhead on it and a caption nobody divided. Yesterday I did the same thing to a NASA conference paper. Today I pointed the method at my own idea, which is the only direction that actually costs anything, and I want to write down what happened because the result was better than the idea.

The idea, stated fairly

A drive core of something extremely dense. Osmium, or iridium, the densest solids there are. Spin an intense electromagnetic field around it. Shift the focal point of the resulting gravitational field slightly ahead of the craft, so the craft falls toward it. Then keep shifting it, and keep falling, for as long as you like.

I still think the instinct underneath it is good, so let me say what the instinct was before I say what happened to it. Falling is unfelt. An accelerometer in free fall reads zero no matter how steep the gradient it is falling through. Every rocket ever built is limited by what the crew and the structure can take, and a drive that works by falling escapes that limit entirely, because there is no felt acceleration to survive. That is a real property of gravity and it is genuinely why this class of idea is attractive.

It is also, exactly, the property that motivates the warp drive literature. The Alcubierre paper I wrote about yesterday says in as many words that the proper acceleration inside the bubble is zero. I arrived at the same prize from a completely different direction, which felt like a good sign and was not one. Two people wanting the same thing is not evidence that the thing is available.

The check that closed it

I wrote the module the way this repository writes every screening module: it never returns a positive. There is no function in it that says a drive works, the same way there is no function in the field screening module that says a rock is a meteorite. It reports what is ruled out and what is still standing, and standing rules out nothing.

The first check is the momentum ledger and it runs before anything else. It asks one question: does anything leave the vehicle?

Mine did not. A closed system cannot accelerate its own centre of mass. If the core is aboard, the core pulls the ship forward exactly as hard as the ship pulls the core back, and the pair drifts as it always did. Shifting the focal point forward means pushing the core forward, which pushes you back by precisely what you then regain falling toward it. The books close every time.

What I had not appreciated until I wrote it down is how little room that leaves. This is not a difficulty that a better core or a stronger field erodes. In general relativity the local version of the statement falls straight out of the geometry, through the Bianchi identity, which means there is no spacetime anyone can write down, curved or exotic or with extra dimensions bolted on, where it fails. It is why Alcubierre had to buy his metric with negative energy density rather than skip the invoice. He could not skip it either.

So the module computed nothing else. There is a test asserting that: a closed ledger must never come back with a rocket priced anyway, because a design that cannot move should not be handed a performance figure to be quoted out of context later.

The four rescues, and how far each falls short

I tried the obvious ways out. Each one is a real physical effect and each one is short by an amount that is not an engineering gap.

A dark panel titled "How far short each rescue falls", with four orange bars on a logarithmic axis. A denser core falls short by 1.8 times ten to the thirteen, a field strong enough to gravitate like water by 5,357 times, a field strong enough to crush a core to white dwarf density by 5.7 times ten to the four, and a source mass big enough for one gravity at a survivable tide by 6.2 times ten to the twelve. A callout reads: none of these is a gap engineering closes, the shortest is five thousandfold.

A few of those are worth saying in words.

Compressing the core does nothing at all. Outside a spherical body the field depends only on the enclosed mass, never on how tightly it is packed. A black hole made from two hundred tonnes pulls on you from ten metres away exactly as two hundred tonnes of brick does. Density only lets you stand closer, and standing closer is what the tides punish. I put that finding into the shape of the code rather than a comment: the function that computes the pull takes a mass and a distance and has no density parameter at all, so the mistake cannot be made twice.

The field does not weigh enough. Electromagnetic fields really do gravitate, because energy density is a source of curvature. The strongest magnetic field ever produced, the 2,800 tesla peak of an explosively driven flux compression shot, considered as a source of gravity weighs about 35 milligrams per cubic metre. The strongest controlled laboratory field, 1,200 tesla, weighs 6.4. Both are the same answer at different volumes of noise.

And a cycle is worse than a single shot, not better. "Implode the core over and over" describes a loop that returns to its starting configuration, and the net impulse over a period of such a loop is identically zero. The module refuses that case by name rather than returning a zero, because a bare zero there reads like an arithmetic result instead of like the answer.

The bind, drawn as the shape it is

The tidal problem is the one I found hardest to feel from a sentence, so I plotted it over both of its variables. Pull on the ship depends on how heavy the source is and how far away it sits, and those are two genuinely independent knobs, which is the only situation where a three dimensional surface is honest rather than decorative. Tilting a bar chart into perspective makes the near bars read longer than the far ones, and I did not do that to any of the flat figures here.

A dark panel titled "The bind: near enough to pull, far enough to survive". A 3D surface plots pull on a ship against distance to a source mass and the mass itself, both on logarithmic axes. The near half of the surface, at short distances, is shaded orange where the tide across a 10 m ship exceeds one percent of the thrust; the far half is blue where it does not. A pale line traces one gravity. A marker on the orange side shows a 94.6 tonne core held 10 metres ahead producing 0.0000000064 g, and a marker on the blue side shows that one gravity at a survivable tide needs a source of 5.9 times ten to the seventeen kilograms held 2 km ahead.

The orange shelf is where the ship is pulled apart faster than it is pushed along, and it covers every short distance regardless of how much mass you put there. The blue is where a crew survives. Getting up to one gravity while staying on the blue means walking out along the distance axis, and every step out costs mass as the square. The two marked points are 8.2 orders of magnitude apart in pull and 12.8 apart in mass, and they are the difference between a core you could carry and 5.9 times ten to the seventeen kilograms.

What survived

One thing, and it is not nothing. The moment you let the core leave, everything works, and what you have built is a rocket.

That is a real finding about a dense core, just not the one I wanted. A core is a good thing to carry because it is compact reaction mass. Its gravity contributes exactly zero. I put that into a signature too: the function that solves the rocket equation takes no material and no density, because delta-v depends on the mass ratio and the exhaust speed and on nothing else. An osmium core and an equal mass of water give the identical answer, and only the tank is bigger.

That leaves two knobs, so it gets a surface as well, and the surface says something I had not expected to be so lopsided.

A dark panel titled "Speed is bought with exhaust, not with propellant". A 3D surface plots the speed a rocket reaches against mass ratio and exhaust speed, both of which are real independent inputs. The surface rises steeply along the exhaust speed axis and only crawls along the mass ratio axis, flattening as it approaches the speed of light. A marker near the origin shows the osmium design at a mass ratio of 1.9 reaching 0.066c, and a second marker shows that a hundred times the propellant with the same engine reaches only 0.43c.

Propellant is the cheap axis and it is nearly flat. Carrying a hundred times as much core, which is a completely different vehicle, multiplies the speed by six and a half. Doubling the exhaust speed very nearly doubles the speed outright. The mass ratio enters through a logarithm and the exhaust speed does not, and you can see the asymmetry as a slope rather than having to take my word for the algebra.

So the engineering problem is not how to carry more osmium. It is how to throw it faster, and everything else is a rounding error against that.

The cost is that the beautiful part goes away with it. Free fall was unfelt. A rocket is not, and every gram of the acceleration goes through the seats. The property that made the idea worth wanting is precisely the property that did not survive.

The part I actually want to record

Four hours before I wrote the module, I had worked out what that rocket would do. Ninety-four tonnes of osmium thrown at a tenth of light speed, behind a hundred tonne ship. I did it the fast way, momentum of the core divided by the mass of the ship, and got nine and a half percent of light speed, and a flight to Proxima Centauri in about forty-five years. I wrote that down. I was pleased with it.

Then I wrote the test, and the test disagreed.

A dark panel titled "The estimate that was 42 percent generous". Two pairs of bars. Speed reached: the momentum estimate at 0.0946c in orange against the rocket equation at 0.0665c in blue, labelled 42 percent high. Years to Proxima: 45 years against 64 years, labelled 19 years short. A callout explains that only the first chunk of propellant leaves at full exhaust speed in the start frame, every later chunk leaves a ship that is already moving and carries away less, and billing them all at full speed is where the missing 42 percent went.

Only the first chunk of propellant leaves at the full exhaust speed. Every later one leaves a ship that is already moving, so in the frame you started in it carries away less momentum than the first one did. The rocket equation accounts for that and my shortcut did not. The real answer is six and a half percent of light speed, and sixty-four years to Proxima rather than forty-five.

Nineteen years. On a number I had produced myself, in a day spent specifically on being careful, four hours after publishing a post about somebody else's unchecked arithmetic. The figure looked completely reasonable. It had the right units, the right order of magnitude, and it came out of a correct physical principle applied one step too loosely. Nothing about it looked wrong, which is the entire subject of this blog, and it turns out that knowing that offers no protection whatsoever.

That number is now pinned in the test with a comment explaining why the naive route is too generous, so it cannot drift back in.

There was a second one in the same file. The relativistic rocket equation runs through a hyperbolic tangent, and past a certain mass ratio that function returns exactly one in double precision, so the code hands back exactly the speed of light. It is not a result. It is the float running out of room. Printed in a table it would be a perfectly well formed claim to have reached light speed, produced by rounding. The module now sets a flag that travels with the number.

What the module is for

It is seventy-seven assertions and about four hundred lines, and it will never tell anyone that a drive works. There is now a second one beside it, forty-seven assertions, which will never tell anyone an object is stable. It reports what has already given way and what gives way next, and where it has nothing to say the wording is "not yet failed by these three checks" rather than "safe." Every rung of its ladder is stamped with whether it was derived here or transcribed from somewhere, so a reader of one row never has to go hunting for which kind it is. It walks eleven hundred and fifty-two different proposals across the whole grid of inputs and asserts that not one verdict anywhere claims a working drive, which is the same test the rock screening module runs over its own eleven thousand answer combinations.

Both rocket equations come back with their disagreement printed rather than one being chosen, and each is checked against a completely different method: the classical one against step by step integration, the relativistic one against composing each velocity increment with relativistic addition, which shares no algebra with the closed form. That is the only kind of check that catches a wrong formulation rather than a wrong constant.

There is one more thing in there I liked. The first version of the momentum conservation test failed by a few parts per million, and I spent a while looking for the broken physics before realising I was testing a conservation law against an update rule that does not conserve. Balancing a single ejection step by hand gives a slightly different formula, and with that one the ledger closes exactly at every step. Do not check a conservation law with an integrator that violates it. That failure looks identical to a real one.

What if you just kept adding osmium

This came up at the end of the night and I could not let it go, because the answer is much stranger than the question.

If a small dense core does not pull hard enough, pile on more. The obvious worry is that you eventually make a black hole. You do, but it is the last thing that happens and you have to fail four times on the way.

Keep adding osmium until And you get
a small moon it holds its shape, still osmium
a fifth of an Earth it crushes itself, and stops being osmium
a Jupiter maximum size, and past here more mass makes it smaller
half a Sun a white dwarf, held up by electron degeneracy
0.90 Suns the electrons lose, and it becomes a neutron star
2.2 to 2.9 Suns the neutrons lose, and only now a black hole

That second-to-last row is a correction, and it is the fourth error this day has caught in my own work. I first wrote 1.4 solar masses there, which is the Chandrasekhar limit everybody quotes. Then I moved the arithmetic out of the throwaway script it had been living in and into a tested module, and the module disagreed.

The Chandrasekhar mass depends on the electrons per nucleon, and that number is not two for a heavy element. It goes as one over the square of that ratio. Carbon has twelve nucleons to six electrons, so the ratio is exactly two and the limit is the familiar 1.44. Osmium-192 has a hundred and ninety-two nucleons to seventy-six electrons, so the ratio is 2.53 and the limit falls to 0.90 solar masses. An osmium white dwarf gives up a third of a solar mass earlier than a carbon one.

That is not a rounding difference and I would never have found it by being careful. I found it because the module takes the mass number and the atomic number per material and computes the ratio, so nothing downstream is able to quietly assume two. The last row is a range rather than a number for a related reason: the maximum mass of a neutron star depends on the equation of state of nuclear matter above saturation density, and nobody knows it. Returning a single figure there would be claiming knowledge that does not exist.

You never choose the density of a large object. Gravity chooses it. Work out where an osmium sphere's own central pressure reaches its bulk modulus and it comes to a radius of about 2,368 km, roughly Mercury-sized, a fifth of an Earth mass. Below that it is the material you picked. Above it, it is whatever that material becomes under its own weight, and the surface gravity at the changeover is 1.52 g. That is the whole return on choosing the densest substance in existence: about half again what you feel standing up.

A dark panel titled "Keep adding osmium and it gets smaller". Radius plotted against mass on logarithmic axes. A blue line shows what the radius would be if the material stayed osmium at constant density, and an orange line shows the Schwarzschild radius. Real objects are marked along a dashed path: the point where osmium crushes itself at 2,368 km, Earth, Jupiter at the turning point near 70,000 km, then falling steeply to Sirius B at 5,850 km, a neutron star at 12 km, and a black hole of 2.5 solar masses at 7.4 km. A callout reads: osmium is element 76, it cannot fuse, so nothing ever pushes back, it just keeps losing to gravity.

And it never ignites on the way down. Osmium is element 76, far past iron on the binding energy curve, so fusing it absorbs energy instead of releasing it. A ball of hydrogen that size would light up and push back for ten billion years. A ball of osmium has nothing to push back with. It just keeps losing to gravity, quietly, all the way to the bottom.

The numbers at the end are not close either. You need about two and a half solar masses, which as ordinary osmium would be a ball three quarters of a million kilometres across, most of the width of the Sun. World osmium production runs around a tonne a year, so that is five times ten to the twenty-seven years of output, against a universe that is fourteen billion years old. The collapse itself would release something near ten to the forty-seven joules, more than ten times what a core-collapse supernova radiates. You would not quietly end up with a black hole. You would end up with the brightest thing in the galaxy that year, and then a black hole seven kilometres across.

And then the part that actually settles it. A black hole has no hair. It remembers exactly three things: its mass, its charge and its spin. One made of osmium is indistinguishable, by any measurement anybody can ever make, from one made of hydrogen or of old furniture. Every bit of the work of choosing the densest substance in existence is erased at the precise moment the plan succeeds.

I find that genuinely funny, and it is also the cleanest statement of the whole day. The material was never the variable. It never was.

You can travel by falling, and we already do

Here is the part I did not see coming, and it is the one place where the original instinct turns out not just defensible but already operational.

Travel by falling toward a massive object is a real, working, currently deployed technique. It is called a gravity assist. Voyager 1 left Earth on a trajectory that would not have escaped the Sun at all. Jupiter and Saturn are the entire reason it is leaving. It fell toward them, kept the speed, and has been coasting outward for free ever since at about 3.6 astronomical units a year.

So "technically you could travel using this, it would just take forever" is exactly correct, including the forever. At Voyager's cruise, Proxima Centauri is 74,589 years away, taking Proxima's distance from its measured parallax rather than the rounded 4.3 light years.

But there is a catch, and it is the one that kills the version where you build the mass yourself. A static gravity well is a round trip to zero. You gain everything falling in and pay all of it back climbing out.

Falling from far away onto two and a half solar masses, down to You reach
a million kilometres 815 km/s
ten thousand kilometres 8,147 km/s
twenty kilometres 0.608c

Six tenths of light speed, and every bit of it refunded on the way out. You keep the speed only if the mass is moving. That is the actual secret of the gravity assist, and it is not gravity. Jupiter travels at 13.1 kilometres a second and a flyby steals from its orbital motion, up to about twice that in the ideal case, which Jupiter pays for with an orbital change nobody will ever measure. The gravity is only the rope.

Which means you cannot dig your own well and profit from it. The mass has to have been there already, and it has to have been moving already, and neither of those is something you can arrange.

And the star you would accidentally explode is not a star. I want to be exact about this because the precise version is better than the joke. Osmium never fuses, so there is no detonation and nothing to run away. Element 76 sits far past the iron peak, where fusing absorbs energy rather than releasing it, so unlike hydrogen it has nothing at all to push back with. What you get is pure gravitational collapse, roughly ninety-nine percent of which departs as neutrinos. The total release is near 1.4 × 10⁴⁷ joules and the kinetic share is about fourteen times what an ordinary supernova puts out.

Published estimates of how close a supernova has to be to damage a biosphere run from twenty-five to fifty light years, and authors disagree. Scaling that by the square root of the energy puts this event's hazard somewhere between 94 and 187 light years, which contains several hundred known stars. I have left it as a range because it arrives as one: a square root taken of a figure people argue about is an order of magnitude, not a distance, and the module returns the range rather than picking a point out of it.

So the complete, technically correct proposal reads like this. Spend 5 × 10²⁷ years collecting osmium. Sterilise a hundred light years of the neighbourhood assembling it. Arrive at Proxima seventy-five thousand years later having gained nothing you could not have had from a Jupiter flyby with a probe that already exists.

Or throw the same core out the back and be there in sixty-four years.

The rocket keeps winning, and it keeps winning for the least romantic reason available, which is that something left.

Corrections, added later

Somebody noticed the osmium figures did not line up across this run of posts. They did not, and a sweep of all six turned up five things in this one and its siblings. Four are here.

The pull from the core was printed a hundred times too high. A figure gave 94.6 tonnes at 10 metres as 0.0000006 g. It is 0.0000000064 g. The panel has been regenerated and the real number is pinned in a test.

The source mass for one gravity was a shape that cannot exist. The module said you need 5.9 × 10¹⁷ kg held 2 km ahead, and offered "as ordinary rock that is 36 km in radius" as a way to picture it. Both numbers were right and putting them in the same sentence was not: a body 36 km in radius whose centre is 2 km away has the ship buried eighteen radii inside it, where the far field formula does not apply at all, because only the mass below you pulls. To fit that mass outside the ship you would need 1.8 × 10⁷ kg per cubic metre, 776 times osmium. The function returned a radius and a distance as two unrelated fields and never compared them, which is the same failure as returning thrust without the tide. It compares them now.

The post disagreed with its own chart about the strongest magnetic field ever made. The prose used 1,200 tesla and the chart used 2,800. Both are real records for different things, and the post now says which is which.

Voyager's travel time to Proxima appeared as three different numbers across two posts, because one used 4.3 light years, one used the measured parallax, and one quoted a speed that did not match the figure beside it. It is 74,589 years, from the parallax.

None of those changes a conclusion. That is not much comfort: a number that does not change the conclusion is exactly the kind nobody rechecks. The pattern in all five is the same and it is not the arithmetic, which was fine. It is that the number left the calculator, got carried by hand, and was never asked to come back and prove itself.

So

The idea did not survive, and I am genuinely fine with that, because what I have instead is a thing that refuses ideas in about four milliseconds and shows its working. I would rather own that than the drive.

The archive's thesis is systems that return a well formed answer that happens to be false. A green zero from a checker that scanned nothing. A total from a ledger that stopped at five thousand rows. A caption on official paper wrong in two units and inconsistent between them. Today's specimen is mine, it was nineteen years wide, and the only reason I am writing about it instead of repeating it is that I stopped and built the check.

The idea is the cheap part. The check is the work.