{ "generatedAt": "2026-07-03T20:22:18.142Z", "targetIntervalMs": 50, "runtimeErrors": [], "frameCount": 71, "samples": [ { "wallClock": "2026-07-03T20:22:08.922Z", "perfNow": 1514.1000000014901, "runState": "idle", "mode": "manual", "interpState": "idle", "activeLine": 16, "programElapsedSeconds": 0, "programRemainingSeconds": 0, "motionIndex": 0, "sampleIndex": 0, "programSourceMode": "linuxcnc-interpreter-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 0, "message": "LinuxCNC machine-file remap run starting", "task": { "state": "ON", "mode": "MANUAL", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 3, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 3, "executableLineCount": 2, "nextProgramLine": 0 }, "ui": { "taskState": "on", "taskMode": "manual", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 30, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 1, "motionProgramLine": 1, "halProgramLine": 1, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 3600 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 0, "motionIndex": 0, "line": 16, "motionProgramLine": 1, "halProgramLine": 1, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 43, "y": -32.15, "z": -11.306, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 3600, "requestedVelocityMmPerMin": 3600, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 30, "taskCycle": 3, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 43, "y": -32.15, "z": -11.306 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "idle", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 0, "sampleCount": 1300, "executedSampleCount": 1, "timeMs": 0, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 16, "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "operation": "rapid-machine-reset", "executionIndex": 2, "gcodeStepIndex": 16, "segmentIndex": 0, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 43, "y": -32.15, "z": -11.306, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 43, "y": -32.15, "z": -11.306 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 43, "y": -32.15, "z": -11.306, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 43, "y": -32.15, "z": -11.306, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0.043,\"y\":-0.032,\"z\":-0.011}", "tcpPose": "{\"x\":43,\"y\":-32.15,\"z\":-11.306,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0000.png", "captureStartedMs": 1783110128919, "captureDurationMs": 108, "intervalSincePreviousMs": null }, { "wallClock": "2026-07-03T20:22:09.073Z", "perfNow": 1664.9000000022352, "runState": "idle", "mode": "auto", "interpState": "idle", "activeLine": 16, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 0, "sampleIndex": 0, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-machine-file-remap-wasm", "motionCount": 29, "message": "LinuxCNC task/HAL command running", "task": { "state": "ON", "mode": "MANUAL", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 3, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 3, "executableLineCount": 2, "nextProgramLine": 0 }, "ui": { "taskState": "on", "taskMode": "manual", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 30, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 1, "motionProgramLine": 1, "halProgramLine": 1, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 3600 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-tp-runtime-sample", "semanticBoundary": "linuxcnc_tp_run_cycle_feedback_without_hardware", "sampleIndex": 0, "motionIndex": 0, "line": 16, "type": "STRAIGHT_TRAVERSE", "linearUnits": "mm", "timeSeconds": 0.001, "axisPose": { "x": 0, "y": 0, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 30, "requestedVelocityMmPerMin": 2100, "distanceToGo": 9.99975, "dtg": { "x": 0, "y": 0, "z": 9.99975 }, "queueDepth": 29, "activeDepth": 1, "cycle": 1, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 0, "y": 0, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "idle", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 0, "sampleCount": 1300, "executedSampleCount": 1, "timeMs": 0, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 16, "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "operation": "rapid-machine-reset", "executionIndex": 2, "gcodeStepIndex": 16, "segmentIndex": 0, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 10, "b": 0, "c": 0 }, "tcp": { "x": 0, "y": 0, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 0, "y": 0, "z": -74.019, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0,\"y\":0,\"z\":0.01}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":-74.019,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0001.png", "captureStartedMs": 1783110129027, "captureDurationMs": 195, "intervalSincePreviousMs": 108 }, { "wallClock": "2026-07-03T20:22:09.227Z", "perfNow": 1818.6000000014901, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 16, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 0, "sampleIndex": 0, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 2", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 18, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 16 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 180, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 16, "motionProgramLine": 16, "halProgramLine": 16, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 4.21348, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 0, "motionIndex": 15, "line": 16, "motionProgramLine": 16, "halProgramLine": 16, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 4.21348, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 180, "taskCycle": 18, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 0, "y": 0, "z": 2.80899 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 0, "sampleCount": 1300, "executedSampleCount": 1, "timeMs": 0, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 16, "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "operation": "rapid-machine-reset", "executionIndex": 2, "gcodeStepIndex": 16, "segmentIndex": 0, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 4.21348, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 0, "y": 0, "z": 2.80899 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 4.21348, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 0, "y": 0, "z": 4.21348, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0,\"y\":0,\"z\":0.003}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":4.213,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0002.png", "captureStartedMs": 1783110129222, "captureDurationMs": 104, "intervalSincePreviousMs": 195 }, { "wallClock": "2026-07-03T20:22:09.336Z", "perfNow": 1928.1000000014901, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 16, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 0, "sampleIndex": 0, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 5", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 33, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 16 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 330, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 16, "motionProgramLine": 16, "halProgramLine": 16, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.42697, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 0, "motionIndex": 15, "line": 16, "motionProgramLine": 16, "halProgramLine": 16, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.42697, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 330, "taskCycle": 33, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 0, "y": 0, "z": 7.02247 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 0, "sampleCount": 1300, "executedSampleCount": 1, "timeMs": 0, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 16, "statement": "g53 g0 x0y0 z# b0 c0 ; quadrant I", "operation": "rapid-machine-reset", "executionIndex": 2, "gcodeStepIndex": 16, "segmentIndex": 0, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.42697, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 0, "y": 0, "z": 7.02247 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 8.42697, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 0, "y": 0, "z": 8.42697, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0,\"y\":0,\"z\":0.007}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":8.427,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0003.png", "captureStartedMs": 1783110129326, "captureDurationMs": 129, "intervalSincePreviousMs": 104 }, { "wallClock": "2026-07-03T20:22:09.471Z", "perfNow": 2062.7000000029802, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 9", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 53, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 18 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 530, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 11.3766, "y": 11.3766, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 11.3766, "y": 11.3766, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 530, "taskCycle": 53, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 10.2389, "y": 10.2389, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 11.3766, "y": 11.3766, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 10.2389, "y": 10.2389, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 11.3766, "y": 11.3766, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 11.3766, "y": 11.3766, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0.01,\"y\":0.01,\"z\":0.01}", "tcpPose": "{\"x\":11.377,\"y\":11.377,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0004.png", "captureStartedMs": 1783110129455, "captureDurationMs": 154, "intervalSincePreviousMs": 129 }, { "wallClock": "2026-07-03T20:22:09.610Z", "perfNow": 2201.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 12", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 68, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 18 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 14.7895, "y": 14.7895, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 14.7895, "y": 14.7895, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 680, "taskCycle": 68, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 13.6519, "y": 13.6519, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 14.7895, "y": 14.7895, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 13.6519, "y": 13.6519, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 14.7895, "y": 14.7895, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 14.7895, "y": 14.7895, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0.014,\"y\":0.014,\"z\":0.01}", "tcpPose": "{\"x\":14.79,\"y\":14.79,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0005.png", "captureStartedMs": 1783110129609, "captureDurationMs": 112, "intervalSincePreviousMs": 154 }, { "wallClock": "2026-07-03T20:22:09.727Z", "perfNow": 2319.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 15", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 83, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 18 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 18.2025, "y": 18.2025, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 18, "halProgramLine": 18, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 18.2025, "y": 18.2025, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 830, "taskCycle": 83, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": 17.0648, "y": 17.0648, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 18.2025, "y": 18.2025, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": 17.0648, "y": 17.0648, "z": 10 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 18.2025, "y": 18.2025, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": 18.2025, "y": 18.2025, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":0.017,\"y\":0.017,\"z\":0.01}", "tcpPose": "{\"x\":18.203,\"y\":18.203,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0006.png", "captureStartedMs": 1783110129721, "captureDurationMs": 136, "intervalSincePreviousMs": 112 }, { "wallClock": "2026-07-03T20:22:09.867Z", "perfNow": 2459.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 19", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 103, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.55939, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.55939, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1030, "taskCycle": 103, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.317216245730563, "y": 2.3172162457305627, "z": 9.003589670650518 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.55939, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.317216245730563, "y": 2.3172162457305627, "z": 9.003589670650518 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.3118884056094284, "y": 2.311888405609428, "z": 8.982888242214605, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.3118884056094284, "y": 2.311888405609428, "z": 8.982888242214605, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.312,\"y\":2.312,\"z\":8.983,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0007.png", "captureStartedMs": 1783110129857, "captureDurationMs": 123, "intervalSincePreviousMs": 136 }, { "wallClock": "2026-07-03T20:22:09.984Z", "perfNow": 2576.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 22", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 118, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1180, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.4933, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.4933, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1180, "taskCycle": 118, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.3012327253671585, "y": 2.301232725367158, "z": 8.941485385342778 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.4933, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.3012327253671585, "y": 2.301232725367158, "z": 8.941485385342778 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.2959048852460238, "y": 2.295904885246023, "z": 8.920783956906865, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.2959048852460238, "y": 2.295904885246023, "z": 8.920783956906865, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.296,\"y\":2.296,\"z\":8.921,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0008.png", "captureStartedMs": 1783110129980, "captureDurationMs": 128, "intervalSincePreviousMs": 123 }, { "wallClock": "2026-07-03T20:22:10.118Z", "perfNow": 2710.2000000029802, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 26", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.40518, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.40518, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1380, "taskCycle": 138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.279921364882619, "y": 2.2799213648826187, "z": 8.858679671599125 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.40518, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.279921364882619, "y": 2.2799213648826187, "z": 8.858679671599125 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 9.40518, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 9.40518, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":9.405,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0009.png", "captureStartedMs": 1783110130108, "captureDurationMs": 128, "intervalSincePreviousMs": 128 }, { "wallClock": "2026-07-03T20:22:10.246Z", "perfNow": 2838.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 29", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 153, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1530, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.33909, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.33909, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1530, "taskCycle": 153, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.2639378445192144, "y": 2.2639378445192135, "z": 8.796575386291384 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.33909, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.2639378445192144, "y": 2.2639378445192135, "z": 8.796575386291384 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.2586100043980797, "y": 2.2586100043980792, "z": 8.77587395785547, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.2586100043980797, "y": 2.2586100043980792, "z": 8.77587395785547, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.259,\"y\":2.259,\"z\":8.776,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0010.png", "captureStartedMs": 1783110130236, "captureDurationMs": 134, "intervalSincePreviousMs": 128 }, { "wallClock": "2026-07-03T20:22:10.377Z", "perfNow": 2969.2000000029802, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 32", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 168, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.273, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.273, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1680, "taskCycle": 168, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.2479543241558098, "y": 2.2479543241558093, "z": 8.734471100983644 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.273, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.2479543241558098, "y": 2.2479543241558093, "z": 8.734471100983644 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.2426264840346746, "y": 2.242626484034674, "z": 8.713769672547729, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.2426264840346746, "y": 2.242626484034674, "z": 8.713769672547729, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.243,\"y\":2.243,\"z\":8.714,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0011.png", "captureStartedMs": 1783110130370, "captureDurationMs": 143, "intervalSincePreviousMs": 134 }, { "wallClock": "2026-07-03T20:22:10.524Z", "perfNow": 3115.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 36", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 188, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 1880, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.18488, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.18488, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 1880, "taskCycle": 188, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.2266429636712703, "y": 2.2266429636712695, "z": 8.651665387239989 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.18488, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.2266429636712703, "y": 2.2266429636712695, "z": 8.651665387239989 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.221315123550135, "y": 2.2213151235501347, "z": 8.630963958804074, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.221315123550135, "y": 2.2213151235501347, "z": 8.630963958804074, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.221,\"y\":2.221,\"z\":8.631,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0012.png", "captureStartedMs": 1783110130513, "captureDurationMs": 132, "intervalSincePreviousMs": 143 }, { "wallClock": "2026-07-03T20:22:10.649Z", "perfNow": 3241, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 39", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 203, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.11879, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.11879, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2030, "taskCycle": 203, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.2106594433078652, "y": 2.210659443307865, "z": 8.589561101932247 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.11879, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.2106594433078652, "y": 2.210659443307865, "z": 8.589561101932247 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.2053316031867305, "y": 2.20533160318673, "z": 8.568859673496334, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.2053316031867305, "y": 2.20533160318673, "z": 8.568859673496334, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.205,\"y\":2.205,\"z\":8.569,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0013.png", "captureStartedMs": 1783110130645, "captureDurationMs": 158, "intervalSincePreviousMs": 132 }, { "wallClock": "2026-07-03T20:22:10.807Z", "perfNow": 3398.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 43", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 223, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2230, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 9.03067, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 9.03067, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2230, "taskCycle": 223, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.189348082823326, "y": 2.1893480828233254, "z": 8.506755388188592 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 9.03067, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.189348082823326, "y": 2.1893480828233254, "z": 8.506755388188592 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.184020242702191, "y": 2.1840202427021906, "z": 8.486053959752681, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.184020242702191, "y": 2.1840202427021906, "z": 8.486053959752681, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.009}", "tcpPose": "{\"x\":-2.184,\"y\":2.184,\"z\":8.486,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0014.png", "captureStartedMs": 1783110130803, "captureDurationMs": 125, "intervalSincePreviousMs": 158 }, { "wallClock": "2026-07-03T20:22:10.939Z", "perfNow": 3531.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 47", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 243, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2430, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.94254, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.94254, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2430, "taskCycle": 243, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.168036722338786, "y": 2.1680367223387855, "z": 8.42394967444494 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.94254, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.168036722338786, "y": 2.1680367223387855, "z": 8.42394967444494 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 8.94254, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 8.94254, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":8.943,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0015.png", "captureStartedMs": 1783110130928, "captureDurationMs": 91, "intervalSincePreviousMs": 125 }, { "wallClock": "2026-07-03T20:22:11.030Z", "perfNow": 3622.2000000029802, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 49", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 253, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2530, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.89848, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.89848, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2530, "taskCycle": 253, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.15737862364889, "y": 2.1573786236488894, "z": 8.382537420646905 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.89848, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.15737862364889, "y": 2.1573786236488894, "z": 8.382537420646905 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 8.89848, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 8.89848, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":8.898,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0016.png", "captureStartedMs": 1783110131019, "captureDurationMs": 135, "intervalSincePreviousMs": 91 }, { "wallClock": "2026-07-03T20:22:11.159Z", "perfNow": 3751, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 52", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 268, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.83239, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.83239, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2680, "taskCycle": 268, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.141395103285485, "y": 2.1413951032854848, "z": 8.320433135339163 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.83239, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.141395103285485, "y": 2.1413951032854848, "z": 8.320433135339163 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.1360672631643505, "y": 2.13606726316435, "z": 8.29973170690325, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.1360672631643505, "y": 2.13606726316435, "z": 8.29973170690325, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.136,\"y\":2.136,\"z\":8.3,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0017.png", "captureStartedMs": 1783110131154, "captureDurationMs": 110, "intervalSincePreviousMs": 135 }, { "wallClock": "2026-07-03T20:22:11.270Z", "perfNow": 3862.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 55", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 283, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 2830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.7663, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.7663, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 2830, "taskCycle": 283, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.1254115829220805, "y": 2.12541158292208, "z": 8.258328850031424 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.7663, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.1254115829220805, "y": 2.12541158292208, "z": 8.258328850031424 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.1200837428009454, "y": 2.120083742800945, "z": 8.237627421595509, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.1200837428009454, "y": 2.120083742800945, "z": 8.237627421595509, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.12,\"y\":2.12,\"z\":8.238,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0018.png", "captureStartedMs": 1783110131264, "captureDurationMs": 153, "intervalSincePreviousMs": 110 }, { "wallClock": "2026-07-03T20:22:11.422Z", "perfNow": 4013.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 59", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 303, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.67818, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.67818, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3030, "taskCycle": 303, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.104100222437541, "y": 2.1041002224375407, "z": 8.175523136287769 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.67818, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.104100222437541, "y": 2.1041002224375407, "z": 8.175523136287769 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.098772382316406, "y": 2.0987723823164055, "z": 8.154821707851854, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.098772382316406, "y": 2.0987723823164055, "z": 8.154821707851854, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.099,\"y\":2.099,\"z\":8.155,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0019.png", "captureStartedMs": 1783110131417, "captureDurationMs": 114, "intervalSincePreviousMs": 153 }, { "wallClock": "2026-07-03T20:22:11.536Z", "perfNow": 4128.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 62", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 318, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3180, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.61209, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.61209, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3180, "taskCycle": 318, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.088116702074136, "y": 2.0881167020741356, "z": 8.113418850980027 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.61209, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.088116702074136, "y": 2.0881167020741356, "z": 8.113418850980027 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.0827888619530013, "y": 2.082788861953001, "z": 8.092717422544114, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.0827888619530013, "y": 2.082788861953001, "z": 8.092717422544114, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.083,\"y\":2.083,\"z\":8.093,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0020.png", "captureStartedMs": 1783110131531, "captureDurationMs": 126, "intervalSincePreviousMs": 114 }, { "wallClock": "2026-07-03T20:22:11.675Z", "perfNow": 4266.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 66", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 338, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.52397, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.52397, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3380, "taskCycle": 338, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.0668053415895966, "y": 2.066805341589596, "z": 8.030613137236372 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.52397, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.0668053415895966, "y": 2.066805341589596, "z": 8.030613137236372 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 8.52397, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 8.52397, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":8.524,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0021.png", "captureStartedMs": 1783110131657, "captureDurationMs": 137, "intervalSincePreviousMs": 126 }, { "wallClock": "2026-07-03T20:22:11.804Z", "perfNow": 4396.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 69", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 353, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3530, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.45788, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.45788, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3530, "taskCycle": 353, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.050821821226192, "y": 2.0508218212261915, "z": 7.968508851928633 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.45788, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.050821821226192, "y": 2.0508218212261915, "z": 7.968508851928633 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.0454939811050568, "y": 2.0454939811050563, "z": 7.947807423492718, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.0454939811050568, "y": 2.0454939811050563, "z": 7.947807423492718, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.045,\"y\":2.045,\"z\":7.948,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0022.png", "captureStartedMs": 1783110131794, "captureDurationMs": 150, "intervalSincePreviousMs": 137 }, { "wallClock": "2026-07-03T20:22:11.958Z", "perfNow": 4550.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 73", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 373, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3730, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.36976, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.36976, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3730, "taskCycle": 373, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.0295104607416525, "y": 2.029510460741652, "z": 7.8857031381849785 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.36976, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.0295104607416525, "y": 2.029510460741652, "z": 7.8857031381849785 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.0241826206205173, "y": 2.024182620620517, "z": 7.865001709749064, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.0241826206205173, "y": 2.024182620620517, "z": 7.865001709749064, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.024,\"y\":2.024,\"z\":7.865,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0023.png", "captureStartedMs": 1783110131944, "captureDurationMs": 143, "intervalSincePreviousMs": 150 }, { "wallClock": "2026-07-03T20:22:12.091Z", "perfNow": 4683.60000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 76", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 388, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 3880, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.30367, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.30367, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 3880, "taskCycle": 388, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -2.0135269403782474, "y": 2.013526940378247, "z": 7.823598852877237 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.30367, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -2.0135269403782474, "y": 2.013526940378247, "z": 7.823598852877237 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -2.008199100257113, "y": 2.0081991002571127, "z": 7.8028974244413245, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -2.008199100257113, "y": 2.0081991002571127, "z": 7.8028974244413245, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-2.008,\"y\":2.008,\"z\":7.803,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0024.png", "captureStartedMs": 1783110132087, "captureDurationMs": 145, "intervalSincePreviousMs": 143 }, { "wallClock": "2026-07-03T20:22:12.241Z", "perfNow": 4833.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 80", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 408, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4080, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.21554, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.21554, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4080, "taskCycle": 408, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.9922131614460816, "y": 1.9922131614460812, "z": 7.740783742207376 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.21554, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.9922131614460816, "y": 1.9922131614460812, "z": 7.740783742207376 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.9868853213249469, "y": 1.9868853213249464, "z": 7.720082313771463, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.9868853213249469, "y": 1.9868853213249464, "z": 7.720082313771463, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-1.987,\"y\":1.987,\"z\":7.72,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0025.png", "captureStartedMs": 1783110132232, "captureDurationMs": 118, "intervalSincePreviousMs": 145 }, { "wallClock": "2026-07-03T20:22:12.355Z", "perfNow": 4946.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 83", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 423, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4230, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.14945, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.14945, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4230, "taskCycle": 423, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.9762296410826772, "y": 1.9762296410826767, "z": 7.678679456899635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.14945, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.9762296410826772, "y": 1.9762296410826767, "z": 7.678679456899635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.970901800961542, "y": 1.9709018009615416, "z": 7.657978028463721, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.970901800961542, "y": 1.9709018009615416, "z": 7.657978028463721, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":-1.971,\"y\":1.971,\"z\":7.658,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0026.png", "captureStartedMs": 1783110132350, "captureDurationMs": 146, "intervalSincePreviousMs": 118 }, { "wallClock": "2026-07-03T20:22:12.521Z", "perfNow": 5112.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 87", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 443, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4430, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 8.06133, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 8.06133, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4430, "taskCycle": 443, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.9549182805981375, "y": 1.954918280598137, "z": 7.595873743155981 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 8.06133, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.9549182805981375, "y": 1.954918280598137, "z": 7.595873743155981 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 8.06133, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 8.06133, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":8.061,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0027.png", "captureStartedMs": 1783110132496, "captureDurationMs": 153, "intervalSincePreviousMs": 146 }, { "wallClock": "2026-07-03T20:22:12.665Z", "perfNow": 5257.20000000298, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 91", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 463, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4630, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.97321, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.97321, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4630, "taskCycle": 463, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.933606920113598, "y": 1.9336069201135975, "z": 7.513068029412326 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.97321, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.933606920113598, "y": 1.9336069201135975, "z": 7.513068029412326 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 7.97321, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 7.97321, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.008}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":7.973,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0028.png", "captureStartedMs": 1783110132649, "captureDurationMs": 167, "intervalSincePreviousMs": 153 }, { "wallClock": "2026-07-03T20:22:12.824Z", "perfNow": 5416.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 95", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 483, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.88509, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.88509, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4830, "taskCycle": 483, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.9122955596290583, "y": 1.9122955596290578, "z": 7.4302623156686725 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.88509, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.9122955596290583, "y": 1.9122955596290578, "z": 7.4302623156686725 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.9069677195079233, "y": 1.9069677195079229, "z": 7.409560887232758, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.9069677195079233, "y": 1.9069677195079229, "z": 7.409560887232758, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.907,\"y\":1.907,\"z\":7.41,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0029.png", "captureStartedMs": 1783110132816, "captureDurationMs": 111, "intervalSincePreviousMs": 167 }, { "wallClock": "2026-07-03T20:22:12.934Z", "perfNow": 5525.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 98", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 498, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 4980, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.819, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.819, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 4980, "taskCycle": 498, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.8963120392656536, "y": 1.8963120392656532, "z": 7.368158030360932 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.819, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.8963120392656536, "y": 1.8963120392656532, "z": 7.368158030360932 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.8909841991445187, "y": 1.8909841991445182, "z": 7.347456601925018, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.8909841991445187, "y": 1.8909841991445182, "z": 7.347456601925018, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.891,\"y\":1.891,\"z\":7.347,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0030.png", "captureStartedMs": 1783110132927, "captureDurationMs": 122, "intervalSincePreviousMs": 111 }, { "wallClock": "2026-07-03T20:22:13.053Z", "perfNow": 5645.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 101", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 513, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 5130, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.75291, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.75291, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 5130, "taskCycle": 513, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.880328518902249, "y": 1.8803285189022485, "z": 7.306053745053191 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.75291, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.880328518902249, "y": 1.8803285189022485, "z": 7.306053745053191 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.875000678781114, "y": 1.8750006787811135, "z": 7.285352316617277, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.875000678781114, "y": 1.8750006787811135, "z": 7.285352316617277, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.875,\"y\":1.875,\"z\":7.285,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0031.png", "captureStartedMs": 1783110133049, "captureDurationMs": 134, "intervalSincePreviousMs": 122 }, { "wallClock": "2026-07-03T20:22:13.194Z", "perfNow": 5786.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 105", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 533, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 5330, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.66479, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.66479, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 5330, "taskCycle": 533, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.8590171584177093, "y": 1.8590171584177089, "z": 7.223248031309536 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.66479, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.8590171584177093, "y": 1.8590171584177089, "z": 7.223248031309536 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.8536893182965744, "y": 1.853689318296574, "z": 7.202546602873623, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.8536893182965744, "y": 1.853689318296574, "z": 7.202546602873623, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.854,\"y\":1.854,\"z\":7.203,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0032.png", "captureStartedMs": 1783110133184, "captureDurationMs": 116, "intervalSincePreviousMs": 135 }, { "wallClock": "2026-07-03T20:22:13.316Z", "perfNow": 5908.60000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 108", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 548, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 5480, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.5987, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.5987, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 5480, "taskCycle": 548, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.8430336380543046, "y": 1.8430336380543042, "z": 7.161143746001796 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.5987, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.8430336380543046, "y": 1.8430336380543042, "z": 7.161143746001796 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.8377057979331697, "y": 1.8377057979331692, "z": 7.140442317565882, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.8377057979331697, "y": 1.8377057979331692, "z": 7.140442317565882, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.838,\"y\":1.838,\"z\":7.14,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0033.png", "captureStartedMs": 1783110133300, "captureDurationMs": 152, "intervalSincePreviousMs": 116 }, { "wallClock": "2026-07-03T20:22:13.468Z", "perfNow": 6060.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 112", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 568, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 5680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.51057, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.51057, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 5680, "taskCycle": 568, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.8217198591221386, "y": 1.8217198591221382, "z": 7.078328635331935 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.51057, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.8217198591221386, "y": 1.8217198591221382, "z": 7.078328635331935 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 7.51057, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 7.51057, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":7.511,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0034.png", "captureStartedMs": 1783110133452, "captureDurationMs": 125, "intervalSincePreviousMs": 152 }, { "wallClock": "2026-07-03T20:22:13.588Z", "perfNow": 6180.20000000298, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 115", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 583, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 5830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.44448, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.44448, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 5830, "taskCycle": 583, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.805736338758734, "y": 1.8057363387587335, "z": 7.016224350024194 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.44448, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.805736338758734, "y": 1.8057363387587335, "z": 7.016224350024194 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.800408498637599, "y": 1.8004084986375988, "z": 6.99552292158828, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.800408498637599, "y": 1.8004084986375988, "z": 6.99552292158828, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.8,\"y\":1.8,\"z\":6.996,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0035.png", "captureStartedMs": 1783110133577, "captureDurationMs": 159, "intervalSincePreviousMs": 125 }, { "wallClock": "2026-07-03T20:22:13.750Z", "perfNow": 6342.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 119", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 603, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.35636, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.35636, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6030, "taskCycle": 603, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.784424978274194, "y": 1.7844249782741939, "z": 6.933418636280538 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.35636, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.784424978274194, "y": 1.7844249782741939, "z": 6.933418636280538 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.7790971381530594, "y": 1.779097138153059, "z": 6.912717207844625, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.7790971381530594, "y": 1.779097138153059, "z": 6.912717207844625, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.779,\"y\":1.779,\"z\":6.913,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0036.png", "captureStartedMs": 1783110133736, "captureDurationMs": 166, "intervalSincePreviousMs": 159 }, { "wallClock": "2026-07-03T20:22:13.918Z", "perfNow": 6510.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 124", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 628, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6280, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.24621, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.24621, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6280, "taskCycle": 628, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.7577857776685197, "y": 1.7577857776685193, "z": 6.829911494100971 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.24621, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.7577857776685197, "y": 1.7577857776685193, "z": 6.829911494100971 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 7.24621, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 7.24621, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":7.246,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0037.png", "captureStartedMs": 1783110133902, "captureDurationMs": 149, "intervalSincePreviousMs": 166 }, { "wallClock": "2026-07-03T20:22:14.067Z", "perfNow": 6659.20000000298, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 128", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 648, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6480, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.15809, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.15809, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6480, "taskCycle": 648, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.73647441718398, "y": 1.7364744171839797, "z": 6.747105780357317 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.15809, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.73647441718398, "y": 1.7364744171839797, "z": 6.747105780357317 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 7.15809, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 7.15809, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":7.158,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0038.png", "captureStartedMs": 1783110134051, "captureDurationMs": 131, "intervalSincePreviousMs": 149 }, { "wallClock": "2026-07-03T20:22:14.188Z", "perfNow": 6779.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 131", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 663, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6630, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.092, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.092, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6630, "taskCycle": 663, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.7204908968205754, "y": 1.720490896820575, "z": 6.685001495049576 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.092, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.7204908968205754, "y": 1.720490896820575, "z": 6.685001495049576 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.7151630566994405, "y": 1.7151630566994402, "z": 6.664300066613662, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.7151630566994405, "y": 1.7151630566994402, "z": 6.664300066613662, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.715,\"y\":1.715,\"z\":6.664,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0039.png", "captureStartedMs": 1783110134182, "captureDurationMs": 150, "intervalSincePreviousMs": 131 }, { "wallClock": "2026-07-03T20:22:14.340Z", "perfNow": 6932.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 135", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 683, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 7.00388, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 7.00388, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6830, "taskCycle": 683, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6991795363360358, "y": 1.6991795363360356, "z": 6.602195781305921 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 7.00388, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6991795363360358, "y": 1.6991795363360356, "z": 6.602195781305921 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.693851696214901, "y": 1.6938516962149006, "z": 6.581494352870008, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.693851696214901, "y": 1.6938516962149006, "z": 6.581494352870008, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.694,\"y\":1.694,\"z\":6.581,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0040.png", "captureStartedMs": 1783110134332, "captureDurationMs": 127, "intervalSincePreviousMs": 150 }, { "wallClock": "2026-07-03T20:22:14.460Z", "perfNow": 7052.60000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 138", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 698, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 6980, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.93779, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.93779, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 6980, "taskCycle": 698, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6831960159726311, "y": 1.683196015972631, "z": 6.540091495998181 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.93779, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6831960159726311, "y": 1.683196015972631, "z": 6.540091495998181 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.6778681758514964, "y": 1.677868175851496, "z": 6.519390067562267, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.6778681758514964, "y": 1.677868175851496, "z": 6.519390067562267, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.007}", "tcpPose": "{\"x\":-1.678,\"y\":1.678,\"z\":6.519,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0041.png", "captureStartedMs": 1783110134459, "captureDurationMs": 151, "intervalSincePreviousMs": 127 }, { "wallClock": "2026-07-03T20:22:14.614Z", "perfNow": 7206.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 142", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 718, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 7180, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.84967, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.84967, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 7180, "taskCycle": 718, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6618846554880917, "y": 1.6618846554880913, "z": 6.457285782254527 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.84967, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6618846554880917, "y": 1.6618846554880913, "z": 6.457285782254527 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.6565568153669568, "y": 1.6565568153669563, "z": 6.436584353818613, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.6565568153669568, "y": 1.6565568153669563, "z": 6.436584353818613, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.657,\"y\":1.657,\"z\":6.437,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0042.png", "captureStartedMs": 1783110134610, "captureDurationMs": 112, "intervalSincePreviousMs": 151 }, { "wallClock": "2026-07-03T20:22:14.723Z", "perfNow": 7315.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 145", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 733, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 7330, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.78357, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.78357, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 7330, "taskCycle": 733, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6458987166770604, "y": 1.6458987166770602, "z": 6.395172100020578 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.78357, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6458987166770604, "y": 1.6458987166770602, "z": 6.395172100020578 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.6405708765559257, "y": 1.6405708765559253, "z": 6.374470671584665, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.6405708765559257, "y": 1.6405708765559253, "z": 6.374470671584665, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.641,\"y\":1.641,\"z\":6.374,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0043.png", "captureStartedMs": 1783110134722, "captureDurationMs": 118, "intervalSincePreviousMs": 112 }, { "wallClock": "2026-07-03T20:22:14.846Z", "perfNow": 7438.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 148", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 748, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 7480, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.71748, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.71748, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 7480, "taskCycle": 748, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6299151963136558, "y": 1.6299151963136556, "z": 6.333067814712837 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.71748, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6299151963136558, "y": 1.6299151963136556, "z": 6.333067814712837 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.624587356192521, "y": 1.6245873561925206, "z": 6.312366386276924, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.624587356192521, "y": 1.6245873561925206, "z": 6.312366386276924, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.625,\"y\":1.625,\"z\":6.312,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0044.png", "captureStartedMs": 1783110134840, "captureDurationMs": 142, "intervalSincePreviousMs": 118 }, { "wallClock": "2026-07-03T20:22:14.987Z", "perfNow": 7579, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 152", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 768, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 7680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.62936, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.62936, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 7680, "taskCycle": 768, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.6086038358291164, "y": 1.608603835829116, "z": 6.250262100969183 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.62936, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.6086038358291164, "y": 1.608603835829116, "z": 6.250262100969183 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.6032759957079814, "y": 1.603275995707981, "z": 6.22956067253327, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.6032759957079814, "y": 1.603275995707981, "z": 6.22956067253327, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.603,\"y\":1.603,\"z\":6.23,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0045.png", "captureStartedMs": 1783110134982, "captureDurationMs": 129, "intervalSincePreviousMs": 142 }, { "wallClock": "2026-07-03T20:22:15.123Z", "perfNow": 7714.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 156", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 788, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 7880, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.54124, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.54124, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 7880, "taskCycle": 788, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.5872924753445767, "y": 1.5872924753445763, "z": 6.1674563872255295 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.54124, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.5872924753445767, "y": 1.5872924753445763, "z": 6.1674563872255295 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.5819646352234418, "y": 1.5819646352234416, "z": 6.146754958789616, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.5819646352234418, "y": 1.5819646352234416, "z": 6.146754958789616, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.582,\"y\":1.582,\"z\":6.147,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0046.png", "captureStartedMs": 1783110135111, "captureDurationMs": 140, "intervalSincePreviousMs": 129 }, { "wallClock": "2026-07-03T20:22:15.254Z", "perfNow": 7845.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 159", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 803, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.47515, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.47515, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8030, "taskCycle": 803, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.571308954981172, "y": 1.5713089549811716, "z": 6.105352101917789 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.47515, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.571308954981172, "y": 1.5713089549811716, "z": 6.105352101917789 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.565981114860037, "y": 1.5659811148600369, "z": 6.0846506734818755, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.565981114860037, "y": 1.5659811148600369, "z": 6.0846506734818755, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.566,\"y\":1.566,\"z\":6.085,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0047.png", "captureStartedMs": 1783110135251, "captureDurationMs": 114, "intervalSincePreviousMs": 140 }, { "wallClock": "2026-07-03T20:22:15.387Z", "perfNow": 7979.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 163", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 823, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8230, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.38703, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.38703, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8230, "taskCycle": 823, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.5499975944966324, "y": 1.5499975944966322, "z": 6.022546388174135 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.38703, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.5499975944966324, "y": 1.5499975944966322, "z": 6.022546388174135 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 6.38703, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 6.38703, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":6.387,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0048.png", "captureStartedMs": 1783110135365, "captureDurationMs": 145, "intervalSincePreviousMs": 114 }, { "wallClock": "2026-07-03T20:22:15.520Z", "perfNow": 8112.400000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 166", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 838, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.32094, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.32094, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8380, "taskCycle": 838, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.5340140741332278, "y": 1.5340140741332273, "z": 5.960442102866394 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.32094, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.5340140741332278, "y": 1.5340140741332273, "z": 5.960442102866394 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.5286862340120928, "y": 1.5286862340120926, "z": 5.93974067443048, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.5286862340120928, "y": 1.5286862340120926, "z": 5.93974067443048, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.529,\"y\":1.529,\"z\":5.94,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0049.png", "captureStartedMs": 1783110135510, "captureDurationMs": 85, "intervalSincePreviousMs": 145 }, { "wallClock": "2026-07-03T20:22:15.596Z", "perfNow": 8188.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 168", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 848, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8480, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.27688, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.27688, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8480, "taskCycle": 848, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.523358393890958, "y": 1.5233583938909576, "z": 5.919039245994567 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.27688, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.523358393890958, "y": 1.5233583938909576, "z": 5.919039245994567 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.518030553769823, "y": 1.5180305537698227, "z": 5.898337817558653, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.518030553769823, "y": 1.5180305537698227, "z": 5.898337817558653, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.518,\"y\":1.518,\"z\":5.898,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0050.png", "captureStartedMs": 1783110135595, "captureDurationMs": 132, "intervalSincePreviousMs": 85 }, { "wallClock": "2026-07-03T20:22:15.734Z", "perfNow": 8326.60000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 172", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 868, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.18876, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.18876, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8680, "taskCycle": 868, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.5020470334064184, "y": 1.502047033406418, "z": 5.836233532250913 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.18876, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.5020470334064184, "y": 1.502047033406418, "z": 5.836233532250913 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.4967191932852835, "y": 1.4967191932852832, "z": 5.8155321038149985, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.4967191932852835, "y": 1.4967191932852832, "z": 5.8155321038149985, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.002,\"y\":0.002,\"z\":0.006}", "tcpPose": "{\"x\":-1.497,\"y\":1.497,\"z\":5.816,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0051.png", "captureStartedMs": 1783110135727, "captureDurationMs": 116, "intervalSincePreviousMs": 132 }, { "wallClock": "2026-07-03T20:22:15.844Z", "perfNow": 8436.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 175", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 883, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8830, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.12266, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.12266, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8830, "taskCycle": 883, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.4860635130430138, "y": 1.4860635130430133, "z": 5.774129246943172 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.12266, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.4860635130430138, "y": 1.4860635130430133, "z": 5.774129246943172 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.4807332544742522, "y": 1.480733254474252, "z": 5.75341842158105, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.4807332544742522, "y": 1.480733254474252, "z": 5.75341842158105, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.006}", "tcpPose": "{\"x\":-1.481,\"y\":1.481,\"z\":5.753,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0052.png", "captureStartedMs": 1783110135843, "captureDurationMs": 115, "intervalSincePreviousMs": 116 }, { "wallClock": "2026-07-03T20:22:15.959Z", "perfNow": 8551.60000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 178", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 898, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 8980, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 6.05657, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 6.05657, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 8980, "taskCycle": 898, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.4700775742319825, "y": 1.470077574231982, "z": 5.712015564709223 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 6.05657, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.4700775742319825, "y": 1.470077574231982, "z": 5.712015564709223 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.4647497341108475, "y": 1.4647497341108473, "z": 5.691314136273309, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.4647497341108475, "y": 1.4647497341108473, "z": 5.691314136273309, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.006}", "tcpPose": "{\"x\":-1.465,\"y\":1.465,\"z\":5.691,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0053.png", "captureStartedMs": 1783110135958, "captureDurationMs": 145, "intervalSincePreviousMs": 115 }, { "wallClock": "2026-07-03T20:22:16.113Z", "perfNow": 8705.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 182", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 918, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 9180, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.96845, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.96845, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 9180, "taskCycle": 918, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.4487662137474429, "y": 1.4487662137474426, "z": 5.629209850965569 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.96845, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.4487662137474429, "y": 1.4487662137474426, "z": 5.629209850965569 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.443438373626308, "y": 1.4434383736263077, "z": 5.608508422529655, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.443438373626308, "y": 1.4434383736263077, "z": 5.608508422529655, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.006}", "tcpPose": "{\"x\":-1.443,\"y\":1.443,\"z\":5.609,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0054.png", "captureStartedMs": 1783110136103, "captureDurationMs": 145, "intervalSincePreviousMs": 145 }, { "wallClock": "2026-07-03T20:22:16.268Z", "perfNow": 8860.20000000298, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 186", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 938, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 9380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.88033, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.88033, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 9380, "taskCycle": 938, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.4274548532629032, "y": 1.427454853262903, "z": 5.546404137221915 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.88033, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.4274548532629032, "y": 1.427454853262903, "z": 5.546404137221915 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 5.88033, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 5.88033, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.006}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":5.88,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0055.png", "captureStartedMs": 1783110136248, "captureDurationMs": 166, "intervalSincePreviousMs": 145 }, { "wallClock": "2026-07-03T20:22:16.424Z", "perfNow": 9016.20000000298, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 190", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 958, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 9580, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.79221, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.79221, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 9580, "taskCycle": 958, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.4061434927783638, "y": 1.4061434927783634, "z": 5.46359842347826 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.79221, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.4061434927783638, "y": 1.4061434927783634, "z": 5.46359842347826 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.4008156526572288, "y": 1.4008156526572284, "z": 5.4428969950423465, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.4008156526572288, "y": 1.4008156526572284, "z": 5.4428969950423465, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.401,\"y\":1.401,\"z\":5.443,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0056.png", "captureStartedMs": 1783110136414, "captureDurationMs": 176, "intervalSincePreviousMs": 166 }, { "wallClock": "2026-07-03T20:22:16.596Z", "perfNow": 9187.800000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 194", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 978, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 9780, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.70409, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.70409, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 9780, "taskCycle": 978, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.3848321322938242, "y": 1.3848321322938237, "z": 5.380792709734606 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.70409, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.3848321322938242, "y": 1.3848321322938237, "z": 5.380792709734606 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.3795042921726892, "y": 1.379504292172689, "z": 5.3600912812986925, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.3795042921726892, "y": 1.379504292172689, "z": 5.3600912812986925, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.38,\"y\":1.38,\"z\":5.36,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0057.png", "captureStartedMs": 1783110136591, "captureDurationMs": 177, "intervalSincePreviousMs": 177 }, { "wallClock": "2026-07-03T20:22:16.777Z", "perfNow": 9369.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 199", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1003, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.59394, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.59394, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10030, "taskCycle": 1003, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.3581929316881496, "y": 1.3581929316881494, "z": 5.277285567555038 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.59394, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.3581929316881496, "y": 1.3581929316881494, "z": 5.277285567555038 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.3528650915670148, "y": 1.3528650915670144, "z": 5.256584139119124, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.3528650915670148, "y": 1.3528650915670144, "z": 5.256584139119124, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.353,\"y\":1.353,\"z\":5.257,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0058.png", "captureStartedMs": 1783110136768, "captureDurationMs": 144, "intervalSincePreviousMs": 177 }, { "wallClock": "2026-07-03T20:22:16.933Z", "perfNow": 9524.900000002235, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 203", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1023, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10230, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.50582, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.50582, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10230, "taskCycle": 1023, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.3368815712036102, "y": 1.3368815712036097, "z": 5.194479853811384 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.50582, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.3368815712036102, "y": 1.3368815712036097, "z": 5.194479853811384 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": 0, "y": 0, "z": 5.50582, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": 0, "y": 0, "z": 5.50582, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":0,\"y\":0,\"z\":5.506,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0059.png", "captureStartedMs": 1783110136912, "captureDurationMs": 130, "intervalSincePreviousMs": 144 }, { "wallClock": "2026-07-03T20:22:17.044Z", "perfNow": 9636.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 206", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1038, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.43973, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.43973, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10380, "taskCycle": 1038, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.3208980508402055, "y": 1.320898050840205, "z": 5.132375568503643 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.43973, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.3208980508402055, "y": 1.320898050840205, "z": 5.132375568503643 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.3155702107190705, "y": 1.3155702107190703, "z": 5.11167414006773, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.3155702107190705, "y": 1.3155702107190703, "z": 5.11167414006773, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.316,\"y\":1.316,\"z\":5.112,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0060.png", "captureStartedMs": 1783110137042, "captureDurationMs": 119, "intervalSincePreviousMs": 130 }, { "wallClock": "2026-07-03T20:22:17.164Z", "perfNow": 9756.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 209", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1053, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10530, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.37363, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.37363, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10530, "taskCycle": 1053, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.3049121120291745, "y": 1.304912112029174, "z": 5.070261886269695 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.37363, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.3049121120291745, "y": 1.304912112029174, "z": 5.070261886269695 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.2995842719080395, "y": 1.2995842719080393, "z": 5.049560457833781, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.2995842719080395, "y": 1.2995842719080393, "z": 5.049560457833781, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.3,\"y\":1.3,\"z\":5.05,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0061.png", "captureStartedMs": 1783110137161, "captureDurationMs": 106, "intervalSincePreviousMs": 119 }, { "wallClock": "2026-07-03T20:22:17.268Z", "perfNow": 9860.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 212", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1068, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10680, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.30754, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.30754, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10680, "taskCycle": 1068, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.2889285916657698, "y": 1.2889285916657693, "z": 5.008157600961955 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.30754, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.2889285916657698, "y": 1.2889285916657693, "z": 5.008157600961955 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.2836007515446348, "y": 1.2836007515446344, "z": 4.9874561725260405, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.2836007515446348, "y": 1.2836007515446344, "z": 4.9874561725260405, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.284,\"y\":1.284,\"z\":4.987,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0062.png", "captureStartedMs": 1783110137267, "captureDurationMs": 138, "intervalSincePreviousMs": 106 }, { "wallClock": "2026-07-03T20:22:17.406Z", "perfNow": 9998.10000000149, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 216", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1088, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 10880, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.21942, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.21942, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10880, "taskCycle": 1088, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.2676172311812302, "y": 1.2676172311812297, "z": 4.9253518872183 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.21942, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.2676172311812302, "y": 1.2676172311812297, "z": 4.9253518872183 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.2622893910600952, "y": 1.262289391060095, "z": 4.9046504587823865, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.2622893910600952, "y": 1.262289391060095, "z": 4.9046504587823865, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.262,\"y\":1.262,\"z\":4.905,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0063.png", "captureStartedMs": 1783110137405, "captureDurationMs": 112, "intervalSincePreviousMs": 138 }, { "wallClock": "2026-07-03T20:22:17.526Z", "perfNow": 10118.300000000745, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 219", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1103, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 11030, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.15333, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.15333, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11030, "taskCycle": 1103, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.2516337108178255, "y": 1.251633710817825, "z": 4.863247601910559 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.15333, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.2516337108178255, "y": 1.251633710817825, "z": 4.863247601910559 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.2463058706966905, "y": 1.2463058706966903, "z": 4.842546173474646, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.2463058706966905, "y": 1.2463058706966903, "z": 4.842546173474646, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.246,\"y\":1.246,\"z\":4.843,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0064.png", "captureStartedMs": 1783110137517, "captureDurationMs": 147, "intervalSincePreviousMs": 112 }, { "wallClock": "2026-07-03T20:22:17.673Z", "perfNow": 10265.5, "runState": "running", "mode": "auto", "interpState": "reading", "activeLine": 18, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 1, "sampleIndex": 1, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 223", "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "taskPaused": false, "singleStepping": false, "cycle": 1123, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 17 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 11230, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 17, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 5.06521, "a": 0, "b": 20, "c": 45 }, "axisPoseFrame": "work", "currentVelocity": 1000.002 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1, "motionIndex": 1, "line": 18, "motionProgramLine": 17, "halProgramLine": 17, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 5.06521, "a": 0, "b": 20, "c": 45 }, "currentVelocityMmPerMin": 1000.002, "requestedVelocityMmPerMin": 1000.002, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11230, "taskCycle": 1123, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g0 x+20 y+20 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.2303223503332859, "y": 1.2303223503332856, "z": 4.780441888166905 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1, "sampleCount": 1300, "executedSampleCount": 2, "timeMs": 50, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 18, "statement": "g0 x+20 y+20 z#", "operation": "rapid-to-quadrant-center", "executionIndex": 4, "gcodeStepIndex": 18, "segmentIndex": 1, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": 0, "y": 0, "z": 5.06521, "a": 0, "b": 20, "c": 45 }, "tcp": { "x": -1.2303223503332859, "y": 1.2303223503332856, "z": 4.780441888166905 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -1.2249945102121509, "y": 1.2249945102121507, "z": 4.759740459730992, "a": 0, "b": 20, "c": 45 }, "tcpPose": { "x": -1.2249945102121509, "y": 1.2249945102121507, "z": 4.759740459730992, "a": 0, "b": 20, "c": 45 }, "toolAxisVector": { "x": 0.24184476264797528, "y": 0.24184476264797522, "z": 0.9396926207859084 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-1.225,\"y\":1.225,\"z\":4.76,\"a\":0,\"b\":20,\"c\":45}", "toolAxis": "{\"x\":0.242,\"y\":0.242,\"z\":0.94}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0065.png", "captureStartedMs": 1783110137664, "captureDurationMs": 113, "intervalSincePreviousMs": 147 }, { "wallClock": "2026-07-03T20:22:17.782Z", "perfNow": 10374.400000002235, "runState": "complete", "mode": "auto", "interpState": "idle", "activeLine": 44, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 28, "sampleIndex": 1293, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 226", "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 1138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 44 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 11380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1293, "motionIndex": 28, "line": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11380, "taskCycle": 1138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1293, "sampleCount": 1300, "executedSampleCount": 1294, "timeMs": 64650, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 44, "statement": "g53 g0 x0y0 z#", "operation": "rapid-final-machine-reset", "executionIndex": 62, "gcodeStepIndex": 124, "segmentIndex": 28, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-10,\"y\":20,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0066.png", "captureStartedMs": 1783110137777, "captureDurationMs": 91, "intervalSincePreviousMs": 113 }, { "wallClock": "2026-07-03T20:22:17.869Z", "perfNow": 10461.20000000298, "runState": "complete", "mode": "auto", "interpState": "idle", "activeLine": 44, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 28, "sampleIndex": 1293, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 226", "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 1138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 44 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 11380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1293, "motionIndex": 28, "line": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11380, "taskCycle": 1138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1293, "sampleCount": 1300, "executedSampleCount": 1294, "timeMs": 64650, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 44, "statement": "g53 g0 x0y0 z#", "operation": "rapid-final-machine-reset", "executionIndex": 62, "gcodeStepIndex": 124, "segmentIndex": 28, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-10,\"y\":20,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0067.png", "captureStartedMs": 1783110137868, "captureDurationMs": 78, "intervalSincePreviousMs": 91 }, { "wallClock": "2026-07-03T20:22:17.947Z", "perfNow": 10539, "runState": "complete", "mode": "auto", "interpState": "idle", "activeLine": 44, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 28, "sampleIndex": 1293, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 226", "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 1138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 44 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 11380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1293, "motionIndex": 28, "line": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11380, "taskCycle": 1138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1293, "sampleCount": 1300, "executedSampleCount": 1294, "timeMs": 64650, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 44, "statement": "g53 g0 x0y0 z#", "operation": "rapid-final-machine-reset", "executionIndex": 62, "gcodeStepIndex": 124, "segmentIndex": 28, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-10,\"y\":20,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0068.png", "captureStartedMs": 1783110137946, "captureDurationMs": 66, "intervalSincePreviousMs": 78 }, { "wallClock": "2026-07-03T20:22:18.013Z", "perfNow": 10605.60000000149, "runState": "complete", "mode": "auto", "interpState": "idle", "activeLine": 44, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 28, "sampleIndex": 1293, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 226", "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 1138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 44 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 11380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1293, "motionIndex": 28, "line": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11380, "taskCycle": 1138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1293, "sampleCount": 1300, "executedSampleCount": 1294, "timeMs": 64650, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 44, "statement": "g53 g0 x0y0 z#", "operation": "rapid-final-machine-reset", "executionIndex": 62, "gcodeStepIndex": 124, "segmentIndex": 28, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-10,\"y\":20,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0069.png", "captureStartedMs": 1783110138012, "captureDurationMs": 63, "intervalSincePreviousMs": 66 }, { "wallClock": "2026-07-03T20:22:18.076Z", "perfNow": 10668.20000000298, "runState": "complete", "mode": "auto", "interpState": "idle", "activeLine": 44, "programElapsedSeconds": 0.356, "programRemainingSeconds": 61.10500000000001, "motionIndex": 28, "sampleIndex": 1293, "programSourceMode": "linuxcnc-machine-file-remap-wasm", "executionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionCount": 29, "message": "task/HAL status tick 226", "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "taskPaused": false, "singleStepping": false, "cycle": 1138, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc", "openedLineCount": 3, "openedSourceLineCount": 44, "executableLineCount": 2, "nextProgramLine": 44 }, "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 11380, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 1293, "motionIndex": 28, "line": 44, "motionProgramLine": 44, "halProgramLine": 44, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 11380, "taskCycle": 1138, "halChangedPinCount": 0, "sourceFile": "xyzbc_switchkins_sub.ngc", "statement": "g53 g0 x0y0 z#", "motionType": "rapid", "activeKinematics": "identity", "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } } }, "programUiExecution": { "apiName": "web-rtcp-5axis-ui-gcode-live-execution", "status": "running", "source": "programAxisPreviewPath.samples", "samplePeriodMs": 50, "sampleIndex": 1293, "sampleCount": 1300, "executedSampleCount": 1294, "timeMs": 64650, "activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc", "sourceFile": "xyzbc_switchkins_sub.ngc", "line": 44, "statement": "g53 g0 x0y0 z#", "operation": "rapid-final-machine-reset", "executionIndex": 62, "gcodeStepIndex": 124, "segmentIndex": 28, "motionType": "rapid", "activeKinematics": "identity", "joint": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcp": { "x": -1.214338829969881, "y": 1.2143388299698807, "z": 4.7183376028591635 }, "toolAxis": { "i": 0, "j": 0, "k": 1 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "machineState": { "spindle": { "speedRpm": 0, "direction": "stopped", "enabled": false }, "feed": { "programmedMmPerMin": 2100, "actualMmPerMin": 2100, "overridePercent": 100 }, "cutting": { "active": false, "cuttingSpeedMmPerMin": 0 }, "tool": { "id": 2, "pocket": 2, "length": 10, "diameter": 8 }, "toolChange": { "activeTool": 2, "activePocket": 2, "changed": false, "command": null }, "coolant": { "mist": false, "flood": false } }, "semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream" }, "axisPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "tcpPose": { "x": -10, "y": 20, "z": 10, "a": 0, "b": 0, "c": 0 }, "toolAxisVector": { "x": 0, "y": 0, "z": 1 }, "canvas": { "toolhead": "{\"x\":-0.001,\"y\":0.001,\"z\":0.005}", "tcpPose": "{\"x\":-10,\"y\":20,\"z\":10,\"a\":0,\"b\":0,\"c\":0}", "toolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "executedPathPoints": "0", "pathPoints": "1300" }, "frame": "frame-0070.png", "captureStartedMs": 1783110138075, "captureDurationMs": 67, "intervalSincePreviousMs": 63 } ] }