Downloads · 30 days
0
physicalai-bmi/orbital-formation-bc
orbital-formation-bc is a robotics model from physicalai-bmi. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for keras. The card lists the license as mit.
A tiny decentralized formation-flight policy — 1,474 parameters — distilled by behavior cloning from a distributed potential-field controller. Each satellite runs its own copy on local observations only (its slot erro…
Downloads · 30 days
0
Access
Public
Updated Jul 14, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.json30.5 KB · 83%
From the Hugging Face model README
A tiny decentralized formation-flight policy — 1,474 parameters — distilled by behavior cloning from a distributed potential-field controller. Each satellite runs its own copy on local observations only (its slot error and its three nearest neighbours), holds a rotating formation, and reconfigures it collision-free — as a plain forward pass in a browser tab, on the device.
Institute for Physical AI @ BMI · The Charlot Lab · Technical Report TR-2026-17
policy/, bench/formation_bench.mjs).Multi-agent coordination — a constellation that holds its shape with no ground controller — is a distributed control problem: each agent decides from what it can sense locally. This policy is that decision, learned and made runnable on any device, open: one per-agent MLP small enough to ship as JSON and evaluate with a for-loop, run independently by every satellite in the formation.
[slot_err_x, slot_err_y, vel_err_x, vel_err_y, n1_dx, n1_dy, n2_dx, n2_dy, n3_dx, n3_dy] — the agent's error to its slot, its velocity relative to the (moving) slot, and the relative positions of its three nearest neighbours. All local; no agent sees the whole formation.[a_x, a_y] — commanded thrust acceleration.10 → 32 → 32 → 2, ReLU, with input/output normalization. 1,474 parameters.orbital-logistics/core (formationStep) — a PD toward the assigned slot, the slot's own velocity fed forward so the rotation tracks without lag, plus a pairwise potential-field avoidance from neighbours in a sensing radius. Slot assignment is a greedy nearest-free seed followed by 2-opt untangling (the minimum sum-of-squared-distance matching is provably non-crossing), which removes the crossing transfers that are the dominant collision risk.(local obs → thrust) pairs from 60 expert reconfiguration rollouts across 8–14 agents and every pattern order (policy/gen_formation_data.mjs). Near-miss states (a neighbour inside the sensing radius) are upweighted 20× so the policy learns the rare avoidance reflex, not just the keeping.policy/train_formation.mjs).| Controller | success | mean RMS | worst min-sep | mean Δv/agent |
|---|---|---|---|---|
| Distributed (analytic) | 100% | 0.09 m | 12.11 m | 303 m/s |
| Learned (this policy) | 100% | 0.15 m | 13.05 m | 302 m/s |
The learned policy matches the analytic controller's keeping and Δv and reconfigures collision-free with a 12–13 m margin. Reproducible with node bench/formation_bench.mjs.
Everything the runtime needs is in formation_policy.json (W1,b1,W2,b2,W3,b3, the xm/xsd/ym/ysd normalization, and K=3 neighbours). A forward pass is ~20 lines of JavaScript, run once per agent per step:
const P = await (await fetch('formation_policy.json')).json();
const mv = (W,a)=>W[0].map((_,j)=>a.reduce((s,ai,i)=>s+ai*W[i][j],0)), relu=z=>z.map(v=>v>0?v:0);
function policy(obs){ // obs = [ex,ey, vex,vey, n1dx,n1dy, n2dx,n2dy, n3dx,n3dy]
const x = obs.map((v,j)=>(v-P.xm[j])/P.xsd[j]);
const a1 = relu(mv(P.W1,x).map((v,j)=>v+P.b1[j]));
const a2 = relu(mv(P.W2,a1).map((v,j)=>v+P.b2[j]));
return mv(P.W3,a2).map((v,j)=>v+P.b3[j]).map((v,j)=>v*P.ysd[j]+P.ym[j]); // [ax, ay]
}
This is a research demonstrator, not flight software. The dynamics are a double-integrator at a local scale; the slot assignment (the non-crossing matching) is the safety-critical step and is computed outside the net; and the policy is run under a light reflexive safety filter, because behavior cloning reproduces the coordination and keeping but not the expert's anticipatory long-range avoidance. It exists to show that a decentralized multi-agent coordinator can run, open and on-device, one small net per agent.
MIT licensed. Institute for Physical AI @ BMI · The Charlot Lab.