Files
linuxcncWebWASM/README.md

4.3 KiB
Raw Blame History

LinuxCNC Web/WASM

本仓库的目标是将 LinuxCNC 2.10.0~pre0 的仿真行为移植到浏览器。当前已完成 posemath/TP、rs274ngc interpreter 和 fixed-tick motion queue 核心切片;这仍不是 LinuxCNC 全功能完成声明。

恢复或开始工作时,首先读取 nextTask.md。它是唯一接续入口,刻意限制在 8 KiB 以内,不包含聊天记录、完整日志或历史证据。只有定位旧证据时才按需读取 docs/task-history.md 和其中引用的产物。

项目整体流程、LinuxCNC 案例到 WASM/Worker/前端的映射,以及后续任务起点见 系统流程与后续执行基线。

当前状态

  • LinuxCNC 来源基线:linuxcnc/VERSION 与 context-lock.json。
  • 来源索引:coverage/source-index.jsonl,由 scripts/generate_source_inventory.py 生成。
  • 覆盖种子:coverage/manifest.jsonl。所有条目初始为 planned/needs_owner,没有来源会被静默忽略。
  • WASM ABI 骨架:wasm-core/include/sim_api.h;当前实现只验证生命周期、固定 tick、快照和状态导入导出。
  • 前端 AppShell、真实 WorkerClient、配置/HAL preflight、虚拟设备、Python bridge 和 FE-M1..M4 初始工作流已有实现证据;真正的 LinuxCNC Task 固定 tick、完整配置启动、真实 OPFS/浏览器矩阵和全量 UI 融合仍未完成。当前正式下一任务是 WAIT-OWNER-01;owner 输入和新 context 后的第一个技术实现起点为 INT-01,详见 系统流程与后续执行基线。
  • K0-K6 运动学实现主线已完成代码、ABI、固定边界和 native/WASM 回归,覆盖 trivkins、耦合运动学、5 轴/TRT、机器人、GenSer、Delta、Tripod、Hexapod、Pentapod、switchkins、userk/registry、TP→IK→motion、FK feedback、home/limit。对应报告仍可能是 partial,因为锁定来源没有 linuxcnc/unit_tests/kinematics/** 官方 oracle;这是发布验收阻塞,不是继续重复解析的理由。
  • K8 配置/发布审计已生成 264 个配置注册入口、233 个 sim entrypoint 和 16,093 条资源边;当前配置启动闭包仍有 997 missing、91 unresolved、59 unindexed 和 3 unregistered startup 条目。K8 release gate 保持 candidate_eligible=false、release_action=STOP_RELEASE,六项 owner/release blocker 不得被误报为运动学未完成。

重建 M0

python3 scripts/generate_source_inventory.py
python3 scripts/validate_baseline.py
python3 -m unittest discover -s scripts -p 'test_*.py' -v
python3 scripts/validate_task_pointer.py

模型请求也必须先经过预算门禁:用 scripts/context_packet.py 生成固定 profile 的 packet,再运行 scripts/validate_model_budget.py packet.json --context-window <window> --overhead-tokens <current-request-overhead>。覆盖值只能缩小 profile;请求外开销不得包含上一轮聊天。请求返回后用 validate_provider_response 校验 provider usage,流式响应交给 scripts/model_stream.py 消费;断流、上下文超限、usage 缺失或截断只写 metadata-only checkpoint,并从更小的 packet 重建,绝不把旧响应拼回上下文。

编译 ABI 骨架

需要 Emscripten。该命令同时运行原生 ABI 单测并生成 build-wasm/linuxcnc-sim-core.js/.wasm:

scripts/build-wasm.sh

完整路线、功能完整性和退出门禁见 docs/linuxcnc-web-wasm-implementation-readiness.md。面向“完整移植仿真机床”的启动闭环、运行时依赖、固定 tick、资源闭包和分阶段产物见 docs/linuxcnc-web-wasm-full-port-implementation.md;运动学正逆解、机床类型分族、分支/奇异性和 K0-K8 主线见 docs/linuxcnc-web-wasm-kinematics-migration-plan.md。专项设计仍分别位于 docs/ 下的 roadmap、source map、coverage、communication、execution 和 playbook 文档。

依赖下载允许使用中国大陆镜像;请先阅读 context-lock.json 的 downloads 策略。镜像只改变传输位置,不能改变版本、文件字节或校验记录。