Documentation
    Preparing search index...

    Interface PhysicsCapabilities

    What a solver can do (§37).

    §37: "Capability declarations drive solver: "auto" selection (§20) and the compatibility tables of §90." They also decide what a world may ask for — a world that requests a determinism tier or a CCD mode the adapter does not declare fails at construction rather than degrading quietly (WP-5.3).

    Declarations must be honest. Declaring a capability an adapter does not have converts a clear construction-time error into a wrong simulation, which is the failure mode this whole record exists to prevent.

    interface PhysicsCapabilities {
        ccdModes: readonly CCDMode[];
        determinism: DeterminismLevel;
        dimensions: readonly PhysicsDimension[];
        jointTypes: readonly string[];
        queries: PhysicsQueryCapabilities;
        snapshots: boolean;
        tuning?: PhysicsTuningCapabilities;
    }
    Index
    ccdModes: readonly CCDMode[]

    The §31 CCD modes this adapter implements. Always contains "disabled", since doing nothing is always available.

    determinism: DeterminismLevel

    The strongest §33 tier this adapter can actually achieve. Not an aspiration: the §92 determinism tests are written against it.

    dimensions: readonly PhysicsDimension[]

    The §21 dimensions this adapter can simulate; at least one.

    jointTypes: readonly string[]

    The §28 joint types this adapter implements, by name.

    string rather than the engine's JointType union, per §37 — an adapter may expose a solver-specific constraint the engine has no name for. An adapter declares exactly the ShippedJointTypes it builds (plan P6-1); [] means createJoint throws NOT_IMPLEMENTED, which is where the two Rapier adapters stand until WP-6.2/6.3.

    This declaration is about which types an adapter builds. Whether the engine can talk to its joints at all — ids, reactions, live reconfiguration — is the separate SolverJointAccess seam, detected structurally rather than declared here, because §37 fixes this record's six fields.

    Which of §30's queries are implemented.

    snapshots: boolean

    Which accepted §25/§32 tunables this adapter actually applies.

    Optional because §37 fixes the six fields above and an adapter written against that list cannot have answered; omitting it reads as NO_TUNING_CAPABILITIES — "none of them reach the solver" — through resolveTuningCapabilities, which is the reading that produces a warning rather than the one that hides a dropped coefficient.