{ "boundaries": [ "simulation-only", "native process uses POSIX non-realtime fallback", "Web visual uses Chromium SwiftShader", "real hardware and full LinuxCNC parity are outside selected-case tool comparison" ], "case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", "checks": { "native_tool_verified": { "report": "coverage/axis3-tutorial-manual-ui-verification.report.json", "status": "verified" }, "same_case_and_context": { "case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "native_source_files": "coverage/axis3-tutorial-native-run.report.json", "program": "linuxcnc/nc_files/3dtest.ngc", "status": "verified", "wasm_source_files": "coverage/axis3-tutorial-web-wasm-complete-parity.report.json" }, "same_operation_intent": { "native": [ "WINDOW_VISIBLE", "ESTOP_RESET", "ON", "ALL_HOMED_REQUESTED", "AUTO_RUN_REQUESTED" ], "status": "verified", "web_labels": [ "ready", "estop", "power", "homed", "running", "complete" ] }, "visual_evidence_nonempty": { "native_screenshots": 4, "status": "verified", "web_screenshots": 4 }, "wasm_acceptance_regression": { "passed": 20, "required": 20, "status": "verified" }, "web_tool_verified": { "report": "coverage/axis3-tutorial-web-manual-verification.report.json", "status": "verified" } }, "conclusion": "native_and_web_tools_match_selected_case_workflow", "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "report_sha256": "292a386579c313e96e1fc004b22a79605a014714439c8d6ad4be6c34a9aac7d4", "schema": "axis3-tutorial-native-web-tool-comparison.v1", "shared_inputs": { "case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "native_source_files": "coverage/axis3-tutorial-native-run.report.json", "program": "linuxcnc/nc_files/3dtest.ngc", "wasm_source_files": "coverage/axis3-tutorial-web-wasm-complete-parity.report.json" }, "status": "verified", "task_id": "AXIS3-NATIVE-WEB-TOOL-COMPARISON-01", "tools": { "native": { "report": "coverage/axis3-tutorial-manual-ui-verification.report.json", "screenshots": [ { "bytes": 160022, "path": "coverage/axis3-tutorial-manual-ui.png", "returncode": 0, "sha256": "76a0c7ac9f97d008087635033a1a18b01a75f6efd11a46f7a65b4897005cdea5", "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "bytes": 162410, "path": "coverage/axis3-tutorial-manual-ui-homed.png", "returncode": 0, "sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e", "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "bytes": 162410, "path": "coverage/axis3-tutorial-manual-ui-running.png", "returncode": 0, "sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e", "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "bytes": 162410, "path": "coverage/axis3-tutorial-manual-ui-complete.png", "returncode": 0, "sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e", "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" } ], "tool": "tool/linuxcnc-axis-manual-execution", "transitions": [ { "height": 1297, "state": "WINDOW_VISIBLE", "title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial", "width": 1300 }, { "input": "F1", "state": "ESTOP_RESET" }, { "input": "F2", "state": "ON" }, { "input": "Ctrl+Home", "state": "ALL_HOMED_REQUESTED" }, { "input": "r", "state": "AUTO_RUN_REQUESTED" } ], "window": { "class": "axis", "height": 1297, "instance": "Axis", "title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial", "width": 1300 } }, "web": { "browser": "Google Chrome headless", "report": "coverage/axis3-tutorial-web-manual-verification.report.json", "screenshots": [ { "bytes": 112654, "label": "ready", "path": "coverage/axis3-tutorial-web-ready.png", "sha256": "8090814b1b5351952822f27d9b5927ae36fa3dd71355eda12127c9525984743f" }, { "bytes": 145174, "label": "homed", "path": "coverage/axis3-tutorial-web-homed.png", "sha256": "127d0ce429d83bf410b7f5461b8223771a1a0374d04ed40a81e005fad8a04fca" }, { "bytes": 144461, "label": "running", "path": "coverage/axis3-tutorial-web-running.png", "sha256": "0ed52562d7f5e07f64743ec85fc1db7cc323eb357a075a2dbd688de205a817fb" }, { "bytes": 144492, "label": "complete", "path": "coverage/axis3-tutorial-web-complete.png", "sha256": "3713af13105514ab8478dcb548d9766361cafb2a3453765e9cc000b1de4ecc78" } ], "states": [ { "axis_state": "IDLE", "canvases": [ { "height": 471, "width": 941 } ], "case_status": "ready to load", "connection": "READY", "error_text": "TASK_READYTick 0Hash fnv1a64:034bfe70d581f786Startup resourcesEntrypoint: linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.iniResources: 4 resolved / 0 blockedHAL: 37 records / 0 blockedDisabled operationsrunaxis_taskfile_missingstepaxis_taskfile_missingpauseaxis_pause_state_gateresumeaxis_resume_state_gateabortaxis_stop_state_gaterestartaxis_taskfile_missingSource diagnosticsNo startup diagnostics", "footer": "Idle", "href": "http://127.0.0.1:5175/", "label": "ready", "machine_state": "Machine ON", "operation_state": "Operation IDLE", "position": "X0.000 Y0.000 Z0.000", "program_status": "idle", "ready_state": "complete", "root_html": "
\",\"joint.0.motor-pos-fb\",\"ddt_x.in\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":30,\"command\":\"net\",\"tokens\":[\"Ypos\",\"joint.1.motor-pos-cmd\",\"=>\",\"joint.1.motor-pos-fb\",\"ddt_y.in\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":31,\"command\":\"net\",\"tokens\":[\"Zpos\",\"joint.2.motor-pos-cmd\",\"=>\",\"joint.2.motor-pos-fb\",\"ddt_z.in\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":35,\"command\":\"net\",\"tokens\":[\"Xvel\",\"ddt_x.out\",\"=>\",\"ddt_xv.in\",\"vel_xy.in0\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":36,\"command\":\"net\",\"tokens\":[\"Xacc\",\"<=\",\"ddt_xv.out\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":37,\"command\":\"net\",\"tokens\":[\"Yvel\",\"ddt_y.out\",\"=>\",\"ddt_yv.in\",\"vel_xy.in1\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":38,\"command\":\"net\",\"tokens\":[\"Yacc\",\"<=\",\"ddt_yv.out\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":39,\"command\":\"net\",\"tokens\":[\"Zvel\",\"ddt_z.out\",\"=>\",\"ddt_zv.in\",\"vel_xyz.in0\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":40,\"command\":\"net\",\"tokens\":[\"Zacc\",\"<=\",\"ddt_zv.out\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":43,\"command\":\"net\",\"tokens\":[\"XYvel\",\"vel_xy.out\",\"=>\",\"vel_xyz.in1\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":44,\"command\":\"net\",\"tokens\":[\"XYZvel\",\"<=\",\"vel_xyz.out\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":47,\"command\":\"net\",\"tokens\":[\"estop-loop\",\"iocontrol.0.user-enable-out\",\"iocontrol.0.emc-enable-in\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":49,\"command\":\"loadusr\",\"status\":\"checked\",\"code\":null,\"program\":\"hal_manualtoolchange\",\"capability\":\"SIM-ADAPTER\",\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":50,\"command\":\"net\",\"tokens\":[\"tool-change\",\"iocontrol.0.tool-change\",\"=>\",\"hal_manualtoolchange.change\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":51,\"command\":\"net\",\"tokens\":[\"tool-changed\",\"iocontrol.0.tool-changed\",\"<=\",\"hal_manualtoolchange.changed\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":52,\"command\":\"net\",\"tokens\":[\"tool-number\",\"iocontrol.0.tool-prep-number\",\"=>\",\"hal_manualtoolchange.number\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":53,\"command\":\"net\",\"tokens\":[\"tool-prepare-loopback\",\"iocontrol.0.tool-prepare\",\"=>\",\"iocontrol.0.tool-prepared\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":56,\"command\":\"loadusr\",\"status\":\"checked\",\"code\":null,\"program\":\"./3axis-tutorial\",\"capability\":\"WEB-EQUIV\",\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":59,\"command\":\"net\",\"tokens\":[\"j0\",\"joint.0.pos-fb\",\"=>\",\"3axis-tutorial.jointX\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":60,\"command\":\"net\",\"tokens\":[\"j1\",\"joint.1.pos-fb\",\"=>\",\"3axis-tutorial.jointY\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":61,\"command\":\"net\",\"tokens\":[\"j2\",\"joint.2.pos-fb\",\"=>\",\"3axis-tutorial.jointZ\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":64,\"command\":\"net\",\"tokens\":[\"tool_len\",\"3axis-tutorial.toollength\",\"<=\",\"motion.tooloffset.z\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"},{\"schema\":\"hal-configuration-preflight.v1\",\"line\":65,\"command\":\"net\",\"tokens\":[\"tool_rad\",\"halui.tool.diameter\",\"3axis-tutorial.tooldiameter\"],\"status\":\"checked\",\"code\":null,\"source\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"resource_id\":\"hal:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\"}]},\"core\":{\"result\":0},\"status\":\"ready\",\"state_hash\":\"fnv1a64:a7f7c05da5d79f9d\"},\"axis_state\":{\"state\":\"ESTOP\",\"machine_state\":\"ESTOP\",\"operation_state\":\"IDLE\",\"source_task_state\":\"STATE_ESTOP\",\"source_interp_state\":\"INTERP_IDLE\",\"source_mode\":\"MANUAL\",\"states\":[\"ESTOP\",\"ESTOP_RESET\",\"OFF\",\"ON\",\"HOME\",\"IDLE\",\"RUNNING\",\"PAUSED\"]},\"gates\":{\"load\":{\"action\":\"load\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"run\":{\"action\":\"run\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"step\":{\"action\":\"step\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"pause\":{\"action\":\"pause\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"resume\":{\"action\":\"resume\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"abort\":{\"action\":\"abort\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"restart\":{\"action\":\"restart\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"mdi\":{\"action\":\"mdi\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"jogStart\":{\"action\":\"jogStart\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"jogStop\":{\"action\":\"jogStop\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"home\":{\"action\":\"home\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"estop\":{\"action\":\"estop\",\"enabled\":true,\"reason\":\"axis_estop_reset_available\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"recover\":{\"action\":\"recover\",\"enabled\":true,\"reason\":\"axis_recover_available\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"override\":{\"action\":\"override\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"reset\":{\"action\":\"reset\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"spindle\":{\"action\":\"spindle\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"},\"coolant\":{\"action\":\"coolant\",\"enabled\":false,\"reason\":\"axis_fault_active\",\"taskState\":\"ESTOP\",\"interpState\":\"IDLE\"}},\"visual\":{\"schema\":\"axis-visual.v1\",\"pose\":{\"x\":0,\"y\":0,\"z\":0},\"joints\":[0,0,0],\"toolpath\":[{\"id\":1,\"source_line\":5,\"start\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":25.4,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":0,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":2,\"source_line\":6,\"start\":{\"x\":25.4,\"y\":25.4,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":25.4,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":38.099999999999994,\"y\":38.099999999999994,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":3,\"source_line\":7,\"start\":{\"x\":25.4,\"y\":25.4,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":25.4,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":25.4,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":4,\"source_line\":8,\"start\":{\"x\":25.4,\"y\":25.4,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":25.4,\"z\":2.54},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":5,\"source_line\":9,\"start\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":2.54},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":6,\"source_line\":10,\"start\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":44.449999999999996,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":7,\"source_line\":11,\"start\":{\"x\":35.559999999999995,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":30.479999999999997,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":31.75,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":8,\"source_line\":12,\"start\":{\"x\":30.479999999999997,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":30.479999999999997,\"y\":38.099999999999994,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":9,\"source_line\":13,\"start\":{\"x\":25.4,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":31.75,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":10,\"source_line\":14,\"start\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":11,\"source_line\":15,\"start\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":44.449999999999996,\"z\":2.54},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":12,\"source_line\":16,\"start\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":2.54,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":2.54},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":13,\"source_line\":17,\"start\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":40.64,\"y\":44.449999999999996,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":14,\"source_line\":18,\"start\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":50.8,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":15,\"source_line\":19,\"start\":{\"x\":50.8,\"y\":44.449999999999996,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":50.8,\"y\":44.449999999999996,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":16,\"source_line\":20,\"start\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":45.72,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":45.72,\"y\":38.099999999999994,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":17,\"source_line\":21,\"start\":{\"x\":45.72,\"y\":31.75,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":45.72,\"y\":31.75,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":18,\"source_line\":22,\"start\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":0,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":0,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":19,\"source_line\":23,\"start\":{\"x\":25.4,\"y\":0,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":0,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":38.099999999999994,\"y\":0,\"z\":38.099999999999994},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":20,\"source_line\":24,\"start\":{\"x\":25.4,\"y\":0,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":2.54,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":0,\"z\":25.4},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":21,\"source_line\":25,\"start\":{\"x\":25.4,\"y\":2.54,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":2.54,\"z\":25.4},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":22,\"source_line\":26,\"start\":{\"x\":25.4,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":2.54,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":23,\"source_line\":27,\"start\":{\"x\":25.4,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":0,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":24,\"source_line\":28,\"start\":{\"x\":35.559999999999995,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":30.479999999999997,\"y\":0,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":0,\"z\":31.75},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":25,\"source_line\":29,\"start\":{\"x\":30.479999999999997,\"y\":0,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":25.4,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":30.479999999999997,\"y\":0,\"z\":38.099999999999994},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":26,\"source_line\":30,\"start\":{\"x\":25.4,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":25.4,\"y\":0,\"z\":31.75},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":27,\"source_line\":31,\"start\":{\"x\":35.559999999999995,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":35.559999999999995,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":0,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":28,\"source_line\":32,\"start\":{\"x\":35.559999999999995,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":40.64,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":35.559999999999995,\"y\":2.54,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":29,\"source_line\":33,\"start\":{\"x\":40.64,\"y\":2.54,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":40.64,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":40.64,\"y\":2.54,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":30,\"source_line\":34,\"start\":{\"x\":40.64,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":50.8,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":40.64,\"y\":0,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":31,\"source_line\":35,\"start\":{\"x\":50.8,\"y\":0,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":40.64,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":50.8,\"y\":0,\"z\":44.449999999999996},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":32,\"source_line\":36,\"start\":{\"x\":40.64,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":50.8,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":40.64,\"y\":0,\"z\":31.75},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":33,\"source_line\":37,\"start\":{\"x\":50.8,\"y\":0,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":50.8,\"y\":0,\"z\":31.75},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":34,\"source_line\":38,\"start\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":0,\"z\":0},\"normal\":{\"x\":0,\"y\":1,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":35,\"source_line\":39,\"start\":{\"x\":0,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":38.099999999999994,\"z\":38.099999999999994},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":36,\"source_line\":40,\"start\":{\"x\":0,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":2.54,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":25.4,\"z\":25.4},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":37,\"source_line\":41,\"start\":{\"x\":2.54,\"y\":25.4,\"z\":25.4,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":2.54,\"y\":25.4,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":2.54,\"y\":25.4,\"z\":25.4},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":38,\"source_line\":42,\"start\":{\"x\":2.54,\"y\":25.4,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":25.4,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":2.54,\"y\":25.4,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":39,\"source_line\":43,\"start\":{\"x\":0,\"y\":25.4,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":25.4,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":40,\"source_line\":44,\"start\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":35.559999999999995,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":41,\"source_line\":45,\"start\":{\"x\":0,\"y\":35.559999999999995,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":35.559999999999995,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":42,\"source_line\":46,\"start\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":30.479999999999997,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":30.479999999999997,\"z\":38.099999999999994},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":43,\"source_line\":47,\"start\":{\"x\":0,\"y\":30.479999999999997,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":2.54,\"y\":30.479999999999997,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":30.479999999999997,\"z\":31.75},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":44,\"source_line\":48,\"start\":{\"x\":2.54,\"y\":30.479999999999997,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":2.54,\"y\":40.64,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":2.54,\"y\":30.479999999999997,\"z\":31.75},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":45,\"source_line\":49,\"start\":{\"x\":2.54,\"y\":40.64,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":40.64,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":2.54,\"y\":40.64,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":46,\"source_line\":50,\"start\":{\"x\":0,\"y\":40.64,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":50.8,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":40.64,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":47,\"source_line\":51,\"start\":{\"x\":0,\"y\":50.8,\"z\":44.449999999999996,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":40.64,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":50.8,\"z\":44.449999999999996},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":48,\"source_line\":52,\"start\":{\"x\":0,\"y\":40.64,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":50.8,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":40.64,\"z\":31.75},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"},{\"id\":49,\"source_line\":53,\"start\":{\"x\":0,\"y\":50.8,\"z\":31.75,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":0,\"y\":50.8,\"z\":31.75},\"normal\":{\"x\":1,\"y\":0,\"z\":0},\"velocity\":762,\"acceleration\":0,\"motion_type\":1,\"turn\":1,\"source\":\"wasm_interpreter_canonical_motion\"}],\"active_segment_id\":0,\"source\":\"wasm_canonical_motion\"},\"authoritative\":{\"schema\":\"sim_authoritative_runtime.v1\",\"tick\":0,\"status\":\"idle\",\"program_status\":\"idle\",\"kinematics\":{\"type\":\"trivkins\",\"joint_count\":3,\"pose\":{\"x\":0,\"y\":0,\"z\":0},\"joints\":[0,0,0],\"status\":0,\"blocked\":null},\"planner\":{\"next_id\":1,\"queue\":[],\"active\":null,\"active_id\":null,\"progress\":0,\"queue_depth\":0,\"last_error\":0},\"state_hash\":\"fnv1a64:4e24908a983412f4\"},\"motion_authority\":\"wasm\",\"task_authority\":\"wasm_task_canonical\",\"state_hash\":\"fnv1a64:0ef93407e9093297\"},\"motion_authority\":\"wasm\",\"task_authority\":\"wasm_task_canonical\",\"wasm_home_limit\":{\"status\":\"verified\",\"state\":{\"schema\":\"sim_home_limit_state.v1\",\"source\":\"wasm_home_limit\",\"pose\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"joints\":[0,0,0],\"joint_count\":3,\"homed\":false,\"home_sequence\":0,\"tick\":0,\"last_error\":0,\"limit_error\":0,\"kinematics_error\":0}},\"axis_state\":{\"state\":\"ESTOP\",\"machine_state\":\"ESTOP\",\"operation_state\":\"IDLE\",\"source_task_state\":\"STATE_ESTOP\",\"source_interp_state\":\"INTERP_IDLE\",\"source_mode\":\"MANUAL\",\"states\":[\"ESTOP\",\"ESTOP_RESET\",\"OFF\",\"ON\",\"HOME\",\"IDLE\",\"RUNNING\",\"PAUSED\"]}}", "footer": "Error: sim_io_estop", "href": "http://127.0.0.1:5175/", "label": "estop", "machine_state": "Machine ESTOP", "operation_state": "Operation IDLE", "position": "X0.000 Y0.000 Z0.000", "program_status": "loaded", "ready_state": "complete", "root_html": "