Intermediate Programmer
Stride's physics are controlled by the Simulation class. You can change how Stride initializes the Simulation by going to the Configuration section of your game's settings.
These settings control the rules and parameters your physics simulation run under, enabling customization and fine-tuning of the physics environment to suit your game's requirements. You may also create multiple simulations and distribute your physics object between them depending on your needs.
Have a look at the API for more detail on what each property does.
You can assign your physics object to specific collision layers, those layers can then be set to ignore objects assigned to other layers.
Those rules can be set by modifying the collision matrix at runtime, or through the Layer[...] fields in the editor.
For example, pressing Change values... next to Layer0 and un-ticking Layer1 would cause all objects on Layer0 to pass through objects on Layer1.
There are multiple ways to retrieve a reference to this BepuSimulation from inside one of your ScriptComponent:
myBody.Simulation as it is the fastest.Entity.GetSimulation() extension method.The following are relevant excerpts from Bepu's documentation.
If physics causes your game to hang for a while when simulating for the first time, it may be related to just-in-time compilation. If it becomes a problem, consider running a small simulation that hits all the relevant codepaths (a bunch of objects colliding with constraints applied) behind a loading screen. Using an ahead-of-time compilation toolchain would also work.