{ "pass": true, "checks": [ { "name": "task 87 first view", "state": { "id": "bridge-engine", "step": 0, "operation": 0, "errors": 0, "complete": false, "pending": false, "cameraTween": false, "lid": { "position": [ 0, 0, 0 ], "quaternion": [ 0, 0, 0, 1 ] }, "evidenceCount": 0, "grounding": null, "modelSources": [ { "name": "地形.glb", "url": "/models/地形.glb" }, { "name": "0916架桥车.glb", "url": "/models/bridge-erector-20260916.glb" }, { "name": "0916保障车.glb", "url": "/models/bridge-support-20260916.glb" }, { "name": "双车连接油管.glb", "url": "/models/bridge-rescue-hoses-20260916.glb" } ], "hdr": "venice_sunset_1k", "distance": 15.259438616959523, "zoom": 1, "exposure": 1, "light": [ 0.8, 1.4 ], "screen": { "x": 1013.602930281089, "y": 496.20521864360535, "localX": 550.602930281089, "localY": 307.70521864360535, "visible": true }, "bounds": [ 0.5236417353153229, 0.2973613739013672, 0.33587217330932617 ], "projected": { "x": 536.7233791838236, "y": 296.80898942798194, "w": 27.71510311051361, "h": 22.135003784886635 }, "pivot": [ 0.0013664013147354215, 0.6606327220894567, 1.9416658949851993 ], "pickPoints": [], "freePoints": [], "tip": null, "front": [ 0, 0.6246950475544243, 0.7808688094430303 ], "workflowCoverage": [ { "name": "bridge-engine", "glowing": true }, { "name": "front-pump-pto-switch", "glowing": true }, { "name": "bridge-hose-a", "glowing": true }, { "name": "bridge-hose-b", "glowing": true }, { "name": "bridge-hose-line-a", "glowing": true }, { "name": "bridge-hose-line-b", "glowing": true }, { "name": "bridge-return-line-a", "glowing": true }, { "name": "bridge-return-line-b", "glowing": true }, { "name": "bridge-return-valve", "glowing": true }, { "name": "front-pump-aux-control-box-cover", "glowing": true }, { "name": "front-pump-rescue-switch", "glowing": true }, { "name": "bridge-filter-valve-1", "glowing": true }, { "name": "bridge-filter-valve-2", "glowing": true }, { "name": "bridge-support-pto", "glowing": true }, { "name": "bridge-supply", "glowing": true } ], "camera": [ 10.052979982711939, 6.245383343985843, 11.135487493970418 ], "target": [ 1.197076935786147, 1.0123497253478748, -0.13566183848059057 ], "outline": 1, "cutaway": 0, "materials": [ { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 }, { "opacity": 1, "baseline": 1, "side": 2 } ], "labels": [ { "text": "聚焦 · 架桥车发动机", "x": 949.578125, "y": 523.4375, "w": 128, "h": 30, "id": "bridge-engine" } ], "narration": [ { "video": true, "fallback": true }, { "video": true, "fallback": true }, { "video": true, "fallback": true }, { "video": true, "fallback": true }, { "video": true, "fallback": true }, { "video": true, "fallback": true } ], "teacherWarning": "当前操作:保持架桥车发动机运行。", "stepCount": 6, "hasNormalControl": false, "hoseConnections": [ { "id": "bridge-hose-line-a", "position": [ -0.6497425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0.12 }, { "id": "bridge-hose-line-b", "position": [ 3.077364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0.1200000000000001 }, { "id": "bridge-return-line-a", "position": [ -0.6497425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0.12 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ], "operationData": { "targetId": "bridge-engine", "kind": "identify", "directionHint": "保持架桥车发动机运行", "effects": [ { "targetId": "bridge-engine", "color": 2209160 } ], "index": 0, "axis": [ 0, 1, 0 ], "deltaDegrees": 0, "toleranceDegrees": 6 }, "position": [ 0.0013663864135741999, 0.6606327220894567, 1.941665954589844 ], "quaternion": [ 0, 0, 0, 1 ] } }, { "name": "new model source and ground contacts", "pass": true, "grounding": { "samples": 446, "minGap": 0, "maxGap": 0.001598701477051434 }, "modelSources": [ { "name": "地形.glb", "url": "/models/地形.glb" }, { "name": "0916架桥车.glb", "url": "/models/bridge-erector-20260916.glb" }, { "name": "0916保障车.glb", "url": "/models/bridge-support-20260916.glb" }, { "name": "双车连接油管.glb", "url": "/models/bridge-rescue-hoses-20260916.glb" } ] }, { "name": "task 87 internal target inspected with explicit translucent tool", "targetId": "bridge-engine", "pass": true }, { "name": "task 87 step 1 operation 1", "target": "bridge-engine", "drag": false, "distance": 2.6062982499292233, "projected": { "x": 662.9122984279823, "y": 212.61469837836887, "w": 176.17540314403573, "h": 135.83320316240622 }, "labels": 4 }, { "name": "task 87 step 1 operation 2", "target": "front-pump-pto-switch", "drag": true, "distance": 2.6062982499292233, "projected": { "x": 709.0006218687108, "y": 263.03238137723895, "w": 83.99875626257597, "h": 33.023591730972726 }, "labels": 1 }, { "name": "006 hose operation 1 geometry and completion guard", "pass": true, "connected": 0, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.6497425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0.12 }, { "id": "bridge-hose-line-b", "position": [ 3.077364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0.1200000000000001 }, { "id": "bridge-return-line-a", "position": [ -0.6497425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0.12 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ] }, { "name": "task 87 step 2 operation 1", "target": "bridge-hose-a", "drag": true, "distance": 2.606298249929224, "projected": { "x": 716.5751089643882, "y": 235.1456238637226, "w": 68.84978207122037, "h": 89.46479408676683 }, "labels": 9 }, { "name": "006 hose operation 2 geometry and completion guard", "pass": true, "connected": 0, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.6497425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0.12 }, { "id": "bridge-hose-line-b", "position": [ 3.077364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0.1200000000000001 }, { "id": "bridge-return-line-a", "position": [ -0.6497425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0.12 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ] }, { "name": "task 87 step 2 operation 2", "target": "bridge-hose-b", "drag": true, "distance": 2.6062982499292233, "projected": { "x": 716.5749979728365, "y": 235.14564999479703, "w": 68.85000405432356, "h": 89.46473781586778 }, "labels": 5 }, { "name": "006 short hose drag does not count as a connection", "pass": true }, { "name": "006 hose operation 3 geometry and completion guard", "pass": true, "connected": 1, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.5297425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0 }, { "id": "bridge-hose-line-b", "position": [ 3.077364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0.1200000000000001 }, { "id": "bridge-return-line-a", "position": [ -0.6497425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0.12 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ] }, { "name": "task 87 step 2 operation 3", "target": "bridge-hose-line-a", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 722.8016963712324, "y": 246.3561291464537, "w": 56.39660725753561, "h": 66.60615034164394 }, "labels": 5 }, { "name": "006 hose operation 4 geometry and completion guard", "pass": true, "connected": 2, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.5297425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0 }, { "id": "bridge-hose-line-b", "position": [ 3.197364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0 }, { "id": "bridge-return-line-a", "position": [ -0.6497425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0.12 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ] }, { "name": "task 87 step 2 operation 4", "target": "bridge-hose-line-b", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 722.8017098128092, "y": 246.35605894123788, "w": 56.396580374382324, "h": 66.60629498856335 }, "labels": 4 }, { "name": "006 hose operation 5 geometry and completion guard", "pass": true, "connected": 3, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.5297425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0 }, { "id": "bridge-hose-line-b", "position": [ 3.197364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0 }, { "id": "bridge-return-line-a", "position": [ -0.5297425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0 }, { "id": "bridge-return-line-b", "position": [ 3.077364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0.1200000000000001 } ] }, { "name": "task 87 step 2 operation 5", "target": "bridge-return-line-a", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 732.9817238724916, "y": 255.9786090146429, "w": 36.03655225501757, "h": 47.310764141427484 }, "labels": 5 }, { "name": "006 hose operation 6 geometry and completion guard", "pass": true, "connected": 4, "ends": [ { "id": "bridge-hose-line-a", "position": [ -0.5297425091266632, 0.9717301726341248, 0.11148320883512497 ], "remaining": 0 }, { "id": "bridge-hose-line-b", "position": [ 3.197364330291748, 0.5208766460418701, 1.110397458076477 ], "remaining": 0 }, { "id": "bridge-return-line-a", "position": [ -0.5297425091266632, 0.9708543121814728, 0.07469351589679718 ], "remaining": 0 }, { "id": "bridge-return-line-b", "position": [ 3.197364330291748, 0.5211287438869476, 1.0733574628829956 ], "remaining": 0 } ] }, { "name": "task 87 step 2 operation 6", "target": "bridge-return-line-b", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 732.9817678929677, "y": 255.9785383102741, "w": 36.03646421406563, "h": 47.31090878328561 }, "labels": 4 }, { "name": "task 87 step 3 operation 1", "target": "bridge-return-valve", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 692.7555261168103, "y": 264.6492748792297, "w": 116.48894776638076, "h": 29.793580229157556 }, "labels": 1 }, { "name": "task 87 step 4 operation 1", "target": "front-pump-aux-control-box-cover", "drag": true, "distance": 2.606298249929224, "projected": { "x": 699.1228274833263, "y": 249.20856621347716, "w": 103.75434503334805, "h": 60.651670340400216 }, "labels": 13 }, { "name": "task 87 step 4 operation 2", "target": "front-pump-rescue-switch", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 748.0136078101959, "y": 276.39727764862505, "w": 5.972784379609266, "h": 6.274247470104569 }, "labels": 11 }, { "name": "task 87 step 5 operation 1", "target": "bridge-filter-valve-1", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 692.6892130062968, "y": 264.8954801602761, "w": 116.62157398740703, "h": 29.326181621991225 }, "labels": 6 }, { "name": "task 87 step 5 operation 2", "target": "bridge-filter-valve-2", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 693.775094204158, "y": 260.62023383483773, "w": 114.44981159168424, "h": 37.8674482852453 }, "labels": 6 }, { "name": "task 87 step 6 operation 1", "target": "bridge-support-pto", "drag": true, "distance": 2.6062982499292238, "projected": { "x": 713.0499877342736, "y": 234.09443864742252, "w": 75.90002453145382, "h": 91.19538520202474 }, "labels": 4 }, { "name": "task 87 step 6 operation 2", "target": "bridge-supply", "drag": false, "distance": 2.6062982499292247, "projected": { "x": 716.8964976099176, "y": 231.9366905664349, "w": 68.2070047801659, "h": 95.45439604586647 }, "labels": 1 }, { "name": "006 completes after six steps with no synthetic normal-operation handle, six paired narrations and completion message", "pass": true } ], "errors": [], "writes": [ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate", "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate", "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate", "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate", "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate", "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate" ] }