
Kinewright has a second engine: Wheels, how a body with exactly four wheels moves. Three stages are accepted, and this article shows what each one proved and every limitation still in place.
What Wheels is
Kinematics only: no tyres, no suspension, no physics. Every number here is traced from the engine's own run; nothing is measured.
A shell with four wheels that pulls away, holds and changes speed, turns, brakes, stops, parks and manoeuvres in a bounded space.
Driven the same way from a keyboard, a scripted scene or a behaviour layer: one intent type, one policy.
Every drive is a journal. It replays byte for byte in a separate process, and the same records come out on Linux, Windows and macOS.
Same house and same world frame as the human engine; a different engine with a different subject.
Not a path planner, not an autonomy stack, not a vehicle simulator, not a controller for real hardware.
Three accepted stages
Kinematic baseline (4 September). A shell of exactly the declared dimensions drives in the browser. Changing the wheelbase changes the turning radius by exactly
R = L / tan δ, traced within 3·10⁻¹⁴ of the stated value.Capability contract (13 October). Four shells of one small body, front steer, rear steer, four-wheel steer and skid, plus one with the steering locked, run nine manoeuvres from the same start. All 46 shell-and-manoeuvre pairs bind exactly as predicted before the code existed: 32 native, 7 adapted, 2 fallback, 5 unsupported. Turn-in-place is native on the skid shell, becomes a three-point turn on the steered shells, and is refused with the steering locked.
Driveable shell (20 October). A person drives the four-wheel-steer and the front-steer shell with W, S, A, D and Space. The keys are mapped onto each profile's declared limits by a written policy. The nine manoeuvres can be invoked, interrupted, resumed and dropped. Steering now turns while rolling; follow-path ends on the drawn pose, parallel-park parks in one reverse run.
Numbers from this stage
Small platform: wheelbase 0.257 m. A generic hobby-grade profile; no real platform is named because none was measured.
Steering authority keeps lateral acceleration under 0.9 of the kinematic honesty bound: 4.41 m/s² against 4.90.
The speed cap binds at full lock from 1.51 m/s on front and rear steer and from 1.08 m/s on four-wheel steer.
Parallel park: 0.687300 m back in one reverse run on front steer; the four-wheel-steer shell crabs 0.25 m sideways instead.
The committed drive: 1,314 ticks at 120 Hz, about 11 seconds; its 17 key presses are listed in the records.
51 manoeuvre-and-shell pairs at this stage: 35 native, 9 adapted, 2 fallback, 5 unsupported, all predicted before the code.
Rolling manoeuvres end within 10⁻⁹ of their closed forms; the worst segment is 1.1·10⁻¹⁴ off.
What it does not claim, and why
| What you see or might expect | Why | Changes at |
|---|---|---|
| The shells drive through each other | No collisions and no obstacles exist yet | The obstacle stage, next on the map |
| A manoeuvre's first steer from rest happens standing still, and so does the change of lock when it reverses | A bounded limitation kept on purpose: steering now rolls inside manoeuvres, not at their start | A later stage, not scheduled |
| The steering goes from full lock to straight in 75 ms, a hard ramp | The steering rate is one declared number, an estimate for a hobby servo, with no bound on how fast that rate changes; the trails here follow the rear axle, which never slips sideways, so they show no hook | A later stage: the shape of the transition as a declared bound |
| The skid shell stops to change its curvature | Its rolling transition would ramp side speeds under different limits; kept as it was | A later stage, not scheduled |
| A resumed manoeuvre restarts from where the shell stands | It does not return to its original goal: that is path planning, which this engine does not do | Not planned in this engine |
| Fast turns look "too easy" | Kinematics: no tyre grip, no body roll. The engine announces every frame that crosses the honesty bound instead of simulating it | A dynamics provider, not a Wheels stage |
| Every shell here is the same small body | One profile family in these scenes; the paper sedan from the first stage is not here | A real platform, once one is measured |
| Speed can overshoot a falling cap by up to 0.3 m/s | The jerk limit lets it; the policy is aimed, not guaranteed, and the frame reports it | Kept as a declared limit |
| The browser and the records differ in the last digit | JavaScript engines differ in the last digit of sin and cos at 13 of 233 probe points; 3 of 1,314 ticks differ | Kept by contract: bytes within one engine, twelve digits across engines |
Two assumptions sit under everything here. The first is the kinematic honesty bound: a kinematic model is honest only while the sideways acceleration in a turn stays under half of what the tyres could hold, 4.9 m/s² at a friction coefficient of 1. The engine announces every frame that crosses that line instead of simulating what happens past it; the line comes from passenger-car studies and has not been checked on small platforms. The second is the tip threshold: a rigid body tips when sideways acceleration exceeds half its track over the height of its centre of mass; real vehicles lean and tip about 15 % earlier. Both are lines where the engine's claims stop, not safety limits.
About the author
- Frontend & UI engineer, focused on design systems and native-first UI.
Comments
Join the discussionNo comments yet. Be the first to comment.




