UAPFinder

How it works

From a frame of night sky to a verdict with its reasoning attached. Nothing here is typed in by a person — every step is a measurement, which is what makes any of it checkable.

1. Watching

A capture head runs on your own machine and watches a network camera pointed at the sky. It keeps a rolling buffer of the last few seconds at all times, so when something does happen the clip starts before the trigger rather than after it. Nothing is uploaded, and nothing leaves the machine, unless you choose to share it.

The head can sleep through daylight automatically, waking when the sun drops below the horizon at your location.

2. Finding what moved

Each frame is compared against a slowly-learned model of the standing sky, so stars drifting with the earth's rotation and gradually brightening cloud fade into the background while anything genuinely new stands out. Changed pixels are grouped into blobs, and each blob's position is resolved to a fraction of a pixel by weighting it toward where the light actually is.

That sub-pixel precision is not fussiness. On a wide lens a single analysis pixel covers a substantial slice of sky, and rounding a position to the nearest pixel injects enough error into the speed calculation to make a stationary twinkling star look like it is crossing the sky.

Weather is rejected on purpose

A drifting cloud does not arrive as one big blob. Its advancing edge breaks into small, object-sized fragments that pass every size test there is — which is exactly how a tracker ends up following the rim of a cloud where nothing ever was. Candidates are therefore checked for whether they are touching a region already identified as cloud, whether the sky around them is brighter on one side than the other (an edge is a brightness gradient; an isolated light falls off evenly in every direction), and whether they are a fat wandering ribbon rather than a compact source.

Deliberately not tested: whether the candidate is long and thin. A meteor is a streak by definition, and rejecting streaks would delete exactly the events worth catching.

3. Tracking

Blobs are associated across frames into tracks. A track has to survive several consecutive frames before it is believed at all, and then must clear a speed gate with two independent halves: it has to be moving within a physically plausible band, and it has to have actually travelled a minimum distance across the sky. Both are required, because either one alone is satisfiable by noise — jitter can fake the speed over a short baseline, and something genuinely slow can eventually cover the distance.

Angles are measured on a sphere

Pixel offsets are converted to true angles through the lens's actual rectilinear geometry, not a flat degrees-per-pixel ratio. The difference is not academic: on a 93° lens a flat scale is wrong by roughly −23% at the centre of the frame and +36% at the edge, so the same object reads at wildly different speeds depending on where it happened to be in view.

4. Explaining it away

This is the part that matters. Once an event is finalised, the engine tries hard to account for it:

  1. Was it a satellite? Orbital elements are propagated to that exact second and place. A match needs the satellite to be where the object was and to appear to move at a matching speed.
  2. Was it a meteor? Fast, brief, and straight — measured on how long the object was moving, not on how long the camera kept recording afterwards.
  3. Was it a star or planet? If it barely moved against the star field and sits where a known bright object was at that instant, it is the classic defocused-orb false positive, and it gets named as one.
  4. Was it an aircraft? Live transponder positions are compared against the object's own sky position. Being somewhere in a wide camera frame is a coincidence, not a match.
  5. Did it change course? An object that breaks its own path mid-track gets its own category. Nothing else up there does that.

What it ruled out is published too

Every verdict carries the negative evidence behind it — how many catalogue objects were propagated, how many aircraft were transmitting overhead, and how far the nearest of each was. And when a check could not be run at all, it says so rather than staying quiet.

"Unexplained" because 800 catalogue objects were checked and none was close is a real finding. "Unexplained" because the catalogue failed to download is not. The record tells you which one you are reading.

5. Corroboration

When two observers in different places record the same object at the same time, their sight lines are triangulated. Where the lines converge gives a computed altitude — and if they do not converge in a physically sensible way, the pair is rejected rather than counted. Corroborated sightings have their video preserved permanently, so the evidence outlives any single device.

6. Human judgement, kept separate

Anyone who captures a sighting can watch it back and attest that they believe it is genuinely anomalous. That attestation is stored apart from the engine's classification and is browsable on its own, so the archive can be asked a question no classifier can answer alone: of everything the machine could not explain, which ones did a person look at and stand behind?

It is evidence that someone claims a thing. It is never evidence that the thing is true, and the platform does not treat it as such.

Something went wrong. Reloading usually fixes it. Reload 🗙