Physics World
Set gravity and timestep for the physics world, and solve the entities wired into it.
What it does
The shared solver for every kind of simulation entity: rigid bodies, Cloth Sim, Fluid Sim, Soft Body Sim and Smoke Sim. Wire any Sim node's output into Entities and it self-classifies, so rigid bodies and cloth take the same route in. Forces (Wind, Turbulence and the rest) and Joints (Ball, Hinge) apply across everything wired in, and Gravity, Timestep, Substeps and Iterations control the whole world at once.
In a 3D scene it behaves as a metre-scale physics stage. In a composite (2D) layer it fits itself to the canvas: gravity, the ground plane and the enclosing box all rescale, so pixel-scale content falls at a plausible speed. Physics persists and advances frame to frame only through a Feedback loop, with State In from Feedback Start and State Out to Feedback End.
When to use it
Rigid bodies, cloth, fluid, soft body or smoke falling, colliding and settling together in one shared world
A floor or box to land on: Ground Mode set to Ground Plane or Box
Wind, turbulence or other force fields pushing everything in the scene
Articulated joints, hinges and ball joints, connecting rigid bodies
2D composite work where gravity and props should read correctly at pixel scale without hand-tuning
| Parameter | Type | Default |
|---|---|---|
entities | Any | Collection(AttributedCollection { col... |
forces | Any | Collection(AttributedCollection { col... |
joints | Any | Collection(AttributedCollection { col... |
state_in | SolverState | — |
world_id | String | "default" |
gravity | Vec3 | (0, -9.8, 0) |
world_scale | Number | 1 |
delta_time | Number | 0.017 |
substeps | Number | 1 |
iterations | Number | 10 |
reset | Boolean | false |
planar_lock | String | "Auto" |
ground_mode | String | "Box" |
ground_y | Number | -50 |
ground_size | Vec3 | (500, 500, 500) |
ground_friction | Number | 0.500 |
ground_restitution | Number | 0.300 |
dynamic_ground | Boolean | false |
ground_mass | Number | 100 |
contact_impulse_threshold | Number | 0 |
contact_filter_ids | String | "" |
strength | Number | 1 |
Gotchas
Substeps and Iterations apply to the whole world, not per entity. All entities share one solver, so one rigid body cannot be given more iterations than another.
World Scale is normally set automatically from where the node lives: a composite layer maps the canvas height to a metre scale, a 3D scene is assumed to be metre-scale already. If gravity looks too slow or too fast for a large or tiny scene, raise or lower World Scale by hand rather than fighting Gravity.
Reset fires for one frame and re-seeds every entity from rest, which returns a scrubbed timeline to a clean start without rebuilding the graph.
Physics advances across frames only when wired into a Feedback loop: State Out to Feedback End, State In from Feedback Start. Without that loop every cook starts the simulation fresh from rest, so nothing falls or settles.
Worked example
Add a Physics World and wire a Rigid Body Sim (or Cloth, Fluid, Soft Body) into Entities.
Set Ground Mode to Ground Plane or Box so falling objects have something to land on.
Wrap it in a Feedback loop: Feedback Start's state into State In, and State Out into Feedback End, so the simulation persists and advances each frame.
Wire a Force Field (e.g. Wind) into Forces to push everything in the world.
Read Bodies Out (or Cloth Out / Fluid Out / Soft Body Out, depending on what was wired in) downstream to render the result.
See also
Rigid Body Sim · Physics Joint · Force Field · Physics Query