Skip to content

drakkB/sky-proof

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sky-proof

Physics-based authenticity clues for sky videos. No ML. No dependencies.

AI video generators can now produce photorealistic "UFO sightings" in seconds. Trained classifiers try to catch them — and age with every new model generation, failing with confidence on footage from generators they have never seen.

Physics does not age. A video that went through a real lens and a real sensor carries physical signatures that generators imitate poorly, because they were never part of the training objective. sky-proof measures three of them:

Clue Real camera Generated / heavily processed
Photon shot noise Noise grows with brightness (variance ∝ signal — a law of the sensor) Flat, uniform or absent grain
Hand-held micro-shake 1–8 Hz muscular tremor, impossible to suppress voluntarily Sweeping pans of unreal, glassy smoothness
Frame cadence Every frame is unique Duplicated / interpolated frames to fake the advertised fps

Every check is a few dozen lines of arithmetic you can read and audit — no model weights, no black box, no network calls.

What it does NOT claim

No clue is proof. Heavy compression (WhatsApp re-shares) crushes sensor noise. Software stabilization smooths shake. A tripod removes it legitimately. sky-proof reports each clue as consistent, atypical or not_measurable (a tripod video gets "clue unusable", not a strike against it), and its summary vocabulary is deliberately cautious:

2 atypical clues out of 3 measurable — profile compatible with AI-generated or heavily processed footage. No clue is proof: ask for the original file.

If a tool in this space sounds more confident than that, distrust the tool.

Usage

Requires ffmpeg in PATH (decoding only — analysis is pure Rust).

$ cargo install --path .
$ sky-proof sighting.mp4
sky-proof report — 512 frames, 17.1s
------------------------------------------------------------------------
[  ok  ] Sensor noise (photon shot noise)
         noise level σ ≈ 1.91, noise/luminance correlation 1.00 — a real
         camera is noisier in bright areas
[  ok  ] Hand-held micro-shake
         shake amplitude 0.63 px (downscaled) — hand-held footage always
         trembles; sweeping yet perfectly smooth motion is unusual
[  ok  ] Frame cadence
         0% near-identical frames
------------------------------------------------------------------------
3/3 clues consistent with a real camera. No synthesis anomaly found — this
is not proof of authenticity, but nothing is off.

--json for machine-readable output. Exit code 1 when ≥ 2 clues are atypical (useful in pipelines).

Library

use sky_proof::Analyzer;

let mut an = Analyzer::new(width, height);
for (gray_frame, t_ms) in frames {
    an.push_frame(&gray_frame, t_ms)?;
}
let report = an.finalize();
println!("{}", report.summary);

Zero dependencies. The whole analysis is streaming: constant memory, ~1 ms/frame on a laptop for 1080p.

Proof it works

cargo test generates two synthetic videos from scratch — a "real camera" one (luminance-dependent noise, hand tremor, clean cadence) and an "AI-like" one (flat faint grain, glassy pan, 50% duplicated frames) — and asserts the first passes while the second is flagged. No fixtures, no downloads.

Part of the Vigi-Sky toolkit

  • drakkB/skyengine — a dependency-free 3D planetarium engine in native canvas 2D (5,044 real stars, ~28 KB).
  • sky-proof (this repo) — physics-based authenticity clues for sky videos.

Same house rule for both: zero dependencies, readable source, no black box.

Where this comes from

sky-proof is the authenticity engine of VigiSky Sentinel, a free desktop station for methodical sky-observation review (astronomy-grade photo analysis, video motion tracking, cautious verdicts — never "UFO detected"). The method is explained for humans at vigi-sky.com/verify-ai-video.

Roadmap: sub-pixel optical-flow registration to measure texture boil (temporal morphing) rigorously — the current version deliberately ships without it rather than shipping a clue that false-flags real hand-held footage.

License

MIT

About

Physics-based authenticity clues for sky videos — photon shot noise, hand-held micro-shake, frame cadence. Flags AI-generated footage without ML. Zero dependencies, streaming, cautious verdicts.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages