打开网易新闻 查看精彩图片

OpenGeometry 是一个开源浏览器原生 CAD 几何内核,核心引擎用 Rust 编写编译为 WebAssembly,搭配 Three.js 友好的 TypeScript 封装层。支持参数化建模、布尔运算、B-Rep 拓扑,可导出 IFC/STL/STEP 等格式。项目处于活跃开发中,特别适合 AI 辅助 CAD 场景。

v0.0.7

最新版本

小白先看懂:这个项目是干什么的

这是给谁用的?开发者、AI 创业团队、AEC(建筑工程)软件公司、Web CAD 工具构建者。如果你在浏览器中构建需要精确几何运算的 3D 工具,或者想搭建一个 text - to - CAD 工作流,这是你的基础设施。

它解决什么问题?在浏览器中进行精确 CAD 建模过去只能依赖 WebGL 的三角网格凑合,或者把计算丢到服务器上。OpenGeometry 把 Rust 编译到 WebAssembly,让复杂几何计算在浏览器里跑出接近原生性能,支持真正的 B - Rep 拓扑和布尔运算。

●浏览器内参数化建模工具

●AI 辅助 CAD,text - to - CAD 工作流

●AEC/BIM 建筑信息模型查看器

●产品配置器、在线自定义设计工具

项目概况

Stars: 271 · Forks: 36 · Watchers: 3

语言: Rust · 许可证: MPL - 2.0

创建: 2024 - 08 - 22 · 最后推送: 2026 - 05 - 05

npm 版本: 2.0.10 · 月下载: 1,335

主要贡献者 aka - blackboots 提交了 112 次 commit,是项目核心开发者项目仍需 1 个 open issue,小而精,活跃度高。

核心技术架构

分层架构OpenGeometry 采用 Rust 核心引擎负责所有几何计算和 B - Rep 构建,wasm - bindgen 实现互操作,TypeScript 封装层提供 Three.js 集成。计算与渲染完全解耦。

B - Rep 拓扑— 支持 Vertex、HalfEdge、Edge、Loop、Face、Wire、Shell,配备安全构建器

WASM 编译— wasm - pack build --target web,生成 opengeometry_bg.wasm

数据流— TS Wrapper → WASM → Rust → JSON + Typed Arrays → Three.js

功能亮点与能力矩阵

2D 图元— Line、Arc、Curve、Polyline、Rectangle、Polygon

3D 实体— Cuboid、Cylinder、Sphere、Wedge、Sweep、Openings

布尔运算— Union(并)、Intersection(交)、Subtraction(差)

导出格式— STL、STEP、IFC(实验性)、PDF 投影

渲染集成— Three.js(主)、Babylon.js 和 WebGL 封装开发中

AI CAD:最佳实战场景

OpenGeometry 是 AI 辅助 CAD 的理想底层。社区已经有 demo 用 OpenAI Codex + OpenGeometry 做 text - to - CAD:输入"生成一个 10 米 x 8 米的矩形平面,中间有一个 3 米 x 2 米的开口",AI 代理直接调用 API 生成可编辑的 CAD 模型。不需要 Revit,不需要 AutoCAD,浏览器里跑完所有计算。

text - to - CAD 工作流AI 生成 OpenGeometry API 调用 → WASM 执行几何运算 → Three.js 实时预览 → 导出 IFC/STL

快速上手

npm install opengeometry

import { Cuboid, OpenGeometry, Vector3 } from "opengeometry";await OpenGeometry.create({ wasmURL: new URL( "node_modules/opengeometry/opengeometry_bg.wasm", import.meta.url ).href,});const cuboid = new Cuboid({ center: new Vector3(0, 0, 0), width: 2, height: 1, depth: 1, color: 0x33aa66,});

前置: Node.js + npm + Rust 1.89.0+ + wasm - pack

构建: npm install → npm run build - core → npm run build

本地开发: npm --prefix main/opengeometry - three run dev - example - three

开发阶段与社区

状态: 早期开发中 版本: v0.0.7 (2025 - 10 - 08)Stars: 271 Fork: 36Issues: 1 最后推送: 2026 - 05 - 05

项目小而精,尚未大规模普及但社区反响积极。Reddit 上有多篇讨论,开发者对 Rust + WASM 的浏览器 CAD 方案很感兴趣。Discord 社区活跃,有专门的 #text - to - cad 频道。

FIX注意事项

vs Three.js 裸写— OpenGeometry 有真正的 B - Rep 内核和布尔运算,不是三角网格凑合

vs 云 CAD— 全客户端计算,无服务器延迟,确定性更强