Navigating in the dark: GPS-denied visual navigation on LWIR
.jpg)
Share article
In our previous post, we pushed our visual navigation system to its operational limit in the Ocotillo desert: sub-30m positional error at altitudes as low as 50 ft AGL, over terrain with almost no identifiable features. That result rested on one assumption we have been working to remove ever since. It assumed daylight.
Today we are showing GPS-denied visual navigation running on long-wave infrared (LWIR) imagery. Thermal is a fundamentally different way of seeing the world, and conventionally it demands a fundamentally different navigation stack. It should not, and with our approach it does not.
The result
Navigating from nighttime LWIR imagery over Santa Cruz, across 3 trajectories:
- 15.13 m average positional error sustained across full trajectories
- Localized against EO reference imagery, not thermal maps
- No GPS, no LiDAR, no active sensing
- No thermal-specific pipeline. No hand-built thermal feature detector, no per-sensor tuning program


combined_trajectory_and_rendered-1.mp4
(Only the thermal input in the video is used for navigation, the RGB is for visualization purposes)
Why thermal breaks visual navigation
Thermal is not a grayscale camera. It measures emitted radiance rather than reflected light, which means almost every assumption a conventional navigation stack makes about the world stops holding.
- The scene is not the same scene. In LWIR, contrast comes from temperature and emissivity, not albedo. A road that is high-contrast in EO can disappear entirely at thermal equilibrium, and a field that looks uniform in daylight can be the most structured thing in the frame at night. Feature detectors tuned on visible imagery have nothing to grab.
- The imagery is non-stationary. Absolute intensity drifts continuously, contrast rescales frame to frame, and shutter events interrupt the stream. Classical descriptors that assume photometric consistency between frames degrade immediately.
- There is no thermal basemap. Satellite and aerial reference imagery is EO. Localizing a thermal camera against the maps that actually exist is a cross-modal matching problem, on top of the usual oblique-to-orthographic problem, on top of the usual sparse-feature problem.
The industry answer to all three has been to build a separate thermal pipeline: a thermal-specific detector, thermal reference maps, thermal-specific tuning per sensor. That is how you end up maintaining one navigation stack per modality, and it is exactly the narrowness we set out to eliminate.
We did not build a thermal system. We generalized into one.
Our system does not run hand-crafted feature detectors, so it does not inherit their photometric assumptions. It reads structure: the geometry and spatial layout of the scene, learned from foundation model representations trained across enormous visual diversity. Structure is the part of the world that survives the modality change. A greenhouse row, a coastline, a field boundary, and a road network have the same geometry whether you are measuring reflected sunlight or emitted heat.
Getting from "should transfer in principle" to "works on real thermal data" came down to two things:
Data. We built a data pipeline that exposes the model to the failure modes LWIR actually produces, including gain drift, polarity inversion, NUC discontinuities, and the low-texture, low-dynamic-range regimes where thermal imagery collapses. The goal was never to teach the model what thermal looks like, or design a specific system for thermal based maps. It was to make the representation indifferent to which modality it is looking at.
Domain generalization, not domain adaptation. Adaptation means fine-tuning a model to a target sensor, which buys you that sensor and nothing else. It is the same per-platform tuning trap that makes conventional integrations take months. We optimized instead for representations that hold across modalities without retraining, so a new sensor is a deployment question rather than a modeling program. The LWIR results here come from the same model that flies our EO platforms.
That distinction is the whole point. Every modality we absorb this way is one we do not have to maintain a separate stack for.
What this unlocks
Round-the-clock operations. Navigation stops being a daylight capability. The same platform navigates at night, through dusk and dawn transitions, and against direct sun glare, all with one system and no mode switching.
Degraded visual environments. LWIR sees through smoke, dust, haze, and many fog and obscurant conditions that blind an EO camera. Brownout on landing, wildfire smoke, and battlefield obscurants stop being no-fly conditions for the navigation layer.
Navigation for the payload already on the aircraft. A large share of fielded ISR and defense platforms already carry a thermal sensor. On those platforms, GPS-denied navigation becomes a software install against an existing camera rather than a new payload, new SWaP budget, and new integration cycle.
Maritime and low-signature domains. Open water is the hardest case for visual navigation: no landmarks, no persistent texture, and a scene that changes with sea state. Thermal contrast between water, land, and vessels persists when visible contrast does not, which makes LWIR a first-class input for the maritime work we have underway.
Redundancy that is actually independent. EO and LWIR fail for uncorrelated reasons. Running the same navigation model across both means the conditions that take one out generally leave the other intact, without adding a second navigation stack to certify and maintain.
What's next
The result we care about is not that thermal works. It is that thermal worked without a thermal program. That is the test of whether a navigation layer is genuinely general, and it is the same test we intend to keep applying: new sensors, new platforms, new domains, same system.
Next up: closed-loop cross-modal operation in a single flight, additional sensor classes, and more.
We're building the navigation layer for the next generation of autonomous platforms.