NAMEFRAME Commercial Preview Apply for Pilot
Documentation

Spacing, grounding and collision

Three contracts that decide whether a placement is accepted, and the reason most rejections happen.

Spacing#

Two modes, measuring different things.

center measures the distance between logical placement centres. Cheap, and correct enough for objects that are small or roughly symmetric.

footprint uses conservative projected bounds. Safer for anything large or elongated, because two vehicles whose centres are three metres apart can still be overlapping.

Footprint spacing rejects more candidates, which is the trade: fewer placements per attempt budget, in exchange for not producing objects that intersect.

Not an exact packing solver

The footprint approach is conservative bounds, not oriented-polygon packing. It errs towards refusing a legal placement rather than accepting an illegal one, which is the right direction for a dataset but means a dense scene may report refusals that a perfect solver would have accepted.

Grounding#

bounds_bottom rests the object's lowest point on the surface. pivot puts the object's pivot there instead.

Which is right depends on how the asset was authored. An asset whose pivot sits at its base behaves the same either way; one whose pivot is at its centre will sink halfway into the floor under pivot.

Ground contact is traced and recorded per actor, with the clearance and the surface it landed on. That is what lets a report afterwards distinguish an object legitimately resting on a roof from one floating for no reason.

A placement that cannot satisfy the required grounding is rejected. It is not quietly dropped at the helper's height, because an object hovering at zone altitude is exactly the kind of defect that survives a visual check and ruins a training set.

Collision#

disabled skips the check. bounds uses conservative geometry to reject placements that would intersect.

Modes such as simple or complex are not silently accepted and treated as bounds. An unsupported mode fails.

The attempt budget#

Each placement gets a bounded number of tries to find a legal position. When the budget runs out the placement is refused, with the reason recorded in the spawn manifest.

This is the honest failure mode. The alternative — placing the object anyway, somewhere illegal — produces a dataset that looks complete and contains objects inside walls.

A run reporting many refusals is telling you something true: the zone is too small, the spacing is too large, or the exclusions leave nowhere legal. Raising the budget does not fix a scene with no room in it.