DEEPSIFT

Autonomous downlink research for bandwidth-constrained missions.

Not every bit deserves the trip to Earth.

On a held-out Curiosity Navcam interval, position-based traverse sampling with a stereo-safe progressive scheduler kept 1/4 of traverse frames at full quality — 26.1% of full-quality traverse bytes — while every archived traverse frame stayed within 5 m of a kept frame (at most 2.05 m) and no stereo pair was broken.

HELD-OUT TESTCuriosity Navcam · sols 950–979· Scheduler V3 + POSITION at 1/4 retention · 12 traverses · 679 framesPRE-REGISTERED CRITERION · PASS
26.1%
of full-quality traverse bytes
criterion ≤ 35 %
100%
5 m spatial coverage
criterion ≥ 90 %
2.05 m
maximum distance to a retained frame
criterion ≤ 10 m, every traverse
0
broken stereo pairs
174 stereo pairs kept whole
source · artifacts/phase3_final/20260926T174018-phase3-final-test-e4e2/results.jsonconfig 6f35d7fc205c… committed (96e0694) before the first test image was downloaded
01The problem

A rover collects more imagery than it can send home.

Every image a Mars rover takes has to wait for a relay pass to reach Earth, and relay capacity is finite. When storage and bandwidth run short, something must decide what goes first, what is sent as a thumbnail and what waits. That decision is usually made by people on the ground, a sol at a time.

DEEPSIFT asks a narrower, measurable question: which signals actually help decide what should be transmitted — and which only look helpful on the data they were tuned on.

Test interval
25 active sols
sols 950–979
Navcam acquisitions
1,194
977 stereo
Archived products
4,342
1.71 GB from PDS
Full-quality downlink
311 MB
label estimate, all acquisitions
02What DEEPSIFT does

A small, inspectable pipeline.

The released path uses rover geometry and a byte-accurate scheduler. Nothing in it needs a network, a cloud model or a learned score.
  1. 01
    Archived observations
    Curiosity Navcam raw EDR from the PDS Imaging Node, with URLs, labels and SHA-256.
  2. 02
    Sequence analysis
    Acquisitions grouped by capture clock; stereo pairs kept together; traverses located with PLACES.
  3. 03
    Position-aware selection
    Farthest-point sampling on rover position keeps frames that cover the traverse.
  4. 04
    Stereo-safe scheduler
    Scheduler V3 fills thumbnail pairs, then compressed pairs, then full pairs — never one eye alone.
  5. 05
    Bandwidth-constrained downlink
    Coverage can only grow as the budget grows (monotonic by construction and by test).
03What we tested

Most of what we tried did not earn a place.

Each branch was tested against pre-declared rules on data it was not tuned on. The negative results are part of the result.
What didn’t work
  • Jev semantic rankingDROPPhase 2

    AUROC difference vs deterministic rules +0.0056 (95 % CI -0.020 to +0.037); 1,500 live calls; pre-registered stop rule → discontinued for ranking

    source · apps/web/data/home-summary.json · run 20260925T094903-jev-v3-pilot-84af
  • Telemetry image rankingDROPPhase 3.1–3.2

    image-independent by construction (0 response to controlled visual change); at 1 % under Scheduler V3 it made 7 acquisitions usable at 1 rover position — the fewest of six strategies

    source · artifacts/phase3_2/20260925T135920-phase3.2-dev-corrective-ceb8/results.json
  • pHash representative selectionDROPPhase 3.3

    constrained pHash false-merge rate 0.15–0.19 on validation1 (limit 0.05); ≤ 1.03× traverse compression

    source · artifacts/phase3_3/20260926T142033-phase3.3-val-2a31/results.json
  • QUALITY_V2 as a priority modifierDROPPhase 3.3

    false-positive rate 3.6% in development → 10.6% on validation1; kept only as a diagnostic QUALITY_SUSPECT flag

    source · artifacts/phase3_3/20260926T142033-phase3.3-val-2a31/results.json
  • Embedding-assisted selectionNO MEASURABLE ADDED VALUEPhase 3.4 + final test

    visual-change gain over POSITION at 1/4: development +0.044, validation1 +0.004, validation2 +0.001, test +0.005 (pre-registered meaningful threshold 0.020)

    source · artifacts/phase3_final/20260926T174018-phase3-final-test-e4e2/results.json
What generalized
  • Rover-position sampling (POSITION)KEEPall four periods

    5 m coverage 1.000, 1.000, 1.000, 1.000 across development, validation1, validation2, test

    source · artifacts/phase3_final/20260926T174018-phase3-final-test-e4e2/results.json
  • Scheduler V3 (stereo-safe progressive)KEEPall four periods

    0 monotonicity violations and 0 single-eye stereo pairs in development, validation1 (0), validation2 (0) and test (0)

    source · artifacts/phase3_final/20260926T174018-phase3-final-test-e4e2/results.json

The simplest signal that generalized was rover position. More complex signals — a semantic model, telemetry context, perceptual hashing, a learned quality detector and image embeddings — either failed validation or added nothing measurable outside development.

04Generalization

One result, four separate periods.

Development, two validation periods and a final held-out test, each reported on its own. The test interval was frozen before any image was downloaded and used once.
Bytes retainedfinal-test criterion ≤ 0.35
Developmentsols 412–430
0.266
Validation 1sols 779–820
0.265
Validation 2sols 1100–1129
0.270
Held-out testsols 950–979
0.261
5 m spatial coveragefinal-test criterion ≥ 0.90
Developmentsols 412–430
1.000
Validation 1sols 779–820
1.000
Validation 2sols 1100–1129
1.000
Held-out testsols 950–979
1.000
Largest distance to a kept framefinal-test criterion ≤ 10 m
Developmentsols 412–430
2.64 m
Validation 1sols 779–820
2.78 m
Validation 2sols 1100–1129
1.94 m
Held-out testsols 950–979
2.05 m
Broken stereo pairsfinal-test criterion = 0
Developmentsols 412–430
0
Validation 1sols 779–820
0
Validation 2sols 1100–1129
0
Held-out testsols 950–979
0

Scheduler V3 + POSITION at 1/4 of traverse frames. Periods are reported separately, never pooled. The vertical tick is the final-test limit; it was pre-registered for the test only. Development, validation 1 and validation 2 were recomputed by the frozen final-test runner. Source · artifacts/phase3_final/20260926T174018-phase3-final-test-e4e2/results.json → four_period

Visual-change gain of POSITION + EMBEDDING over POSITION (1/4 retention)95 % sequence bootstrap
Development
+0.044
Validation 1
+0.004
Validation 2
+0.001
Held-out test
+0.005

Dashed line: the pre-registered “meaningful” threshold (+0.020). The development gain did not persist on either validation period or on the held-out test, so embeddings get no credit in the primary claim. Visual-change coverage is a MobileNetV2 proxy, not a scientific judgement.

05How we got here

Not one benchmark run.

Every stage is a git tag. Configurations and pass/fail rules were committed before the data that tested them.
  1. Phase 1 · telemetry triage prototype
    v0.1-baseline · 90c7f4a · 2026-09-24 15:23
  2. Phase 2 · Jev semantic decision evaluation
    phase2-complete · 58725e0 · 2026-09-25 06:19
  3. Phase 3 · Navcam downlink baseline
    phase3-baseline · 577d5be · 2026-09-25 09:25
  4. Phase 3.1 · controlled visual tests
    phase3.1-complete · af661c6 · 2026-09-25 09:41
  5. Phase 3.2 · stereo-safe scheduler
    phase3.2-complete · 6b913fa · 2026-09-25 10:07
  6. Phase 3.3 · config + rules frozen before validation1 download
    phase3.3-config-frozen · 6bce97d · 2026-09-26 09:44
  7. Phase 3.3 · validation1 (779–820)
    phase3.3-complete · e78aaff · 2026-09-26 10:24
  8. Phase 3.4 · claim + decision rule pre-registered
    phase3.4-config-frozen · 566c323 · 2026-09-26 12:31
  9. Phase 3.4 · validation2 interval frozen from listings
    phase3.4-validation2-frozen · f800550 · 2026-09-26 12:31
  10. Phase 3.4 · fresh validation (1100–1129)
    phase3.4-complete · 33ef7d8 · 2026-09-26 12:54
  11. Final test config frozen before download
    phase3-final-test-config-frozen · 96e0694 · 2026-09-26 13:03
  12. Final held-out test (950–979)
    phase3-final-test-complete · fdc2122 · 2026-09-26 13:41
08Reproducibility

Frozen before it was tested.

Final test ordering (from git and the file system)
config committed2026-09-26T13:03:26-04:00
first test image written2026-09-26T17:03:50
config before downloadyes
final config hash6f35d7fc205cdffe4a97…
Artifact structure
config/phase3_final_test_config.json   frozen criterion + source hashes
data/splits/                            dev / validation / test intervals
data/manifests/navcam_*.json            URLs, labels, SHA-256 per product
artifacts/phase3_final/<run>/           results.json · run_manifest.json
docs/release/science-artifacts.json     70 artifact hashes