Orchidea CAD
统一 CAD 内核与工业仿真平台 —— 覆盖几何建模、渲染、仿真计算与制造工程化的端到端技术栈。
项目简介
Orchidea CAD 是 Orchidea 产品线中面向设计与仿真方向的根目录仓库,由两大子系统组成:
- orchidea-cad-engine — 下一代 AI-Native CAD 引擎,以 Rust 为核心、基于开源 CAD 生态全量复刻重构的几何内核与建模平台;
- orchidea-sim — 统一工业仿真平台,为 CAD、FEA、CFD、电磁、分子动力学等多域仿真提供统一的作业调度、数据管道与云原生服务。
两者协同构成”建模 → 仿真 → 制造”的一体化链路:cad-engine 负责参数化建模与几何内核,orchidea-sim 负责将模型送入各类求解器并在 HPC/云环境中调度执行。
目录结构
| 目录 | 说明 |
|---|---|
orchidea-cad-engine/ | Rust 工作区:CAD 引擎(几何内核 / 特征建模 / 渲染 / 服务) |
orchidea-sim/ | Python 工业仿真平台(API / gRPC / 队列 / SDK) |
infra/ | 企业级基础设施模块(租户隔离、事件总线、审计、RAG、工作流等) |
cankao/ | 开源参考项目集合(CAD/CFD/FEA/EDA/电磁等领域的对照实现) |
venv/ | 本地 Python 虚拟环境 |
outputs/ | 生成产物(模型渲染图等) |
orchidea-cad-engine —— Rust CAD 引擎
Rust 工作区(Cargo.toml 定义 workspace),按五层架构组织:L0 几何内核 → L1 渲染 → L2 引擎 → L3 服务 → L4 插件 → L5 应用。
核心 Crates
| Crate | 职责 |
|---|---|
oca-kernel | 几何内核:BRep / NURBS / STEP / IGES / OBJ 读写,布尔运算 / 倒角 / 抽壳 |
oca-engine | 引擎核心:文档 / 属性系统 / 撤销栈 / 约束求解 / 特征建模 / 草图 / 装配 |
oca-render | 渲染层:wgpu + egui,场景图 / BRep 网格化 / PBR / 拾取 |
oca-worker | 无头建模服务:gRPC + REST,参数化驱动 / 批量导出 / 缩略图 |
oca-skill-market | SkillPack(MCP Skill)注册、发现与安装 |
oca-assets | 材料 / 零件 / 机床 / 符号库 |
oca-components | 标准件 API:搜索 / 上传 / 下载 / 3D 预览 |
oca-biz | 商业化:授权 / 多租户 / 计费 |
oca-deploy | 部署架构:Docker Compose / Helm 生成 |
oca-docs / oca-qa | 产品文档 / 质量工程(格式 round-trip、并发、建模流水线测试) |
vcad-kernel-* | 内核算子库:math / geom / gpu / topo / primitives / raytrace / tessellate / cam / dfm / nurbs / booleans / constraints / sketch / sweep / step / text / drafting 等 |
vcad-slicer | 3D 打印切片(含成本分析与 DFM 检查) |
vcad-chat | 离线可用的对话流水线 |
vcad-crdt | 协作编辑 CRDT(HLC 时钟 + 分数索引) |
vcad-ffi / manifold-ffi / assimp-ffi | C/C++ FFI 绑定层 |
vcad-loon | Loon 语言运行时(见 lib/) |
构建与运行
cd orchidea-cad-engine
# 构建
cargo build --release
# 运行 GUI
cargo run -p oca-engine --bin orchidea-cad-gui
# 运行 CLI
cargo run -p oca-engine --bin orchidea-cad-cli
# 运行 Worker 服务(无头建模)
cargo run -p oca-worker
# Docker 全栈
docker-compose -f toolchain/docker/docker-compose.yml up -d
toolchain/ 提供多平台打包与发行配置:docker、homebrew、conda、nix、snap、fedora、libpack、bundle(Windows/MSI、macOS/DMG、Linux/AppImage)。
文档入口
- SPEC.md — 全量复刻规格说明书(架构 / 接口契约 / 验收标准)
- README.md — 引擎详细说明(模块清单 / 快速开始)
- THIRD_PARTY_LICENSES.md — 第三方许可清单
orchidea-sim —— 工业仿真平台
Python 实现的统一仿真平台(FastAPI + gRPC 双协议),将多域求解器抽象为统一作业模型,并提供企业级安全、可观测性与云原生部署能力。
核心能力
- 多域仿真:CAD、FEA、CFD、MBD、电磁、分子动力学等统一作业接口
- HPC 集群管理:跨 SLURM / PBS / LSF 集群的自动作业调度
- 自适应网格优化:AI 驱动的网格生成与收敛加速
- 数据管道:50+ 工程数据格式自动转换
- 实时协作:WebSocket 项目级实时协作
- 企业安全:RBAC / SSO / 审计日志 / 端到端加密
- 全链路可观测:Prometheus 指标、分布式追踪、结构化日志
模块结构
orchidea-sim/
├── core/ # 配置、依赖注入
├── app/ # 应用引导、健康检查、版本
├── api/v1/ # REST 接口(认证 / 作业)
├── auth/ # 认证引擎
├── cache/ # 缓存层
├── db/ # 异步 ORM、归档、Saga 事务
├── grpc/ # gRPC 服务
├── mq/ # 消息队列引擎
├── sdk/ # 客户端 SDK(Go)与 codegen
├── cli/ # 命令行工具
├── i18n/ # 国际化
└── docs/ # 文档(FMEA 等)
构建与运行
cd orchidea-sim
# 安装(生产)
pip install orchidea-sim
# 开发环境
make dev-install
# 启动服务(HTTP / gRPC / Worker 可独立运行)
python app.py # 全部服务
python app.py --http-only # 仅 HTTP API
python app.py --grpc-only # 仅 gRPC
python app.py --worker # 仅后台 Worker
# 测试与质量
make test
make lint
文档入口
- README.md — 平台详细说明(功能 / 快速开始 / SDK 示例)
- SPEC.md — 规格说明
- docs/fmea.md — FMEA 分析
2026-11 能力更新(v0.3.0)
- Headless GPU 渲染器(
crates/oca-render/src/headless.rs):离屏渲染颜色图与 16-bit 实体 ID 掩码并回读 CPU,建立像素→实体映射 - 视觉回解基础:颜色图交给视觉模型,掩码把检测结果回解到真实几何;配套
headless_smoke示例
2026-10 能力更新(v0.2.0)
- 解析几何内核:结构化
OffsetSurface、RollingBallSurface、SSI 解析交线(抛物线/双曲线/椭圆)、NURBS 升阶/降阶/去节点、解析面面积与去特征、B-rep 解析隐藏线消除、边界感知圆柱面网格化 - 精度修复:布尔包含判定改为闭式 ray×carrier + 裁剪环奇偶判定(修复切圆柱 13.01% 误差);圆柱布尔拒绝不满足解析轴向跨度前置条件的姿态
- 交换格式:STEP 写出解析边曲线(LINE/CIRCLE/ELLIPSE),STEP 读取支持 ELLIPSE/PARABOLA/HYPERBOLA,IGES type-128 保留 B-spline 面
- 精度边界:Steinmetz 等径垂直圆柱布尔仍为水密网格派生 B-rep(约 0.7% 多边形体积误差);平面-圆环截面仍为参数域采样
- DFM:12 类可制造性配置(CNC 三轴、注塑、压铸、砂型/熔模铸造、钣金、FDM、SLA、PCB 2/4 层、嘉立创、PCBWay)
版本信息
各子系统版本号以各自目录下的 VERSION / pyproject.toml / CHANGELOG.md 为准,本仓库不维护单一全局版本号。
许可证
详见各子目录 LICENSE 文件(orchidea-cad-engine/LICENSE、orchidea-cad-engine/LICENSE.LGPL、orchidea-sim/LICENSE 等)。