Why we route models instead of training one
The obvious move is to train a robot foundation model. It is also how you spend a hundred million dollars reaching parity with something free.
NVIDIA gives away an openly licensed vision-language-action model and the simulator to train it in. Google ships embodied reasoning with whole-body control. Physical Intelligence and Skild are funded specifically to win this. The clearing price of a competent robot policy is heading to zero, and it is being pushed there by people with more compute than we will ever buy.
So we do not train one. We route across all of them, per stage, per body, per task.
Perception and planning are not the same problem
A single objective — “unload these boxes and sort them by label” — is not one model call. It is perception, spatial reasoning, planning, manipulation and verification, and the best model for each is rarely the same vendor. Treating them as one call means accepting the weakest link in whichever model you married.
vision → spatial → planning → manipulation → verification each routed independently on: capability match × measured prior × latency × cost × residency
The hard filter is the whole thing
Scoring weights are the boring part. The load-bearing part is that capability match is a filter, not a term. A model that has never worked on this morphology is not a cheap option — it is a failed task, a human callout, and an hour that does not count.
Our test suite asserts that a provider 50× cheaper and 9× faster is excluded outright when the body is wrong. Not deprioritised. Excluded.
Two details that are easy to omit and expensive to add later
Cold start is pessimistic. With no evidence a provider scores 0.5, not 1.0. An optimistic default lets an unproven model outrank a proven one, which is exactly backwards, and it is the default almost everyone writes first.
Five percent of decisions deliberately pick a non-winner. Without exploration the router locks onto whichever model worked first and every alternative’s prior stays frozen at cold start forever — the flywheel spins for one provider and stalls for the rest. You cannot discover that the cheaper model has caught up if you never call it.
What we give up
A ceiling on peak capability, dependence on third-party pricing and rate limits, and the “just a wrapper” read from investors until the data is visibly compounding. We think those are worth it, because every model that improves makes a router more valuable and a competing model less.
When we do train, it will be from our own data and it will be narrow: verification, affordance prediction, failure classification. Models that pay for themselves, served behind the same provider interface as everybody else’s.