Make machine configuration authoritative and restore native checkpoints exactly

This commit is contained in:
2026-09-18 09:09:41 +08:00
parent 6a69511276
commit 4a568f1f4c
94 changed files with 10882 additions and 301 deletions

View File

@@ -1,17 +1,19 @@
import { fnv1a64 } from "./replay.mjs";
import { WEB_SETTINGS } from "../workspace/web-settings.mjs";
const CONFIG = WEB_SETTINGS.runtime.compatibility;
export const AUTHORITATIVE_RUNTIME_SCHEMA = "sim_authoritative_runtime.v1";
const AXES = Object.freeze(["x", "y", "z"]);
const STEP_FRACTION = 0.25;
const STEP_FRACTION = CONFIG.step_fraction;
const KINEMATICS = new Set(["trivkins", "corexy", "tripod", "lineardelta", "rotarydelta"]);
const KINEMATICS_ALIASES = new Map([["corexykins", "corexy"], ["tripodkins", "tripod"], ["lineardeltakins", "lineardelta"], ["rotarydeltakins", "rotarydelta"]]);
const TRIPOD_BASE = Object.freeze([[0, 0], [10, 0], [5, 7.071]]);
const LINEAR_DELTA_RADIUS = 130.25;
const LINEAR_DELTA_ROD = 269;
const ROTARY_DELTA_PLATFORM = 10;
const ROTARY_DELTA_THIGH = 10;
const ROTARY_DELTA_SHIN = 14;
const ROTARY_DELTA_FOOT = 6;
const TRIPOD_BASE = CONFIG.tripod_base;
const LINEAR_DELTA_RADIUS = CONFIG.linear_delta.radius;
const LINEAR_DELTA_ROD = CONFIG.linear_delta.rod;
const ROTARY_DELTA_PLATFORM = CONFIG.rotary_delta.platform;
const ROTARY_DELTA_THIGH = CONFIG.rotary_delta.thigh;
const ROTARY_DELTA_SHIN = CONFIG.rotary_delta.shin;
const ROTARY_DELTA_FOOT = CONFIG.rotary_delta.foot;
const DEG_TO_RAD = Math.PI / 180;
const RAD_TO_DEG = 180 / Math.PI;