跳转到内容

RFC-0001:AI 原生 CAD 系统架构:扩展、安全边界与交付

主文档与完整目录。本分篇与主文档共同构成同一规范,版本、状态与权威以主文档为准;仅拆分阅读结构,条款编号和正文语义不变。

  1. AMIR operation package;
  2. compiler lowering pass;
  3. kernel adapter;
  4. importer/exporter;
  5. validator/Geometry Certificate extension;
  6. catalog metadata;
  7. viewer overlay、gizmo 和非权威 visualizer;
  8. AI tool description/recovery policy。

每个插件声明:

  • package ID、semantic version、content hash、publisher/signature;
  • compatible AMIR/compiler/adapter ABI;
  • operations、输入输出类型和 capability;
  • determinism grade;
  • CPU/memory/time/output cost class;
  • 文件、网络、GPU、worker、项目数据权限;
  • license/SBOM;
  • migration 和卸载行为。
  • 插件只通过 versioned SDK 访问 AMIR、artifact handle 和 transaction API;
  • 禁止直接读写 revision DB、CAS 路径、Three.js scene internals 或 raw kernel handle;
  • authoring/geometry 插件必须是纯、可重放且固定版本;不满足者只能标为 preview-only;
  • viewer 插件不能提升 preview 工件、伪造 certificate 或提交 revision;
  • native 插件使用进程隔离;WASM 插件使用 capability-based imports;
  • 插件失败只影响当前 transaction/job,不能破坏 branch head;
  • 卸载插件后旧 revision 仍可读取;重建需要锁定包或明确返回 PACKAGE_UNAVAILABLE。
格式 角色 导入策略 导出策略
.aira / AMIR JSON 规范 authoring schema/migration/签名检查 canonical、可 diff、含 lock manifest
STEP AP242 精确 CAD 交换 import node + immutable blob;解析为 ExactSolid artifact 记录单位、容差、属性与 feature-history 不保留项
IGES 兼容交换 隔离解析、healing 和警告 仅按明确需求,提示语义限制
3MF 打印网格 解析为 MeshSolid/attributes MeshSolid 优先出口,附 manifold/单位证书
glTF/GLB 实时展示与交付 作为 mesh/scene asset 导入,不恢复 CAD 历史 从 RenderPacket/mesh 显式导出,绝非 authoring source
STL 兼容出口 必须请求/推断单位并警告,无拓扑/材质/历史 仅兼容,附单位与损失报告
OpenUSD 未来装配/场景组合 Phase 3 评估 不替代 AMIR feature graph

规则:

  1. import 总是创建带 blob hash、格式 profile、单位和 healing policy 的显式 AMIR node。
  2. import 后的 body 选择一个 authority kind;无法可靠识别时要求用户/AI 显式决定。
  3. export 是 revision + Evaluation/artifact + delivery profile 的纯派生 job,不改变几何 Feature DAG;需要版本化的出口配置保存在独立 delivery profile 图及其 hash 中。
  4. 每次 export 产生 Exchange Geometry Certificate 和 machine-readable loss report。
  5. STEP round-trip 比较解析面类型、单位、属性、有效性和带容差几何,不以文件字节相等为目标。
  6. GLB/BREP sidecar 可以加速加载,但永远不能在缺失 AMIR 时被当作完整项目恢复源。

统一 trace context:

requestId → transactionId → revision/candidateHash
→ compiler pass → plan/node
→ scheduler job → adapter/worker execution
→ artifactHash → certificateHash → RenderPacket/export

每个 span 记录版本、cache status、预算、取消和稳定 error code;不默认记录完整几何或用户内容。

至少包括:

  • API latency、queue time、事务成功/拒绝/冲突率;
  • compile/type/unit/selector 成功率;
  • dirty node ratio、subgraph cache hit、artifact reuse;
  • adapter cold start、execute、validate、tessellate 时间;
  • worker crash、timeout、cancel latency、峰值内存;
  • triangle/cell/body/face 数;
  • SemanticRef survival、missing/ambiguous;
  • certificate validity、conversion loss、warning 分布;
  • viewer frame time、上传量、拾取 latency;
  • STEP/3MF/GLB export success 与 round-trip deviation;
  • AI 首次 patch 成功率、修复轮次和无效请求拒绝率。
  • 结构化日志使用稳定 code,不解析本地化字符串;
  • 生产日志中的实体用 hash/ID,敏感字段可采样或脱敏;
  • 每个失败可导出最小 replay bundle:AMIR candidate、input hashes、manifest、budgets、diagnostics;
  • golden corpus 覆盖 primitive、boolean、fillet、shell、selector 变更、STEP round-trip、Field bake、约束冲突和恶意输入;
  • kernel/compiler/plugin 升级必须双跑 corpus,并比较语义不变量和证书误差界。

性能指标必须与模型复杂度、质量和执行环境绑定,不能用一个“CAD 操作应在 100 ms 内”掩盖精度差异。

每个 operation descriptor 和 transaction policy 声明:

  • CPU/WASM wall time;
  • worker cold-start 与 module-load;
  • peak memory;
  • output bytes、triangle/cell/subshape 数;
  • main-thread blocking;
  • network transfer;
  • preview quality/error;
  • authoritative validation;
  • cancel grace period。
  1. 主线程预算独立:权威几何不得阻塞 viewer;超过一帧的解析/拷贝也应移入 worker 或分片。
  2. 先反馈后精化:交互时可使用 coarse preview,停止操作后自动请求 authoritative refine;两者必须视觉标识并使用不同缓存。
  3. 可取消优先:长操作在计划中的安全点检查取消;取消延迟本身是 SLO。
  4. 先估算后分配:pattern、Field 和 tessellation 在执行前估算输出,超过 hard cap 直接拒绝或要求显式提高预算。
  5. 按 dirty subgraph 计费:性能回归以真正重算节点和复用率解释,不能只看总时长。
  6. 质量参数进入结果身份:任何通过降低 tolerance/采样换取速度的结果都成为不同 artifact。
  7. 分环境基线:browser low/mid/high、native、server 各有 reference machine 和 corpus,不跨环境混合 percentile。
  8. 冷/热路径分开:WASM 下载、编译、worker 启动与热执行分别报告。
  9. 内存是硬约束:超过 hard cap 终止 worker;不得依赖浏览器 OOM 回收。
  10. 无证书不达标:速度提升若降低 validity、reference survival 或误差界,不算性能优化。

这些数字是样机门槛,必须在 reference devices 确定后由性能 ADR 固化:

  • UI 主线程不执行 kernel;交互期间连续 long task(大于 50 ms)为失败;
  • 静态 patch 检查的热路径目标为 p95 小于 50 ms;
  • cached RenderPacket 的选择反馈目标为 p95 小于 100 ms;
  • 参数拖拽必须在 150 ms 内显示状态或首个 coarse preview,不能无反馈等待权威重算;
  • 所有超过 500 ms 的任务必须显示进度并可取消;
  • browser worker 必须有经基准确定的 memory/triangle/cell hard cap;
  • benchmark 必须同时报告 p50/p95、cold/warm、峰值内存、输出质量和 cache hit;
  • 合并请求不得让固定 corpus 的 p95 时间或峰值内存无解释恶化超过 10%。
  1. AMIR schema、operation descriptor、adapter ABI、RenderPacket 和 Geometry Certificate 由版本及内容哈希区分语义。
  2. 当前项目未发布,只维护当前读写契约;旧版 schema/catalog 明确拒绝,不维护兼容窗口、迁移层或别名。
  3. 替换实现同批删除退役入口和重复分支;不静默重解释旧 Revision,也不把版本兼容用作付费限制。
  4. kernel upgrade 不自动改写 AMIR Revision;新执行产生新的 Evaluation、ExecutionManifest 和派生 artifact hash。
  5. 缺失或退役的 operation 必须返回可解释的能力/契约错误。当前原子提交、撤销重做与保存恢复保持正确。
  6. 能力发现使用明确契约,不根据 User-Agent 猜测能力;当前决定遵循产品宪法 §10。
  7. 跨组件语义变化更新相关规范与现有验证记录,不增加迁移验收体系。

以下是本 RFC 提议接受的架构决策;RFC 获批前状态均为 Proposed。

ADR 决策 理由 主要代价
ADR-001 canonical AMIR revision 是唯一 authoring source 可重放、可 diff、可迁移、适合 AI patch 需自研 schema、编译器和 formatter
ADR-002 每个 body 使用显式单一 geometry authority 阻止多表示静默漂移 跨表示操作需要显式 conversion
ADR-003 多内核经 versioned adapter 用 OCCT/Manifold/Field/solver 各自强项 conformance、路由和打包复杂
ADR-004 所有写入走 transaction engine AI、GUI、CLI 一致且可审计 简单 UI 操作也需事务开销
ADR-005 Rust 承担 compiler/transaction core WASM/native 共享、强类型、可控执行 团队需维护 Rust + TS + C++ 构建
ADR-006 kernel 在 worker/进程隔离 生命周期、取消、OOM/crash recovery 序列化和跨边界成本
ADR-007 SemanticRef + ArtifactGraph,禁止 index identity 支持重建、来源和可解释失败 引用解析与历史映射投入较大
ADR-008 Geometry Certificate 是提交/导出证据 让 AI 和回归系统知道保证边界 验证耗时与 schema 维护
ADR-009 Three.js 只做 viewer 避免渲染结构污染建模语义 需要 Render Bridge 与 picking map
ADR-010 所有转换显式并带损失报告 防止精度与意图静默丢失 用户/AI 需要处理更多决策
ADR-011 revision/event + content-addressed artifacts 原子历史、去重、可回放 GC、索引和迁移更复杂
ADR-012 WebGL2 基线,WebGPU/TSL 渐进增强 兼容性与基本正确性独立 两条预览路径需要回归

以下问题不阻塞 RFC 的总体方向,但必须在对应 phase 前关闭:

  1. OCCT browser custom build 的 capability 分包边界、压缩体积和冷启动预算是多少?
  2. OCCT LGPL exception 在目标应用商店、WASM 下载和离线桌面分发中的具体合规方案是什么?是否需要商业许可?
  3. Replicad 仅作 spike、长期 fork,还是直接过渡到自研最小绑定?
  4. PlaneGCS WASM 在拖拽、过约束、冗余、大尺度差异和初值敏感方面是否达到验收线?
  5. OCCT history/OCAF/BRepGraph 中哪些信号进入 ArtifactGraph,怎样避免把内部 UID 当产品 ID?
  6. Field 首版 authoritative evaluator 采用解释器、WASM codegen 还是两者;何时引入 Fidget/OpenVDB 类后端?
  7. Geometry Certificate 的几何距离/自相交算法由哪个 adapter 或独立 validator 承担?
  8. browser、native、server 哪一个是项目的默认 authoritative execution policy?
  9. 多人分支合并是 AST 三方合并、operation rebase,还是 intent-aware merge;几何冲突如何呈现?
  10. plugin ABI 使用 WIT/Component Model、JSON-RPC 还是自定义 typed binary protocol?
  11. 本地隐私模式下 AI 的 prompt、replay bundle 和遥测默认保留策略是什么?
  12. STEP AP242 属性、PMI、assembly 和 feature information 的首版保留范围是什么?
  13. OpenUSD 是否只承载大型场景组合,还是需要 AMIR assembly ↔ USD layer 的双向映射?
  14. Phase 0B reference devices、模型复杂度档位和性能 hard caps 的正式数值是什么?

长期阶段依赖与外部调研裁决由 Aira 长期架构计划 统一维护;当前开发必须先完成 Aira Core MVP 实施计划。以下阶段是递进关系,Phase 0A 未通过时不得以评测框架、OCCT、SDF、约束或格式生态扩张替代产品纵向闭环。

Phase 0A:Aira Core MVP(当前主线)

Section titled “Phase 0A:Aira Core MVP(当前主线)”

交付:

  • Rust/WASM 最小语义 core;
  • 六个 capability descriptor:cap:primitive.box@1、cap:primitive.cylinder@1、 cap:transform.translate@1、cap:boolean.union@1、cap:boolean.subtract@1、 cap:parameter.set@1;它们分别 lower 到 mesh.box、mesh.cylinder、mesh.transform、 mesh.boolean.union、mesh.boolean.difference 和 Patch op parameter.setValue;
  • 带完整 settings、ParameterRef/PortRef、Body authority 与 Body root 的最小 AMIR,以及 typed Patch、Candidate、immutable Revision、canonical hash、authoritative validation 与 CAS commit;
  • Manifold worker、RenderPacket 与 Three.js viewer;
  • IndexedDB local revision storage、.aira.json round-trip 与删除 cache 后重放;首版允许完整 DAG 重算,不把 dirty-subgraph 增量求值作为 Gate;
  • interface.manifest、catalog.search/describe、model.read/proposePatch/preview/validate/commit/revert 九个原生元操作;model.query/plan.check 可以合并 transport,但不得跳过语义检查;
  • 一个无 Skills、无 CAD 状态、provider-neutral 的 AI gateway/adapter;模型密钥只保存在 服务端,gateway 只转发模型请求/结构化响应;tool call 回到浏览器后按 snapshot/grant 执行, 几何、事务、Revision 和渲染默认留在浏览器;
  • prompt/command、viewport、参数、Patch diff/Diagnostic、Preview/Validate/Commit 与 history/revert 的最小 UI;
  • 与 committed Revision 绑定的 ExecutionManifest、EvaluationBinding 与 Geometry Certificate;
  • 接入现有 Inspect 基础设施的三条真实产品回归。

验收:

  1. 从空文档创建 box/cylinder boolean 零件并显示;
  2. 参数修改生成新 Revision,几何稳定重建;
  3. 删除派生 cache 后可由 AMIR 完整重放;
  4. 单位、引用、boolean、stale base 或权限失败时零部分写入;
  5. preview 或失配/过期的 validation token 不能提交,每个 commit 有完全绑定的权威证据;
  6. Three.js/Manifold 对象不进入 authoring source;
  7. 未预装 Aira 知识或 Skills 的模型只通过原生元操作完成创建、修改和 revert;
  8. provider API key 不进入浏览器 bundle、storage、日志或 AMIR;
  9. 三条 Inspect 产品回归可重复运行。

明确排除: OCCT、SDF、constraint solver、完整 SemanticRef、STL/STEP/3MF/GLB 几何出口、 assembly、dirty-subgraph 优化、Harbor/CADTestBench gate 和大规模 capability benchmark。

Phase 0B 只有在 Phase 0A 全部通过后开始。

交付:

  • Three.js Viewer + Render Bridge;
  • Model Service 与统一 transaction API;
  • canonical AMIR schema、20 个核心 node、单位/类型、stable ID、hash;
  • proposePatch/preview/validate/commit/revert/export;
  • Replicad/opencascade.js OCCT worker;
  • manifold-3d worker;
  • 最小 Field IR 与 Manifold LevelSet bake;
  • constraints adapter mock 与 PlaneGCS spike;
  • ExactSolid、MeshSolid、Field3D、DisplayMesh 和显式 conversion;
  • ArtifactGraph v0、SemanticRef cardinality、Geometry Certificate v0;
  • STEP、3MF、GLB 出口;
  • browser 本地 revision/CAS/cache;
  • 固定几何、安全和性能 corpus。

验收:

  1. 删除 cache 后,同一项目能从 AMIR 和 import blobs 完整重放。
  2. Three.js scene、BREP/GLB 文件均不参与 revision authoring hash。
  3. UI 和 AI 对同一操作生成相同 schema 的 patch,并通过同一事务路径提交。
  4. 修改单一参数只执行 dirty subgraph;未改变 artifact 保持 hash。
  5. preview 与 commit 绑定相同 candidate/manifest,precondition 变化能阻止提交。
  6. 至少展示一次 ExactSolid → MeshSolid 和 Field3D → MeshSolid 的显式损失证书。
  7. selector 缺失/歧义、单位错误、无界 Field、超预算和 worker crash 返回稳定 code。
  8. viewer picking 能追溯到 AMIR node/port,不保存 triangle index 为长期引用。
  9. STEP、3MF、GLB 导出均产生绑定 blob hash 的 certificate/loss report。
  10. 性能 corpus 记录 cold/warm、p50/p95、内存、输出规模和质量;达到第 25.3 节门槛或有获批 ADR。

交付:

  • 约束草图与 DOF/conflict 诊断;
  • extrude、revolve、sweep、loft、boolean、fillet、chamfer、shell;
  • OCCT history 映射、SemanticRef 多阶段解析和 source map;
  • 几何/拓扑/质量属性 query;
  • feature-ID segmentation 和诊断高亮;
  • STEP AP242 import/export、healing 与 round-trip suite;
  • native worker 原型。

验收:

  1. 参数 sweep 导致面/边 split、merge、delete 时,benchmark 中的 SemanticRef survival 达到团队设定阈值;其余必须明确 missing/ambiguous,零静默误选。
  2. 约束系统正确报告 fully/under/over constrained、DOF、residual 和冲突候选。
  3. fillet/shell/boolean 失败通过统一 Diagnostic 的 at、details 和受限 fixes 提供 node、entities、已知事实与可执行恢复动作。
  4. STEP round-trip 在单位、解析 surface/curve 类型、颜色/名称范围和带界几何误差内通过 corpus。
  5. browser 与 native adapter 对相同 AMIR 通过同一 certificate conformance checks。
  6. 完成 OCCT 分发许可证与 SBOM 审核。

交付:

  • 完整 Field IR 类型、bounds、sign、Lipschitz/距离性质;
  • CPU/WASM authoritative evaluator;
  • TSL/WebGPU 交互预览和 WebGL2/mesh fallback;
  • 自适应 quality budget;
  • Manifold bake、smooth blend、lattice、gyroid、warp;
  • Field/Mesh provenance 与制造检查;
  • geometry distance/采样误差验证。

验收:

  1. TrueSDF 与一般 ImplicitField 在类型和允许 operation 上不可混淆。
  2. 无界/超预算 field 在执行前拒绝,所有运行任务可取消且不污染 commit。
  3. GPU preview 与 authoritative bake 的差异由证书量化;超阈值不能提交或导出。
  4. Field → Mesh 的 bounds、edgeLength、iso、sign、maxCells、误差全部进入 artifact identity。
  5. provenance 能从 mesh component/triangle range 回到 Field feature,丢失部分被显式报告。
  6. 固定 corpus 的 Hausdorff/采样距离、manifold、自相交、内存和时间达到批准预算。

交付:

  • package registry、签名、SBOM 和 capability catalog;
  • TypeScript builder SDK、CLI、LSP;
  • AI 结构化自修复与持续 benchmark;
  • server authoritative worker pools;
  • assembly、variant、branch/collaboration;
  • OpenUSD 与服务端 OpenVDB/Fidget 等后端评估;
  • 可复现 build worker image。

验收:

  1. 第三方插件无法直接访问 revision DB、raw kernel handle 或伪造 certificate。
  2. 卸载插件后旧 revision 可读,缺失 capability 有稳定错误与恢复路径。
  3. local/native/server 对同一 operation descriptor 通过协议和证书 conformance。
  4. 多租户配额、隔离、审计、取消、故障注入和数据删除测试通过。
  5. AI benchmark 同时报告创建、inspect、edit、validate、repair,而非只看 text-to-mesh 图片相似度。
  6. assembly/variant/协作语义通过独立 RFC;OpenUSD 仍不替代 AMIR feature graph。

本 RFC 可从 Proposed 转为 Accepted,当且仅当:

  1. 团队确认第 5 节核心不变量;
  2. AMIR、Transaction、Evaluation、Adapter、ArtifactGraph、Certificate 和 RenderPacket 均有 v0 schema;
  3. 至少一个 OCCT 和一个 Manifold prototype 通过相同 adapter conformance harness;
  4. 演示端到端流程:AI/GUI patch → preview → validate → commit → viewer picking → export certificate;
  5. 能证明删除所有派生 BREP/mesh/GLB/cache 后可重建;
  6. 主要许可证、WASM 分发和插件供应链风险有 owner;
  7. Phase 0B reference devices、corpus 和性能 budget 通过独立性能 ADR;
  8. Open Questions 中 Phase 0B blocker 已关闭或有明确实验与截止日期。

采用 AMIR + transaction engine 作为产品中心,而不是把任一几何库或渲染格式包装成产品中心:

  • OCCT 提供 ExactSolid;
  • Manifold 提供 MeshSolid 与首版 Field bake;
  • 自研 Field IR 提供隐式建模语义;
  • 自有 constraints abstraction 隔离具体 solver;
  • ArtifactGraph 和 SemanticRef 提供跨重建身份;
  • Geometry Certificate 提供可验证保证边界;
  • Three.js 提供高质量交互视图;
  • revision/event store 保存设计历史,CAS 保存可删除、可重建工件。

这使 AI 面对的是稳定、有限、可解释的建模语言和事务协议,而不是脆弱的 UI 自动化、任意脚本或庞杂内核 API。