Physical AIthat adapts.
Scroll to exploreLazyInfer lets robots adapt to the real world while they run.
How LazyInfer works
- 01
Layer / 01
Perception
Where am I, and where is everything else?
Visual-inertial odometry, SLAM and object tracking as one factor graph. Each estimate carries its uncertainty.
- 02
Layer / 02
Learning
What changed about me, or about the world?
Online estimation of the parameters that drift in the field, such as friction, actuator gain or a listener’s preference, from live telemetry.
- 03
Layer / 03
Planning and control
What should I do next, given what I do not know?
Model predictive control solved as inference. It plans through the uncertainty and corrects the actions of an existing policy or controller.
Every robot meets the unexpected.
What matters is how fast it recovers. Without adaptation, that is an engineering project. With LazyInfer, it happens inside the control loop.
With LazyInfer
Now
Conditions change
Same tick
The estimate shifts
Same tick
Uncertainty is measured
Next tick
Actions are corrected
Still running
The task gets done
Without
Day 0
Conditions change
Day 1
Failures pile up
Weeks
Collect new data
Weeks
Retrain and validate
Months
Redeploy
Performance
Measured on our hardware and on public datasets.
- faster than GTSAM iSAM2
- 3.5×
- Incremental smoothing on a 50-pose chain. 113 µs against 402 µs, median of 10 runs, Apple Silicon.
- allocations per update
- 0
- The incremental solver, marginalization and the control tick allocate no memory once warm.
- Bayesian MPC on two arms
- 100Hz
- About 1 ms per control tick for both arms on one CPU thread.
- trajectory error, RGB-D SLAM
- 1.4cm
- TUM freiburg1_xyz with loop closure, about 65 verified loops.
Tested on hardware, not only in simulation.
The LazyInfer interface
From unboxed arms to a live cell. In early access.

Drag the arms and cameras you have into the cell. Nothing to edit by hand.
LazyInfer early access

Albert Podusenko
Chief Executive Officer
Tell us about your hardware and your stack. We will show you where LazyInfer fits, and what it changes.



