You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add X/Y margin to ON relation & access by intent compiler (#795)
## Summary
Short description of the change (max 50 chars)
## Detailed description
- Why: An object placed On a surface could solve to a pose on the rim,
causing it topple off the edge. There was no way to keep its footprint a
safe distance inside the parent surface.
- What:
1. On has an `edge_margin_m` parameter (default 0.0) that insets the
valid X/Y footprint band by the margin, so the whole footprint stays at
least that far from every rim.
2. A margin too large for the parent surface is now rejected in
validation
3. `IntentCompiler.compile()` injects a default edge_margin_m (0.05 m)
on every on relation built from an intent spec
- Impact: Agent-generated scenes keep objects clear of surface edges by
default.
## Results
<img width="700" height="600" alt="optimization_margin_0p30"
src="https://github.com/user-attachments/assets/979e4bd9-1c95-486a-90e9-fbfa448c6baf"
/>
<img width="633" height="603" alt="placement_margin_0p30"
src="https://github.com/user-attachments/assets/467d211e-027f-441b-a0d9-9f4d28e5c0b4"
/>
### With agentic env gen pipeline
Before
<img width="812" height="512" alt="Screenshot from 2026-06-15 12-17-15"
src="https://github.com/user-attachments/assets/a787d63d-923c-41f6-bdc9-b5c4f7ed1356"
/>
After
<img width="956" height="545" alt="Screenshot from 2026-06-15 11-02-57"
src="https://github.com/user-attachments/assets/982990dd-05f7-41f2-af53-a871a68f6ef6"
/>
0 commit comments