← All notes

Rainshower Is for Meteorites Now

A scope note, because the app has grown and the growth needs a sentence over it.

Rainshower is for meteorites. Rocks of other kinds get picked up in the field and marked by hand, and there is no software in that. The reason to leave the office at two in the morning, drive to a field, and stand in it with a phone is a fireball, and the app is the thing that turns two people's memory of where it was in the sky into somewhere to walk. Everything below serves that, or refuses to pretend to.

Earlier posts cover what it does and does not, how the compass got fixed, and why it never said where. This one is what got built this week and where it is going.

Which of nine hundred events is worth a drive

The public fireball record has about nine hundred entries. A record is not two observations. It is one point, a velocity and an energy, so the trajectory is already published and the solver has nothing to do. What a catalogue can answer is the question that comes before the solver: which of these is even a candidate.

The first filter is water and it is not close. Most of the planet is ocean, so most of the record is, and an event over the Pacific is not a hard search, it is not a search. The screen says how many it removed and why, before it lists anything, because a handful of survivors with no denominator hides the most useful fact the record carries.

What survives is unranked. Each row carries both ends of the modelled mass range, and that range is enormous, a factor of two hundred, because ablation is. On a one kiloton event it reads 607 kilograms to 47 tonnes. The wide number is the honest one, so it stays legible rather than being quietly replaced by its optimistic end. Each row also carries its caveats: shallow entry, years of weathering, no velocity components published. A candidate with three caveats is still a candidate. A reader who saw only the mass range would not know why to doubt it.

What the flight says about the material, by two routes

I wanted a composition estimator and nearly built the wrong one. An orbit-to-composition function would be a base-rate machine: four falls in five are ordinary chondrites, because entry selects for strength, so it would say "ordinary chondrite" to anything asteroidal, be right most of the time, and have measured nothing.

The signal is in the flight. Two routes that share no inputs: a published criterion from end height, mass, speed and entry angle, and the ram pressure the body was under where it came apart. They are reported side by side and never fused, because a disagreement between them is the only check either one has. Where they disagree the app says so and names which inputs to re-check, rather than averaging two answers that contradict each other into one confident number.

The criterion's constants could not be verified from the build environment, so they carry a flag saying so, and while that flag is set a band edge is not allowed to decide a close call. Same treatment as the validation cases, which are still empty for the same reason.

Nothing here names a meteorite class. The output is always "consistent with the strength of", because strength is what was measured and mineralogy needs a thin section.

A body you invented, flown forward

The one place in the app where a forecast is legitimate, because there is no observation for it to be false about. Six sliders: mass, speed, angle, density, ablation, strength. Five presets that fill the sliders and then let go, so a dense body that ablates fast is a runnable thing even though nobody named that category.

The sandbox panel: five preset chips, six labelled sliders, a result box reading Reaches the ground, and four figures: goes dark at 13.2 km, 22.0 kg left of 200 kg, 89 percent ablated away, peak load 11.28 MPa

The useful question is not where it would land, which is a made up answer to a made up question. It is whether this instrument could tell. Fly an iron and a cometary body down the same geometry, pin one, change the other, and ask if the strength routes separate them. Often they do not, and knowing that at a desk is worth more than finding it out in a field.

Everything the sandbox produces is marked as invented, carries the inputs that produced it, and cannot be sent to a second observer as an observation. A synthetic strewn field that could be texted to a friend would be the worst thing this app could ship.

Two things the model taught me while I tested it. The surviving fraction of a body is independent of its mass, and of its entry angle, which looks like a variable not being used and is the closed-form solution being correct: both cancel out of the equations. I wrote a test asserting the opposite. The model was right and I was not, and both are pinned so the surprise survives.

A light in the sky, screened the way a rock is

The field screen for a rock in your hand never returns "meteorite." It carries a differential and strikes candidates out. The same engine now runs a second board, for the light two people saw.

The reason it exists is a document. A 2010 Defense Intelligence Reference Document, released under FOIA years ago and doing the rounds again this week, surveys what general relativity permits and says, under one of its figures, that a small wormhole meeting local space would be perceived as "an unusually bright spot in the sky." I am not going to argue about wormholes. But an unusually bright spot in the sky is exactly this app's input, so the honest response to the claim is neither to draw it nor to dismiss it. It is to ask what two observers can actually tell.

A body in the atmosphere has parallax: two sightlines cross where it is. Sightlines that do not cross were not looking at one located thing, and the solver already refuses that case. So the most decisive check on the board costs nothing, because the solve has run. What survives a failed solve is "nothing located in the atmosphere", and that is also what a very distant object looks like, and what a misread compass looks like, and what two people who saw different things look like. The tool cannot separate those and says so. No function returns the document's word, and none will.

The document's own colour claim, blue-shifted growing and red-shifted receding, is recorded as a check and refused as evidence, because by eye it cannot be told from a fireball cooling from white to orange. A spectrum could.

The nearest stars, drawn from parallax

A fourth view beside the globe and the solar system, in parsecs. Twenty-three of the nearest systems, each with its distance from its own parallax, the Sun, the direction to the galactic centre with the distance in the label so the edge of the scene never reads as the place, and the galactic plane as the band it is from inside.

The Stars view: labelled points for the Sun and the nearest stars, each with its distance in light years, a dashed ray toward the galactic centre labelled with its distance, and a legend reading distances true to scale, marker sizes follow brightness and are not true, no stars are drawn that were not measured

No spiral arms. A picture of our own galaxy's arms is almost entirely a model, because we are inside it, and the rule that keeps invented asteroids off the belt applies with more force at twenty-six thousand light years than at three astronomical units.

Sirius is a binary with published orbital elements, and it is the check on the whole star table: the semi-major axis and period from one paper, put through Kepler's third law, give a mass sum within a quarter of a percent of the masses the same paper reports. The law did not come from the paper, which is what makes agreement a test rather than a re-reading. The orbit itself is numbers in the panel rather than a line in the scene, because at this scale it is a ten-thousandth of a pixel, and exaggerating a distance is the one thing the scene never does.

Direction

Three things next, and one refusal that stays.

A hyperbolic solution's incoming direction, drawn at the star scale. The app produces unbound orbits routinely. Their asymptote points somewhere on the sky, and at the neighbourhood scale that direction can be drawn and compared with where the stars are. What it can never do is name a source, because stars move at tens of kilometres a second relative to each other and where one is now is not where it was when anything left it. The wiring is in; the direction is not, because it crosses a frame boundary that has produced a well formed wrong answer in this codebase before, and it is not being done without a test in front of it.

An interstellar answer that is mostly a refusal. Eccentricity above one means nothing unless the error bar excludes one. For a catalogue event no error bar is published, so the question cannot be asked. For a locally solved event the Monte Carlo already produces one, so it can, and the answer will almost always be "not significant," which is the correct and useful answer.

A second board for what is in your hand that is not a meteorite. Same engine, more candidates, the same rule that nothing is ever identified. Appearance is asked about as lustre and habit and fracture, which are observations, and never inferred from a photograph, which would be the most confidently wrong thing the app could do.

The refusal: rainshower does not identify. Not a rock, not a light, not a class, not a source. It eliminates, and it says what would settle the rest. That was the design from the first post and it is more the design now that there is more of it.