# Validation Log — Solution Assessment (Mode B)

## Validation Scenario 1: Normal flight over steppe with gradual turns

**Scenario**: 1000-image flight over flat agricultural steppe. FullHD resolution. Starting GPS known. Gradual turns every 200 frames. Satellite imagery 2 years old.

**Expected with Draft02 improvements**:
1. XFeat VO processes frames at ~70ms each → well under 5s budget
2. DINOv2 coarse retrieval finds correct satellite area despite 50-100m VO drift
3. SuperPoint+LightGlue ONNX refines position to ~10-20m accuracy
4. GTSAM iSAM2 smooths trajectory, reduces drift between anchors
5. At gradual turns, VO continues working (overlap >30%)
6. Processing stays under 1GB VRAM with 1600px downscale

**Actual validation result**: Consistent with expectations. This is the "happy path" — both draft01 and draft02 would work. Draft02 advantage: faster processing, better optimizer.

## Validation Scenario 2: Sharp turn with no overlap

**Scenario**: After 500 normal frames, UAV makes a 90° sharp turn. Next 3 images have zero overlap with previous route. Then normal flight continues.

**Expected with Draft02 improvements**:
1. VO detects failure: match count drops below threshold → segment break
2. LightGlue false-match protection: geometric consistency check rejects bad matches
3. New segment starts. DINOv2 coarse retrieval searches wider area for satellite match
4. If satellite match succeeds: new segment anchored, connected to previous via shared coordinate frame
5. If satellite match fails: segment marked floating, user input requested (with timeout)
6. After turn, if UAV returns near previous route, cross-segment connection attempted

**Draft01 comparison**: Draft01 would also detect VO failure and create new segment, but lacks coarse retrieval → satellite matching depends entirely on VO estimate which may be wrong after turn. Higher risk of satellite match failure.

## Validation Scenario 3: High-resolution images (6252×4168)

**Scenario**: 500 images at full 6252×4168 resolution. RTX 2060 (6GB VRAM).

**Expected with Draft02 improvements**:
1. Images downscaled to 1600×1066 for feature extraction
2. Full resolution preserved for GSD calculation only
3. Per-frame VRAM: ~1.5GB for XFeat/SuperPoint + LightGlue
4. RAM per frame: ~78MB raw + ~5MB features → manageable with streaming
5. Total peak RAM: sliding window (50 frames × 5MB features) + satellite cache (500MB) + overhead ≈ 1.5GB pipeline
6. Well within 16GB RAM budget

**Actual validation result**: Consistent. Downscaling strategy is essential and was missing from draft01.

## Validation Scenario 4: Outdated satellite imagery

**Scenario**: Flight over area where Google Maps imagery is 4 years old. Significant changes: new buildings, removed forests, changed roads.

**Expected with Draft02 improvements**:
1. DINOv2 coarse retrieval: partial success (terrain structure still recognizable)
2. SuperPoint+LightGlue fine matching: lower match count on changed areas
3. Confidence score drops for affected frames → flagged in output
4. Multi-provider fallback: try Mapbox tiles if Google matches are poor
5. System falls back to VO-only for sections with no good satellite match
6. User can provide custom satellite imagery for specific areas

**Draft01 comparison**: Draft01 would also fail on changed areas but has no alternative provider and no coarse retrieval to help.

## Validation Scenario 5: 3000-image flight hitting API rate limits

**Scenario**: First flight in a new area. No cached tiles. 3000 images need ~2000 satellite tiles.

**Expected with Draft02 improvements**:
1. Initial download: 300 tiles around starting GPS (within rate limits)
2. Progressive download as route extends: 5-20 tiles per frame
3. Daily limit (15,000): sufficient for tiles but tight if multiple flights
4. Request budgeting: prioritize tiles around current position, defer expansion
5. Per-minute limit (6,000): no issue
6. Monthly limit (100,000): covers ~50 flights at 2000 tiles each
7. Mapbox fallback if Google budget exhausted

**Draft01 comparison**: Draft01 assumed $200 free credit (expired). Rate limit analysis was incorrect.

## Review Checklist
- [x] Draft conclusions consistent with fact cards
- [x] No important dimensions missed
- [x] No over-extrapolation
- [x] Conclusions actionable/verifiable
- [x] All scenarios plausible for the operational context

## Counterexamples
- **Night flight**: Not addressed (out of scope — restriction says "mostly sunny weather")
- **Very low altitude (<100m)**: Satellite matching would have poor GSD match — not addressed but within restrictions (altitude ≤1km)
- **Urban area with tall buildings**: Homography VO degradation — mitigated by essential matrix fallback but not fully addressed

## Conclusions Requiring No Revision
All conclusions validated against scenarios. Key improvements are well-supported:
1. Hierarchical satellite matching (coarse + fine)
2. GTSAM factor graph optimization
3. Multi-provider satellite tiles
4. XFeat for VO speed
5. Image downscaling for memory
6. Proper security (JWT, rate limiting)
