{ "boundaries": { "puma_unreachable_or_singular": "SIM_KIN_ERR_RANGE/SINGULAR verified", "scara_unreachable": "SIM_KIN_ERR_RANGE verified", "scorbot_unreachable": "SIM_KIN_ERR_RANGE verified", "state_hash": "native/WASM identical after 1e-9 hash quantization" }, "configuration_candidates": { "puma": { "coordinates": "XYZABC", "joints": 6, "kinematics": "pumakins", "origin": "shipped", "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", "scan": true }, "scara": { "coordinates": "xyzcab", "joints": 6, "kinematics": "scarakins", "origin": "shipped", "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", "scan": true }, "scorbot": { "coordinates": "XYZAB", "joints": 5, "kinematics": "scorbot-kins", "origin": "workspace_derived_fixture; source has no shipped sim INI", "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", "scan": true } }, "geometry": { "puma": { "branches": [ "shoulder", "elbow", "wrist flip" ], "parameters": { "A2": 400.0, "A3": 50.0, "D3": 100.0, "D4": 400.0, "D6": 95.0 }, "singularity": "wrist t1/t2 threshold" }, "scara": { "branch": "elbow flag selects q1 sign", "defaults": { "D1": 490.0, "D2": 340.0, "D3": 50.0, "D4": 250.0, "D5": 50.0, "D6": 50.0 }, "orientation": "C=a0+a1+a3" }, "scorbot": { "branch": "fixed elbow solution from source", "controlled_point": "wrist J3/J4", "links_mm": { "L0_horizontal": 16.0, "L0_vertical": 140.0, "L1": 221.0, "L2": 221.0 } } }, "implementation_status": "verified", "native_wasm": { "native_command": "build-native/sim_kinematics_test", "status": "passed", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" }, "oracle": { "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "status": "blocked" }, "report_sha256": "fad0d9058ca41776a07fd7b88d467b0d8f96135e036f0e887c9583c78a4f97ea", "samples": { "byte_identical_json": true, "native": { "puma": { "inverse": [ 10.0, 20.0, -30.0, 40.0, 25.0, -15.0 ], "pose": [ 450.112320486, 207.114833215, -612.180622409 ], "state_hash": 3161234248163340028 }, "scara": { "inverse": [ -3.644300703, 40.0, 25.0, -31.355699297, 5.0, -3.0 ], "pose": [ 590.460310444, 130.945742721, 465.0 ], "state_hash": 4515826253922604237 }, "scorbot": { "inverse": [ 25.0, 35.0, -20.0, 10.0, -5.0 ], "pose": [ 366.786994761, 171.035584569, 191.173940759 ], "state_hash": 16037922903473574131 } }, "wasm": { "puma": { "inverse": [ 10.0, 20.0, -30.0, 40.0, 25.0, -15.0 ], "pose": [ 450.112320486, 207.114833215, -612.180622409 ], "state_hash": 3161234248163340028 }, "scara": { "inverse": [ -3.644300703, 40.0, 25.0, -31.355699297, 5.0, -3.0 ], "pose": [ 590.460310444, 130.945742721, 465.0 ], "state_hash": 4515826253922604237 }, "scorbot": { "inverse": [ 25.0, 35.0, -20.0, 10.0, -5.0 ], "pose": [ 366.786994761, 171.035584569, 191.173940759 ], "state_hash": 16037922903473574131 } } }, "schema": "robot-kinematics-report.v1", "source_records": { "header": { "path": "wasm-core/include/sim_kinematics.h", "sha256": "db16293ec3645559a0be71a40963693f3d1e3f5fdedc92902be19b47f653dfa8" }, "implementation": { "path": "wasm-core/src/sim_kinematics.c", "sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd" }, "puma_config": { "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", "sha256": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6" }, "puma_params": { "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", "sha256": "b57992601bf614c26e53c8add3c3aac0a0df79929dd64f897a19630437d1c181" }, "puma_source": { "path": "linuxcnc/src/emc/kinematics/pumakins.c", "sha256": "5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2" }, "scara_config": { "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", "sha256": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce" }, "scara_source": { "path": "linuxcnc/src/emc/kinematics/scarakins.c", "sha256": "f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9" }, "scorbot_config": { "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", "sha256": "4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343" }, "scorbot_source": { "path": "linuxcnc/src/emc/kinematics/scorbot-kins.c", "sha256": "89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d" }, "test": { "path": "wasm-core/tests/sim_kinematics_test.c", "sha256": "ceeb8b4100d034d76e70ce675d78b2d62c51e8e70be2205a9c8ae02e105a6aa6" } }, "status": "partial" }