Choose a backend explicitly
Studio → Test → Full Car advanced analysis → 14-DOF Coupled Transient offers C++ / WebAssembly mechanics with fixed RK4 or adaptive RK45. The original mechanics with RK4 remains the default. The two optimized TypeScript methods remain available. All five choices use the same generic fixed-rack Double-Wishbone experiment and its existing physical envelope. Applied Vehicle assembly, imported roads and tire-slip traction are outside this model.
The dedicated Worker loads the small native module only when a native run starts, checks its SHA-256 identity and instantiates those checked bytes. It owns one model and fixed 16 MiB linear memory. Cancellation terminates the Worker, including during initialization. Loading, native validity and numerical failures are explicit; a failed native run does not select another backend automatically. Completed earlier evidence remains visible and is marked stale after an incomplete attempt.
What runs in C++
The complete state-dependent acceleration path runs in the same C++ source compiled for native and WebAssembly: suspension and fixed-rack closure, material kinematics/Jacobians, coupled mass and inertial bias, gravity, installed springs, dampers, prescribed wrenches, internal wheel torque, flat compliant support and the mass solve. Inputs contain raw model definitions, state and prescribed loads. The accepted TypeScript flat-equilibrium routine initializes the experiment once; the full native RHS independently checks that initial equilibrium. RK4/RK45 stepping remains the accepted TypeScript numerical implementation around the native RHS.
Interpret the timing scopes
Solver Analysis v3 shows the ABI, compiler, source/WASM hashes, module fetch/check/initialization, Worker request duration and page-measured Run-to-Worker-receipt duration. The latter includes startup and message transfer and ends before page validation/rendering. Integration wall time includes actual advancing physics, sampling, damping quadrature and cooperative Worker yields. Compilation, equilibrium and result assembly are separate. Native RHS phases and transport timings have overlapping scopes and must not be summed as independent costs.
The geometry phase covers the primary pose; the inertia phase also includes geometry queried by the inertial-bias stencil. Native total contains those phases. WASM call time includes the native ABI execution, while input-copy and output-copy/decode times are reported separately. A fixed linear-memory size is an allocation capacity, not a measurement of total browser-process RAM.
Compare matching runs
The session retains at most three completed runs. The existing wall-speedup chart allows different numerical methods on matching physical inputs. A separate backend comparison requires a retained optimized TypeScript baseline with identical physics, output times, integrator, fixed step and tolerance/step controls. If that baseline is absent or has been evicted, backend speedup is unavailable. These ratios use integration wall time; initialization and request timing remain visible separately.
Interactive experiments do not run an independent reference in the background. Their absolute reference discrepancy is unavailable. Algebraic residual checks the linear solve, an adaptive error estimate is local, and differences between implementations do not establish absolute trajectory error. Hardware load, module initialization, output density and browser behavior affect measured speed.
Evidence and exports
ML-62 native scientific qualification recomputes the actual packaged WASM against the unchanged independent geometry, mechanics and transient references, including signed 0.4-second histories. Native executable parity, performance and optional Chrono experiments are separate review receipts. This establishes numerical verification within a bounded generic model, without measured-vehicle validation.
Native CSV, Solver Diagnostics JSON and provenance carry the actual backend and build identity through separate v3 contracts. Original v1 and optimized TypeScript v2 records retain their contracts. All experimental configuration and run evidence remain session-only and excluded from workspace-project.v2. Project replacement clears them.
Project Chrono is a separate, optional native headless kinematic experiment. It is not loaded by Studio and is not the engine behind these WebAssembly choices. Its prescribed spindle rig is not a road-driven 14-DOF ride model.
Native runtime third-party notices · Numerical methods and limits