SkatePhysicsKernel
Stateless WASM adapter over the existing Skate Rust contact/joint/integration functions.
SkatePhysicsKernel.plugin
Stateless WASM adapter over the existing Skate Rust contact/joint/integration functions.
The low-level step request accepts a compound shape:
{"type":"compound","children":[{"shape":{"type":"sphere","radius":0.2},"position":[1,0,0],"collision_enabled":true}],"authored_mass_frame":false}
Children retain their declared order and may be sphere, capsule, box or triangle.
Each has a position and optional column-major rigid basis (identity by default).
Triangle children provide vertices, fatness, edge_cosines and volume_flags;
bake any child transform into triangle vertices. Non-rigid or mirrored bases,
degenerate triangles and unsupported dimensions are rejected. Limits are64
children per compound and512 total collision volumes per request.
Mass includes collision-disabled children. The engine computes the native center
of mass and principal axes internally. Body position/rotation and constraint
anchors stay in the authored body frame; linear velocity describes the center
of mass and angular velocity uses world axes. authored_mass_frame=true is an
explicit source-owned override (the stock deck constructor uses it), not the
normal choice for a user-defined asymmetric body. It keeps aggregate inertia
while retaining the authored mass frame.
Child contacts use the existing primitive/triangle routines. Mesh contacts retain world-face order followed by child order. Friction/restitution come from the owning Body. No implicit rider is created.
Compound input is available through kernel/API.solve and Body.shape="compound" with editable CollisionVolume child entities. The complete board preset and remaining package acceptance gates are still under integration.
Trajectory delta
await(API.trajectoryDelta(request)) calls the reconstructed animation kernel.
The request contains previous and current poses with translation (xyz),
rotation (xyzw), scale (xyz), and weight. Pose defaults are zero translation,
identity rotation, unit scale and weight1. Supply optional loop_transform with
explicit rotation and translation when a wrap requires the authored transform.
The result has the same pose fields. It retains current scale/weight and computes
translation in the previous pose's rotation frame. Quaternion lanes follow the
native operation without additional normalization. Nonfinite inputs/results fail.
The loop transform is applied once when supplied. It is not raised to a loop count; callers retain the playback clock and wrap policy as normal Zero state. This operation returns data and never changes an entity, input or ownership.
step_batch({steps,state}) performs1..16 native fixed steps and returns the final state. Multiple Ground steps require entered live body_commands updates; lifecycle transitions and external observation records are rejected for multi-step batches. No host-visible state is published from a failed batch.
Scoped to this part · feeds back into the world's score.