ORBIT-SCOUT

By Carlos Sanoja.

Inspiration

An inspection engineer observing an uncooperative object needs evidence about its motion before deciding what to inspect next. ORBIT-SCOUT explores a narrow version of this problem: estimating precession from monocular video of an elongated, approximately cylindrical target, while exposing ambiguous or unsupported results.

What it does

The application accepts constant-cadence synthetic MP4 footage with supplied camera parameters and reports a conditional precession estimate and camera-frame momentum-axis direction, up to sign. It distinguishes an estimate, a withholding decision and incomplete execution. Available reports include downloadable execution evidence and retained alternatives.

Judges can open the demo, inspect the labelled recorded estimate and refusal, or run the engine on a supplied example with its camera parameters. New runs can take tens of minutes. The access instructions are supplied privately. Exact source, runtime, example inputs and reproduction instructions are available through the protected console downloads.

How it is built

A C++20 core uses OpenCV 5 for segmentation and image-geometry measurements. Python fits constant-cone and torque-free nutating models, preserving convergence records and competing hypotheses. Runs passing initial checks evaluate eight temporal blocks.

AWS CloudFront provides HTTPS to the protected application on an EC2 m7i.xlarge. A host supervisor launches a separate video decoder and pinned numerical containers. Numerical jobs have four CPUs, 12 GiB, bounded execution time, read-only inputs and no network or reference-label mount. Session-owned reports, source/input hashes, raw outputs and cleanup records make a run inspectable. Real upload/download, browser and CLI reproduction controls have been completed.

Results and limitations

A preregistered evaluation used 96 new synthetic scenes and two cold passes, accounting for all 192 attempts. The reviewed descriptive score for the first pass is 38 correct joint estimates, zero incorrect estimates, 57 withholding decisions and one incomplete execution. A joint success requires rate error below 15% and sign-only axis error below 10 degrees on the same estimate.

Supported coverage is 25/64: core 13/32, triaxial CN 7/16 and DN 5/16. The 32 stress scenes remain in the totals. Comparisons found 95 scientifically equivalent pairs and one incomplete, non-comparable pair. The same case failed in both passes; neither failure was retried or relabelled.

The registered coverage, execution and full-repeatability targets were not met. The separately authenticated descriptive scoring does not turn the original failed study into a pass. Zero observed errors among the emitted estimates does not establish zero risk; most scenes did not receive an estimate.

The supported domain assumes a stationary camera/range, known camera parameters and circular-rim geometry. Features are extracted from the whole video, so the temporal checks are conditional on that preprocessing. Finite searches and stability diagnostics do not establish global identifiability or uncertainty probabilities. Real-flight transfer, full angular velocity and capture readiness are unvalidated.

What I learned

Coverage, correctness, optimizer termination and repeatability need separate measurements. Preserving failed attempts and source-bound evidence made the limitations visible and prevented a successful demonstration from becoming an unsupported scientific claim. The delivered prototype provides a working, inspectable workflow and a reproducible basis for further research.

Share this project:

Updates

Submission history