# Physics Update
Beginner
Programmer
When you need your logic to interact, query or otherwise modify the state of a simulation, you may need to do so right before or after physics updates. You can implement the `ISimulationUpdate` interface in your EntityComponent or Scripts to be notified of when simulation updates.
```cs
using System;
using Stride.BepuPhysics;
using Stride.BepuPhysics.Components;
using Stride.Engine;
public class MyPhysicsComponent : SyncScript, ISimulationUpdate
{
public override void Update()
{
// Here you would call stuff you need to do every frame
}
public void SimulationUpdate(BepuSimulation simulation, float simTimeStep)
{
// Here is for stuff you need to do right before physics runs,
// sample player input, setting body velocities, etc.
}
public void AfterSimulationUpdate(BepuSimulation simulation, float simTimeStep)
{
// Here is for stuff you need to check right after physics ran,
// check if an object collided with anything, if it's on the ground,
// if it failed to increase in height when jumping, etc.
}
}
```
## See also
* [Character](characters.md)
* [Physics Jitter](fix-physics-jitter.md)
* [Body](rigid-bodies.md)
* [Index](index.md)