{ "generatedAt": "2026-06-23T07:49:51.440Z", "target": "https://82.156.24.101:8092/", "steps": [ { "name": "01-loaded", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/01-loaded.png", "state": { "runState": "idle", "activeLine": 9, "machine": { "powerOn": false, "estopActive": false, "taskState": "estop-reset", "mode": "manual", "interpState": "idle", "interpResumeState": "idle", "taskPaused": false, "allHomed": false, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "LinuxCNC interpreter motion events 2, switchkins M428/M429", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-interpreter-wasm", "motionEventCount": 2, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": false, "sequence": 0, "profileId": null, "iniPath": null, "kinematicsModuleId": null, "tickCount": 0, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": null, "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": null, "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": 10, "type": "STRAIGHT_TRAVERSE", "linearUnits": "mm", "timeSeconds": 0.001, "axisPose": { "x": 0, "y": 0, "z": 0.00025, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 30, "requestedVelocityMmPerMin": 2100, "distanceToGo": 4.99975, "dtg": { "x": 0, "y": 0, "z": 4.99975 }, "queueDepth": 1, "activeDepth": 1, "cycle": 1 }, "feedbackHistoryLength": 0, "lineExecution": null }, "ui": { "hasRunReady": true, "activeUiLine": 9, "activeLineText": "running", "currentLine": "10", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "2", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "2", "threeFeedPathPoints": "0", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "2", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "02-impeller-loaded", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/02-impeller-loaded.png", "state": { "runState": "idle", "activeLine": 1, "machine": { "powerOn": false, "estopActive": false, "taskState": "estop-reset", "mode": "manual", "interpState": "idle", "interpResumeState": "idle", "taskPaused": false, "allHomed": false, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "taskHalProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionEventCount": 4492, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": false, "sequence": 0, "profileId": null, "iniPath": null, "kinematicsModuleId": null, "tickCount": 0, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": null, "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": { "ui": { "taskState": "estop_reset", "taskMode": "manual", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 10, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 1, "motionProgramLine": 0, "halProgramLine": 0, "activeLineSource": "fallback", "activeLineHalSynced": false, "switchkinsType": 0, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "axisPoseFrame": "work", "currentVelocity": 0 }, "task": { "state": "ESTOP_RESET", "mode": "MANUAL", "interpState": "IDLE", "execState": "DONE", "cycle": 1, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "openedLineCount": 4510, "openedSourceLineCount": 4510, "executableLineCount": 4498, "nextProgramLine": 0 }, "summary": { "taskRuntimeReady": true, "motionRuntimeReady": true, "halRuntimeReady": true, "halSyncReady": true, "taskHalComparisonReady": true, "switchkinsRemapHalSync": true, "nativeTaskReady": true, "nativeHalSyncReady": true, "fullLinuxCncProgramExecutionReady": false, "hardwareDrive": false, "hostRealtimeKernel": false } }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 10, "motionIndex": 0, "line": 1, "motionProgramLine": 0, "halProgramLine": 0, "activeLineSource": "fallback", "activeLineHalSynced": false, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 0, "requestedVelocityMmPerMin": 0, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 10, "taskCycle": 1, "halChangedPinCount": 0 }, "feedbackHistoryLength": 1, "lineExecution": { "status": "idle", "source": "linuxcnc-task-motion-hal-wasm", "line": 1, "feed": 0, "requestedFeed": 0, "feedMode": null, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "taskCycle": 1, "servoCycle": 10, "sampleIndex": 10, "motionIndex": 0, "updatedAt": "2026-06-23T07:49:11.339Z" } }, "ui": { "hasRunReady": true, "activeUiLine": 1, "activeLineText": "idle | F 0.0 | X 0.000 | Y 0.000 | Z 0.000 | A 0.000 | C 0.000 | cycle 1/10", "currentLine": "1", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "4492", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089214}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "186", "threeFeedPathPoints": "4306", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "1", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "03-run-ready", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/03-run-ready.png", "state": { "runState": "idle", "activeLine": 1, "machine": { "powerOn": true, "estopActive": false, "taskState": "on", "mode": "auto", "interpState": "idle", "interpResumeState": "idle", "taskPaused": false, "allHomed": true, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "RUN ready: power on, homed, auto mode", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "taskHalProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionEventCount": 4492, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": false, "sequence": 0, "profileId": null, "iniPath": null, "kinematicsModuleId": null, "tickCount": 0, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": null, "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": { "ui": { "taskState": "on", "taskMode": "auto", "interpState": "idle", "execState": "done", "taskCycle": 0, "servoCycle": 40, "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 }, "task": { "state": "ON", "mode": "AUTO", "interpState": "IDLE", "execState": "DONE", "cycle": 4, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "openedLineCount": 4510, "openedSourceLineCount": 4510, "executableLineCount": 4498, "nextProgramLine": 0 }, "summary": { "taskRuntimeReady": true, "motionRuntimeReady": true, "halRuntimeReady": true, "halSyncReady": true, "taskHalComparisonReady": true, "switchkinsRemapHalSync": true, "nativeTaskReady": true, "nativeHalSyncReady": true, "fullLinuxCncProgramExecutionReady": false, "hardwareDrive": false, "hostRealtimeKernel": false } }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 40, "motionIndex": 0, "line": 1, "motionProgramLine": 1, "halProgramLine": 1, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "currentVelocityMmPerMin": 3600, "requestedVelocityMmPerMin": 3600, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 40, "taskCycle": 4, "halChangedPinCount": 0 }, "feedbackHistoryLength": 3, "lineExecution": { "status": "idle", "source": "linuxcnc-task-motion-hal-wasm", "line": 1, "feed": 3600, "requestedFeed": 3600, "feedMode": null, "axisPose": { "x": 0, "y": 0, "z": 0, "a": 0, "b": 0, "c": 0 }, "taskCycle": 4, "servoCycle": 40, "sampleIndex": 40, "motionIndex": 0, "updatedAt": "2026-06-23T07:49:23.054Z" } }, "ui": { "hasRunReady": true, "activeUiLine": 1, "activeLineText": "idle | F 3600.0 | X 0.000 | Y 0.000 | Z 0.000 | A 0.000 | C 0.000 | cycle 4/40", "currentLine": "1", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "4492", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}", "threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089214}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "186", "threeFeedPathPoints": "4306", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "1", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "04-run-0500", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/04-run-0500.png", "state": { "runState": "running", "activeLine": 9, "machine": { "powerOn": true, "estopActive": false, "taskState": "on", "mode": "auto", "interpState": "reading", "interpResumeState": "reading", "taskPaused": false, "allHomed": true, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "task/HAL status tick 1", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "taskHalProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionEventCount": 4492, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": true, "sequence": 1, "profileId": "xyzac-trt", "iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", "kinematicsModuleId": "xyzac-trt", "tickCount": 1, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": "2026-06-23T07:49:34.569Z", "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": { "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 140, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 9, "motionProgramLine": 9, "halProgramLine": 9, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 14.3874, "y": -22.7161, "z": 32.2622, "a": -71.841, "b": 0, "c": -35.93 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "cycle": 14, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "openedLineCount": 4510, "openedSourceLineCount": 4510, "executableLineCount": 4498, "nextProgramLine": 9 }, "summary": { "taskRuntimeReady": true, "motionRuntimeReady": true, "halRuntimeReady": true, "halSyncReady": true, "taskHalComparisonReady": true, "switchkinsRemapHalSync": true, "nativeTaskReady": true, "nativeHalSyncReady": true, "fullLinuxCncProgramExecutionReady": false, "hardwareDrive": false, "hostRealtimeKernel": false } }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 140, "motionIndex": 8, "line": 9, "motionProgramLine": 9, "halProgramLine": 9, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 14.3874, "y": -22.7161, "z": 32.2622, "a": -71.841, "b": 0, "c": -35.93 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 140, "taskCycle": 14, "halChangedPinCount": 0 }, "feedbackHistoryLength": 1, "lineExecution": { "status": "running", "source": "linuxcnc-task-motion-hal-wasm", "line": 9, "feed": 2100, "requestedFeed": 2100, "feedMode": null, "axisPose": { "x": 14.3874, "y": -22.7161, "z": 32.2622, "a": -71.841, "b": 0, "c": -35.93 }, "taskCycle": 14, "servoCycle": 140, "sampleIndex": 140, "motionIndex": 8, "updatedAt": "2026-06-23T07:49:34.569Z" } }, "ui": { "hasRunReady": true, "activeUiLine": 9, "activeLineText": "running | F 2100.0 | X 13.412 | Y -21.370 | Z 31.717 | A -71.841 | C -35.930 | cycle 19/190", "currentLine": "9", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "4492", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0.013,\"y\":-0.021,\"z\":0.032}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}", "threeTcpPose": "{\"x\":-33.435,\"y\":-86.014,\"z\":5.532,\"a\":-71.841,\"c\":-35.93}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089214}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "186", "threeFeedPathPoints": "4306", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "1", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "05-run-3000", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/05-run-3000.png", "state": { "runState": "running", "activeLine": 9, "machine": { "powerOn": true, "estopActive": false, "taskState": "on", "mode": "auto", "interpState": "reading", "interpResumeState": "reading", "taskPaused": false, "allHomed": true, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "task/HAL status tick 8", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "taskHalProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionEventCount": 4492, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": true, "sequence": 1, "profileId": "xyzac-trt", "iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", "kinematicsModuleId": "xyzac-trt", "tickCount": 8, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": "2026-06-23T07:49:40.075Z", "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": { "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 490, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 9, "motionProgramLine": 9, "halProgramLine": 9, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 7.55697, "y": -13.2911, "z": 28.4442, "a": -71.841, "b": 0, "c": -35.93 }, "axisPoseFrame": "work", "currentVelocity": 2100 }, "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "cycle": 49, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "openedLineCount": 4510, "openedSourceLineCount": 4510, "executableLineCount": 4498, "nextProgramLine": 9 }, "summary": { "taskRuntimeReady": true, "motionRuntimeReady": true, "halRuntimeReady": true, "halSyncReady": true, "taskHalComparisonReady": true, "switchkinsRemapHalSync": true, "nativeTaskReady": true, "nativeHalSyncReady": true, "fullLinuxCncProgramExecutionReady": false, "hardwareDrive": false, "hostRealtimeKernel": false } }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 490, "motionIndex": 8, "line": 9, "motionProgramLine": 9, "halProgramLine": 9, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 7.55697, "y": -13.2911, "z": 28.4442, "a": -71.841, "b": 0, "c": -35.93 }, "currentVelocityMmPerMin": 2100, "requestedVelocityMmPerMin": 2100, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 490, "taskCycle": 49, "halChangedPinCount": 0 }, "feedbackHistoryLength": 8, "lineExecution": { "status": "running", "source": "linuxcnc-task-motion-hal-wasm", "line": 9, "feed": 2100, "requestedFeed": 2100, "feedMode": null, "axisPose": { "x": 7.55697, "y": -13.2911, "z": 28.4442, "a": -71.841, "b": 0, "c": -35.93 }, "taskCycle": 49, "servoCycle": 490, "sampleIndex": 490, "motionIndex": 8, "updatedAt": "2026-06-23T07:49:40.075Z" } }, "ui": { "hasRunReady": true, "activeUiLine": 10, "activeLineText": "running | F 635.7 | X 7.164 | Y -12.749 | Z 28.225 | A -71.841 | C -35.930 | cycle 54/540", "currentLine": "10", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "4492", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0.007,\"y\":-0.013,\"z\":0.028}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}", "threeTcpPose": "{\"x\":-39.683,\"y\":-77.394,\"z\":2.04,\"a\":-71.841,\"c\":-35.93}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089214}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "186", "threeFeedPathPoints": "4306", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "1", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "06-run-7000", "screenshot": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/06-run-7000.png", "state": { "runState": "running", "activeLine": 11, "machine": { "powerOn": true, "estopActive": false, "taskState": "on", "mode": "auto", "interpState": "reading", "interpResumeState": "reading", "taskPaused": false, "allHomed": true, "noForceHoming": false, "jogAxis": "x", "jogIncrement": 1, "mdiCommand": "G0 X0 Y0 Z0", "mdiDistanceMode": "absolute", "resetCount": 0 }, "rtcpState": "on", "kinsType": "tcp-xyzac", "operatorMessage": "task/HAL status tick 18", "selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "taskHalProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "programExecutionSourceMode": "linuxcnc-task-motion-hal-wasm", "motionEventCount": 4492, "taskHalStatusLoop": { "apiName": "web-rtcp-5axis-task-hal-status-loop", "active": true, "sequence": 1, "profileId": "xyzac-trt", "iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", "kinematicsModuleId": "xyzac-trt", "tickCount": 18, "batchSize": 5, "intervalMs": 25, "taskPeriodNs": 10000000, "servoPeriodNs": 1000000, "lastStatusAt": "2026-06-23T07:49:47.116Z", "lastError": null, "stopReason": null, "semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status" }, "taskHalStatus": { "ui": { "taskState": "on", "taskMode": "auto", "interpState": "reading", "execState": "waiting_for_motion", "taskCycle": 0, "servoCycle": 990, "motionQueueDepth": 0, "halChangedPinCount": 0, "activeLine": 11, "motionProgramLine": 11, "halProgramLine": 11, "activeLineSource": "motion-status", "activeLineHalSynced": true, "switchkinsType": 0, "axisPose": { "x": 6.34714, "y": -12.2515, "z": 26.4816, "a": -71.3776, "b": 0, "c": -33.5032 }, "axisPoseFrame": "work", "currentVelocity": 283.9176 }, "task": { "state": "ON", "mode": "AUTO", "interpState": "READING", "execState": "WAITING_FOR_MOTION", "cycle": 99, "openProgram": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/impeller-7bl-xyzac.ngc", "openedLineCount": 4510, "openedSourceLineCount": 4510, "executableLineCount": 4498, "nextProgramLine": 11 }, "summary": { "taskRuntimeReady": true, "motionRuntimeReady": true, "halRuntimeReady": true, "halSyncReady": true, "taskHalComparisonReady": true, "switchkinsRemapHalSync": true, "nativeTaskReady": true, "nativeHalSyncReady": true, "fullLinuxCncProgramExecutionReady": false, "hardwareDrive": false, "hostRealtimeKernel": false } }, "feedback": { "apiName": "web-rtcp-5axis-program-runtime-feedback", "sourceMode": "linuxcnc-task-motion-hal-wasm", "semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime", "sampleIndex": 990, "motionIndex": 10, "line": 11, "motionProgramLine": 11, "halProgramLine": 11, "activeLineSource": "motion-status", "activeLineHalSynced": true, "type": "TASK_MOTION", "timeSeconds": 0, "axisPose": { "x": 6.34714, "y": -12.2515, "z": 26.4816, "a": -71.3776, "b": 0, "c": -33.5032 }, "currentVelocityMmPerMin": 283.9176, "requestedVelocityMmPerMin": 283.9176, "distanceToGo": 0, "dtg": { "x": 0, "y": 0, "z": 0 }, "queueDepth": 0, "activeDepth": 0, "cycle": 990, "taskCycle": 99, "halChangedPinCount": 0 }, "feedbackHistoryLength": 18, "lineExecution": { "status": "running", "source": "linuxcnc-task-motion-hal-wasm", "line": 11, "feed": 283.9176, "requestedFeed": 283.9176, "feedMode": null, "axisPose": { "x": 6.34714, "y": -12.2515, "z": 26.4816, "a": -71.3776, "b": 0, "c": -33.5032 }, "taskCycle": 99, "servoCycle": 990, "sampleIndex": 990, "motionIndex": 10, "updatedAt": "2026-06-23T07:49:47.116Z" } }, "ui": { "hasRunReady": true, "activeUiLine": 11, "activeLineText": "running | F 283.9 | X 6.347 | Y -12.252 | Z 26.482 | A -71.378 | C -33.503 | cycle 99/990", "currentLine": "11", "canvas": { "fiveAxisCanvas": "true", "engine": "three.js r183", "threeReady": "true", "threeRevision": "183", "threePathPoints": "4492", "threeExecutedPathPoints": "1", "threeSceneObjects": "20", "threeToolhead": "{\"x\":0.006,\"y\":-0.012,\"z\":0.026}", "threeSceneUnits": "m", "threeLinearUnits": "mm", "threeLinearUnitScaleToMeters": "0.001", "threeToolAxis": "{\"x\":0.523,\"y\":0.79,\"z\":0.319}", "threeTcpPose": "{\"x\":6.347,\"y\":-12.251,\"z\":26.482,\"a\":-71.378,\"c\":-33.503}", "threeRtcpState": "on", "threeSelectedView": "iso", "threeFrameApi": "web-rtcp-5axis-motion-frame", "threeRenderer": "webgl", "threeSceneMode": "program-preview-and-tool-execution", "threePreviewScope": "machine-reference-and-toolpath", "threeMachineReferenceModel": "webgl-five-axis-reference", "threeCameraControls": "orbit-pan-zoom", "threeProgramPreviewSource": "linuxcnc-interpreter-wasm", "threeToolExecutionMarker": "true", "threeTcpMarker": "sphere", "threeToolAxisMarker": "line", "threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion", "threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback", "threePathFitBounds": "ok", "threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089214}", "threeCurrentSegmentHighlight": "ok", "threeRapidFeedVisualDistinction": "ok", "threeNoGcodeSemanticsGeneration": "ok", "threeRapidPathPoints": "186", "threeFeedPathPoints": "4306", "threeArcPathPoints": "0", "threeCurrentSegmentPoints": "1", "threeCurrentSegmentType": "STRAIGHT_TRAVERSE" } } }, { "name": "ERROR", "error": "Error: Node is detached from document\n at CdpElementHandle.assertConnectedElement (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:1300:23)\n at async CdpElementHandle.isIntersectingViewport (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:1325:17)\n at async CdpElementHandle. (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:118:20)\n at async CdpElementHandle.scrollIntoViewIfNeeded (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:1307:17)\n at async CdpElementHandle.click (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:721:13)\n at async CdpElementHandle. (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js:129:24)\n at async CdpFrame.click (file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/node_modules/puppeteer-core/lib/puppeteer/api/Frame.js:749:17)\n at async file:///home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/[eval1]:96:3" } ], "consoleLogs": [ { "type": "warn", "text": "[.WebGL-0x9c000ec000]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", "location": { "url": "https://82.156.24.101:8092/" } }, { "type": "warn", "text": "[.WebGL-0x9c000ec000]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", "location": { "url": "https://82.156.24.101:8092/" } }, { "type": "warn", "text": "[.WebGL-0x9c000ec000]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", "location": { "url": "https://82.156.24.101:8092/" } }, { "type": "warn", "text": "[.WebGL-0x9c000ec000]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)", "location": { "url": "https://82.156.24.101:8092/" } } ], "pageErrors": [], "requestFailures": [] }