Mixed batches
GPU simulators are fastest when every environment is a copy of the same one. Steel treats a mixed batch as a scheduling problem instead. Articulations are grouped by DOF count for the dynamics, and in the serial sweep each world’s rows are solved by its own , with loops that run over that world’s live row count. Worlds never share a row, so a world with two contacts finishes its own rows early while a crowded one keeps going. Several world warps share a thread , whose resources become available for new work once all of its warps finish. Some per-world index buffers are still sized for the world with the most DOFs, so one large world raises the memory of the batch.
- Heterogeneous worlds. Worlds can hold different robots and objects: call
ModelBuilder.add_worldonce per world with a different builder, or usebegin_worldandend_world. - Global bodies. Articulations in world
-1are solved with world 0. A kinematic global free body, such as a moving platform, contacts every world. A contact between an articulated body of one world and a dynamic global body cannot be solved and is dropped and flagged; use world geometry or a kinematic body for shared scenery. - Few large worlds. One warp per world suits thousands of worlds. For a handful of large worlds, the colored propagation sweep exposes more parallelism. On the integration branch it can run as one launch per step when the worlds fit one block per multiprocessor and the model layout and options allow it (for example, no sparse mass factors and a bounded number of articulations per size group).
Six worlds with different robots. Their dynamics are grouped by joint count; each step, every world is assigned to a small-world kernel or the general sweep from its live row count. Below, the general sweep: each routed world is one warp in a shared thread block and loops over its own rows, so short worlds finish their work early; the block’s resources are freed when its last warp finishes. Schematic; bar lengths are proportional to row counts. Tutorial: Heterogeneous worlds · Per-world reset
Steel docs and tutorials are licensed under Apache-2.0. Third-party notices. "Skild", "Skild AI" and the Skild logo are trademarks of Skild AI and are not licensed under Apache-2.0.