One idea: the vectorizable planning kernel. Build the planner so its core data structure is a graph that GPUs store and compute natively. Then one Generate·Score·Reduce algebra generalizes it across the whole family.



Parallel hardware is a design constraint, like dynamics, collision, or uncertainty.
In the spirit of Sutton, The Bitter Lesson (2019) & Hooker, The Hardware Lottery (CACM 2021): methods that ride general, scalable compute win.
A vectorizable planning kernel exposes all three. Its core data structure is a tensor: a dense, regular array of numbers that GPUs store and compute directly. That is this talk's answer to the RoboARCH question of matching the algorithm to the hardware.
A more useful one: “what planner would I write if parallelism were the primitive?”
Make many similar subproblems visible at once, as one batched object.
Evaluate every candidate independently. Keep the geometry and logic; do not flatten into brute force.
End with one structured reduction: min, Sinkhorn, expectation, score, DP.
The design move: make the algorithm itself vectorizable. The algebra that generalizes it, Generate · Score · Reduce, comes after we build it concretely.
Parallelize the kernels inside an existing planner. VAMP SIMD-vectorizes collision checking; FCIT* evaluates all pairwise edges cheaply to drop nearest-neighbor queries. 35 µs median, ~25 kHz on one core (7-DoF Panda); FCIT* first fully-connected a.s.-optimal.
Parallelize the kernels inside an existing planner. pRRTC / cpRRTC do SIMT collision checking and parallel tree expansion for RRT-Connect. cuRobo ~60× vs CPU; pRRTC ~1.4× slower than GTMP, ~3× slower than VAMP-RRTC; cpRRTC up to 165× constrained.
Make the planning algorithm itself the vectorizable object. The graph is a tensor, so search becomes native GPU math. GTMP: 1000 paths in 4.6 ms.
Both directions are winning, and they meet. Recent work vectorizes the kernels; this talk designs the algorithm to be vectorizable, then plugs those kernels in as connectors. Underneath sits batched, differentiable simulation (Isaac Gym, MuJoCo MJX/XLA, Brax); the benchmark of record is MotionBenchMaker.

One graph holds several different route families (paths you can't bend into one another without crossing an obstacle). So diversity is built into the data structure, not added in a later step. Swap the straight edge for a smooth Akima connector and the same kernel returns smooth plans, at no extra cost.
teal · tensor / batch axes sage · value / cost orchid · operator / reducer rose · this‑talk highlight
Single start/goal, complete adjacent-layer connectivity. Every adjacent-layer pair is an independent local subproblem.
A batched min-reduction over the next-layer axis: $J_m = C_m\boxtimes J_{m+1}$. In tropical (min-plus) algebra, “add” means take the minimum and “multiply” means add costs. So it runs like a dense matrix–vector product, the regular work a GPU is fastest at.
Reach $\Lambda$: at budget $s$, with confidence $1-\tau$, the connector succeeds on local hops up to length $\ell$.
This builds on OMPL; it does not replace it. Eighteen years of
sampling-based engineering (OMPL since 2008, 40+ planners, the MoveIt default, Kavraki & Moll)
becomes the per-edge Generate+Score, while the tropical Reduce stays fixed. GTMP consumes connectors; it does not compete with
them.
VAMP‑RRTC · pRRTC · AORRTC · FCIT* · cuRobo · CHOMP · MPD
The field is converging: OMPL 2.0 plans to add SIMD/GPU acceleration (VAMP). The vectorizable graph is where the connectors plug in.
Akima splines are local: each segment uses only its neighbors. So there is no global linear solve to serialize, unlike a natural cubic spline, which couples every segment. They stay C¹ and overshoot-free, so each edge stays an independent subproblem, and a smooth plan falls out of the same Reduce at no extra cost.
geometric rate, so almost-sure coverage as $K\to\infty$ (2nd Borel–Cantelli)
optimality by contracting support
Two schedules of the same reducer: diversity repeats generation, optimality enriches it.
anytime-GTMP charts: results from a manuscript under preparation.
500 parallel Panda instances in ~0.3 ms via JAX
vmap on RTX 3090.
A 3-D array of candidate vertices: $M$ layers, $N$ samples per layer, each a point in $\mathbb{R}^d$. The graph is laid out as a tensor that GPUs read directly, so search becomes a native operation.
This batched object is a vectorizable planning kernel: a graph whose natural operations are GPU kernels. Building it is the Generate stage.
Three verbs. Each is a typed map; their composition is the planner.
$$\textbf{Planner}=\textcolor{#8a3f9c}{\textstyle\bigoplus}\,\circ\,\textcolor{#557a3a}{s}\,\circ\,\textcolor{#2f7d8a}{\mathcal{G}_\theta}.\qquad\small\text{Different planners are different semiring choices for one skeleton.}$$
Generate and Score are shared. A planner only picks the reducer $\oplus$ over the semiring $(\mathbb{S},\oplus,\otimes)$ (an algebra with one combine op $\oplus$ and one chain op $\otimes$, in effect a swappable arithmetic). One compiled kernel spans all five, with a single temperature knob $\lambda$ sliding between them.
Every $\oplus_\lambda$ is associative, so all five share one iteration space, one memory layout, and one $O(\log B)$ reduction tree. One compiled template instantiated by swapping the combine op.
The proof object and the compute object are the same: the semiring is both the algebra in the theorem and the reduction in the kernel. Invariant skeleton, method-specific arithmetic. Next: the per-method work and depth.
Embarrassingly-parallel Score gives $W=|B|\,\text{cost}(s)$ at fixed depth; an associative $\oplus$ folds it in $O(\log B)$. Available parallelism $W/D$ sets the ceiling; realized speed is then capped by bandwidth and occupancy.
| Method | Semiring $(\oplus,\otimes)$ | Work $W$ | Depth $D$ |
|---|---|---|---|
| GTMP | $(\min,+)$ | $\Theta(MN^2)$ | $\Theta(M\log N)$ |
| MPOT | soft-min, $+$ | $\Theta(T\,nm)$ | $\Theta(T\log n)$ |
| CLOT | OT $\otimes$ STL min/max | $\Theta(R\,(Tnm{+}|\Phi|T))$ | $\Theta(R\log nm)$ |
| MTP | expectation | $\Theta(BH)$ | $\Theta(H{+}\log B)$ |
| MPD | score | $\Theta(KB\,c_\theta)$ | $\Theta(K\,d_\theta)$ |
Every method shares the depth signature $D=(\text{sequential scan})+O(\log B)$. The scan length is the number an architect should optimize.
GTMP selects one vertex. Relax the selection and the same DP becomes differentiable transport.
Optimal transport (OT) = the cheapest plan to move mass from one set of points to another; entropic OT = a soft, temperature-blurred version; Sinkhorn = repeated row/column rescaling of a matrix that solves it. $\lambda\to 0$ recovers GTMP: the transport plan concentrates on the min-cost vertices, so soft selection becomes hard selection.
Sinkhorn is matrix-scaling: the densest GPU-friendly inner loop.
Two GEMV + two divides per iteration, shared across the whole batch. No gradients, no factorizations. The densest GPU-friendly inner loop.
Choosing the polytope probes ($D_P\subset\mathbb{S}^{d-1}$, $m$ directions) is the Generate stage; this scaling is the Reduce.
Same reducer as GTMP, one temperature warmer. The batch axis is the trajectory; the polytope is the per-waypoint candidate set.
Signal Temporal Logic (STL): timed rules like “hold the formation between 8 and 15 s.” Here, that means collision avoidance, dynamic feasibility, relative formation, connectivity, and bounded-time goals $G_I$, $F_I$, $U_I$.
GPU-parallel, gradient-free zero-order Sinkhorn Steps over batches of system-wide smooth trajectories.
Few seconds for small teams; tractable for 100+ robots.
$$\underbrace{\mathbb{R}^{\textcolor{#ff217d}{B}\times\textcolor{#2f7d8a}{n}\times \textcolor{#2f7d8a}{m}}}_{B\approx10^{3}\ \text{trajectories batched / robot}}\ \times\ \underbrace{\textcolor{#ff217d}{R}\ \text{robots}}_{\text{planned sequentially, search-ordered}}\qquad\small\text{same kernel }K_{ij}=e^{-C_{ij}/\lambda}$$
CLOT reuses MPOT's per-robot Sinkhorn batch unchanged, then sequences robots in a dependency order via hybrid search. The kernel never changes; the parallel batch is the ~10³ trajectories per robot, not the robots themselves. All-simulation scaling study (each trajectory color is a distinct robot's path); the 3-UAV result (story 8/8) is the hardware validation.
One robot, one transport cost. Now couple many robots under temporal logic.
Parse-tree decomposition: a batched min/max reduction over time slices, tropical again.
Task robustness + obstacle penalty + inter-robot penalty, all dense per timestep, summed over robots.
Algebraic connectivity $\lambda_2$ (Fiedler value) of the inter-robot Laplacian $L(t)$: $\lambda_2>0\Leftrightarrow$ the team is connected — a smooth, batchable stand-in for the yes/no connectivity test, with $\lambda_2$ itself as the robustness margin.
The Sinkhorn step is untouched. The cost surface gets richer; the update stays a dense regular kernel.
CLOT is GSR nested three deep. Each level is its own Generate·Score·Reduce; the semirings compose without changing the kernel schedule.
$\nu$ indexes both the discrete planning sequence and the continuous candidate-trajectory set, so the search is over both at once.
Coverage minus accumulated cost plus back-propagated feedback $\psi(\nu)$; the weight $\eta>0$ trades cost against coverage (the decay $\gamma\in(0,1)$ discounts back-prop by tree distance).
| Method | Success N=12 | Time N=12 |
|---|---|---|
| CLOT (ours) | 1.00 | 20.3 s |
| MPOT | 0.10 | 26.5 s |
| FSOT | 0.70 | 19.8 s |
| CONS | 0.00 | n/a |
| MICP / NLP / CBS | 0.00 | n/a |
STL goal: $\varphi = \textcolor{#8a3f9c}{G}_{\textcolor{#2f7d8a}{[8,15]}}\,\textcolor{#557a3a}{\mu_{B}}$. Always between $t=8$ and $t=15\,\text{s}$, maintain the linear formation.
vmap.Same Generate·Score·Reduce as GTMP, now replanning every step instead of building one graph.
$B$ control sequences of horizon $H$, scored by a black-box simulator in parallel.
Each component is a Gibbs measure $\pi_\bullet\propto e^{-J/\eta_\bullet}$ (its weights $p_{\eta_\bullet}=\nabla_v R_{\eta_\bullet}$), so the convex mix is again a valid distribution. $\beta$ is one knob from exploit (cold $\eta_{\text{loc}}$) to explore (warm $\eta_{\text{glb}}$).
Both reducers are $\nabla R_\lambda$ from the temperature family: expectation is just soft-min, differentiated.
Same batch budget, same hardware. The reducer's temperature decides how much of the space the rollouts actually see. Demonstrated across in-hand cube, G1 whole-body, and crane.
Real-world evidence that high-entropy batched rollouts survive the sim-to-real gap, not just simulation.
The per-step $-\nabla_z J$ is the score $\nabla_z\log p(z)$ of the Boltzmann target $p\propto e^{-J}$ (the normalizer drops out). In plain terms, it points the way that most lowers cost. This is the warm, score end of the temperature continuum.





The same design move every time: make the algorithm the vectorizable object. Generate·Score·Reduce is just the algebra that turns the knob.
Generate many · Score in batch · Reduce with structure
It is a way to design algorithms whose bottlenecks are visible, measurable, and schedulable.
The same plan flows across three schedulers: the right allocation of algorithm to computing hardware.
Skip most edges while proving homotopy-critical edges survive.
If the graph contains many route families, enumerate them deliberately.
Adapt $(M,N,s)$ online from measured $\bigl(q_s,\Lambda_s\bigr)$ profiles.
Should planners ship as XLA / JAX programs? Benchmark homotopy coverage and compute efficiency, not only first-solution time.
These are algorithm, architecture, and systems questions, not only motion-planning questions.
The next planning algorithms will be judged by the workloads they can handle, not only the paths they return.
Most results here are large-batch simulation studies; the 3-UAV flight is the hardware validation. Large-batch simulation is what makes batched planning measurable.
the structure was hiding in plain sight.
| Method | Generate · batch axes | Reduce · semiring | Operator | $W$ | $D$ |
|---|---|---|---|---|---|
| GTMP | graph $(M,N)$ | min-plus | $J_m(i)=\min_j[C_m(i,j)+J_{m+1}(j)]$ | $\Theta(MN^2)$ | $\Theta(M\log N)$ |
| MPOT | waypoint $\times D_P$ | entropic | $W^\star_\lambda=\arg\min\langle W,C\rangle-\lambda H(W)$ | $\Theta(Tnm)$ | $\Theta(T\log n)$ |
| CLOT | robots $\times$ wp $\times D_P$ | OT $\otimes$ STL | Sinkhorn inner $\oplus$ tropical STL | $\Theta(R(Tnm{+}|\Phi|T))$ | $\Theta(R\log nm)$ |
| MTP | rollouts $\mathbb{R}^{B\times H\times m}$ | expectation | $\pi^{k+1}=(1{-}\beta)\pi_{\text{loc}}+\beta\pi_{\text{glb}}$ | $\Theta(BH)$ | $\Theta(H{+}\log B)$ |
| MPD | latents $(B,H)$ | score | $z_{k-1}=D_\theta(z_k,c)-\eta\nabla_z J(B_\psi z_k)$ | $\Theta(KBc_\theta)$ | $\Theta(Kd_\theta)$ |
All $\oplus$ are associative $\Rightarrow$ all share the $+O(\log B)$ reduction tree; the prefactor is the per-method sequential scan.
Legendre dual: $R_\lambda(v)=\min_{p\in\Delta}\langle p,v\rangle-\lambda H(p)$, so “Sinkhorn = soft-min” is an identity, and $\lambda\to0$ is item (i).
Limit = min (GTMP) · value = soft-min (MPOT/CLOT) · gradient = expectation (MTP) · log-partition gradient = score (MPD).
Benchmark of record: MotionBenchMaker (Chamzas et al., 2022).