Four tiny wirings from Valentino Braitenberg's Vehicles (1984). Each vehicle has two light sensors wired to two wheels, straight or crossed, exciting or inhibiting them. Nothing inside is afraid or in love; the behaviour comes from the wiring and the light.
Click to place a light, drag to move it, double-click to remove it. Reload the page mid-run and it carries on from its last checkpoint.
The world is saved every 30 ticks. "Simulate crash" throws away everything in memory and carries on from the last save, so a crash costs half a second of simulated time, not the whole run.
A ping sounds when a vehicle enters bright light. Each one is keyed by run, vehicle and tick, so ticks replayed after a crash can't play the same ping twice.
Each tick is a pure function of the previous world, with a seeded start. Replaying from a checkpoint lands in exactly the same place, which is what makes the other two patterns cheap.
A run parks after five minutes of simulated time, or when nothing has moved for five seconds. Parked means saved with a reason, ready for you to change something and resume.