The hack has a job
Pat Kerr rebuilt a 1996 vehicle experiment in JavaScript for its thirtieth anniversary. Kerr says the original GFA BASIC prototype later became the basis of the vehicle system in the first Grand Theft Auto. The current Motion Lab runs three behaviors on one rigid body: Car, Ship, and Brick.[1]
The car model is the useful part. Each tyre reads velocity at its position. The model splits that velocity into forward and sideways components. It applies light resistance along the wheel and stronger resistance across it. Steering rotates the front wheel directions. The handbrake changes the rear resistance.[1]
The shortcut is not "fake physics." It is a small force model chosen for a specific feel.
Name the lie
Kerr calls the tyre model approximate and technically incorrect. The resistance is proportional to velocity and has no force cap. Real tyre friction does not work that way. In the Hacker News discussion, Kerr compared the model to viscous drag and said the conscious hack was chosen to get playable behavior with little machinery.[2]
That disclosure makes the model useful. A prototype can be wrong about the world and right about the question. This one asks whether strong sideways resistance, steering at the front, and a rear-grip release produce a controllable top-down car.
Keep input, simulation, and drawing apart
The current recreation separates browser controls, fixed simulation steps, vehicle updates, and Canvas drawing. That structure lets input change the force model without tying motion to the display refresh rate.[1]
The browser still supplies useful machinery. Pointer Events give mouse, pen, and touch one event model. Pointer capture can keep a drag alive after the pointer leaves the original target.[3] requestAnimationFrame() schedules drawing before a repaint, but MDN warns that frame progress must use the callback timestamp or another clock. Otherwise high-refresh displays run faster.[4]
Test the feel in public
We opened Motion Lab version 0.8.2, switched between Car and Ship, and inspected the live settings. The car exposes acceleration and handbrake strength. The ship replaces those controls with a choice between a rotating head and side thrusters. That is good prototype hygiene. Each behavior gets the controls that explain it.
The test bay below is our own teaching model. It does not copy Motion Lab's solver and it is not a vehicle simulator. It turns three design choices into a visible path: steering response, sideways grip, and rear release. Use it to decide which behavior deserves a real implementation.