Very close to working now, client-side simulation doesn't get correct
timestep though. Likely a simple issue to fix.