Files
2026-07-03 17:04:33 -04:00

17468 lines
474 KiB
JSON

{
"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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax> 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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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#<zmax>",
"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
}
]
}