Boundary props

track_gen.props.PropSampler resamples a boundary at a set spacing into instancing poses — cones (mode="points") or wall pieces (mode="segments", chord midpoint + yaw + length).

One track with cone poses along both boundaries (points mode) and wall chords along both boundaries (segments mode).

The two prop modes on one track: cone poses (left) and wall chords (right), sampled from the inner and outer boundary independently.

Both modes snap the requested spacing per environment — n = clamp(round(perimeter / spacing), 3, max_props) at effective step perimeter / n — so every closed ring places props with no seam gap or doubled prop. PropSet.count/truncated/step report what was actually placed; see the left panels of the overview figure on the utilities overview.

Props are rendering-only by design. To make point props physical (cones a vehicle can clip), feed their positions to track_gen.collision.DiscChecker — see collision.

API: track_gen.props.PropSampler, track_gen.props.PropSet — see the API reference.