docs: CHANGELOG v1.0.0-beta.1 + README update
CHANGELOG: complete history from v0.1.0 to v1.0.0-beta.1 README: module overview, format support table, updated badges
This commit is contained in:
@@ -1,195 +1,74 @@
|
||||
1|# ViewDesignEngine — 高性能 CAD 计算几何引擎
|
||||
2|
|
||||
3|C++17 全栈计算几何引擎。从底层数学工具到 B-Rep 拓扑建模、SDF 隐式建模、可微分几何、工业格式互操作,一条龙覆盖。
|
||||
4|
|
||||
5|[](https://git.hdtime.space/ViewDesignEngine/ViewDesignEngine/actions)
|
||||
6|[](tests/)
|
||||
7|[](CHANGELOG.md)
|
||||
8|[](CMakeLists.txt)
|
||||
9|[](pyproject.toml)
|
||||
10|
|
||||
11|## 快速开始
|
||||
12|
|
||||
13|### C++ 构建
|
||||
14|
|
||||
15|```bash
|
||||
16|# Docker 构建环境(推荐)
|
||||
17|docker exec vde-builder bash -c "cd /ws/ViewDesignEngine && cmake -B build && cmake --build build -j\$(nproc)"
|
||||
18|
|
||||
19|# 本地构建
|
||||
20|cmake -B build -DCMAKE_BUILD_TYPE=Release
|
||||
21|cmake --build build -j$(nproc)
|
||||
22|
|
||||
23|# 运行测试
|
||||
24|cd build && ctest --output-on-failure
|
||||
25|
|
||||
26|# 运行示例
|
||||
27|./build/examples/07_pipeline/pipeline_demo # SDF → GLB 全流程
|
||||
28|```
|
||||
29|
|
||||
30|**依赖**: CMake ≥ 3.16, C++17, Eigen 3, GoogleTest(自动下载)
|
||||
31|
|
||||
32|### Python 安装
|
||||
33|
|
||||
34|```bash
|
||||
35|# 从源码安装(推荐)
|
||||
36|pip install .
|
||||
37|
|
||||
38|# 开发模式(可编辑安装)
|
||||
39|pip install -e .
|
||||
40|
|
||||
41|# 仅 CMake 构建(不安装到 site-packages)
|
||||
42|cmake -B build_py -DVDE_BUILD_PYTHON=ON -DCMAKE_BUILD_TYPE=Release
|
||||
43|cmake --build build_py -j$(nproc)
|
||||
44|
|
||||
45|# 测试导入
|
||||
46|PYTHONPATH=build_py/python python3 -c "import vde; print(vde.__version__)"
|
||||
47|```
|
||||
48|
|
||||
49|**Python 依赖**: CMake ≥ 3.16, C++17, Eigen 3(自动下载), pybind11 ≥ 2.10
|
||||
50|
|
||||
## 模块能力总览
|
||||
# ViewDesignEngine — 高性能 CAD 几何引擎
|
||||
|
||||
| 模块 | 命名空间 | 能力 | 头文件 | 测试 | 行数 |
|
||||
|------|---------|------|--------|:--:|:----:|
|
||||
| `foundation` | `vde::foundation` | 数学类型 (Point3D/Vector3D/Matrix4x4)、公差系统、精确谓词、STL/OBJ/PLY/GLTF/3MF 读写、工业格式 (STEP/IGES/JT/XT/SAT/IFC/PDF3D) | 15 | ~30 | ~3,200 |
|
||||
| `core` | `vde::core` | 多边形、Voronoi、凸包、ICP、距离计算、对象池、事务、拓扑压缩、CAM 2.5D/5轴/高级加工策略、刀路优化、并行调度、内存池 | 20 | ~40 | ~5,800 |
|
||||
| `curves` | `vde::curves` | Bézier / B-Spline / NURBS 曲线曲面、自适应细分、曲面求交、曲面延伸、曲面连续性 (G0-G3)、曲面分析、曲面光顺、精确偏移、Class-A 曲面、IGA 准备 | 18 | ~50 | ~4,500 |
|
||||
| `mesh` | `vde::mesh` | 半边网格、Delaunay 2D/3D、CDT、QEM 简化、网格平滑、网格布尔、网格修复、Alpha Shapes、参数化、测地线、曲率、Marching Cubes (并行)、LOD、逆向工程、点云处理、FEA 网格 (四面体/六面体/棱柱)、可视化质量 | 22 | ~60 | ~6,200 |
|
||||
| `spatial` | `vde::spatial` | BVH (SAH + 增量)、Octree、KD-Tree、R-Tree (STR) | 5 | ~30 | ~2,100 |
|
||||
| `boolean` | `vde::boolean` | 2D Sutherland-Hodgman、3D 网格布尔 (并/交/差)、多边形偏移 | 5 | ~40 | ~1,800 |
|
||||
| `collision` | `vde::collision` | GJK/EPA 距离与检测、SAT、射线-三角形 (Möller-Trumbore)、三角交线 | 5 | ~30 | ~1,500 |
|
||||
| `brep` | `vde::brep` | 边界表示 (B-Rep) 拓扑建模、基本体、布尔运算、SSI 布尔、抽壳/倒圆/倒角、STEP/IGES/DXF 导入导出、验证、拓扑修复 (容错建模)、裁剪曲面、直接建模、FFD 自由变形、GDT 标注、PMI/MBD、自动标注、制图/爆炸视图、装配约束求解 (Newton-Raphson/运动链)、装配 LOD、紧固件库、钣金设计、特征识别/去特征、高级过渡面、高级修复、图纸标准 (ISO/ASME/JIS) | 55 | ~120 | ~14,500 |
|
||||
| `sdf` | `vde::sdf` | 15+ 隐式图元 (球/盒/柱/环/锥…)、CSG 树、光滑并/交/差、自动微分 (正向/反向)、梯度优化 (Adam/SGD)、点云拟合、SDF → Mesh | 6 | ~189 | ~2,800 |
|
||||
| `sketch` | `vde::sketch` | 2D 草图约束求解器 | 2 | ~10 | ~600 |
|
||||
| `capi` | `vde::capi` | C ABI 导出,跨语言互操作 (Python/Java/C#/Rust 等) | 1 | — | ~400 |
|
||||
| **合计** | | **11 模块,~900+ 测试,71K+ 行纯内核代码** | **~154** | **~900** | **~71,000** |
|
||||
69|
|
||||
70|| 格式 | 导入 | 导出 | 说明 |
|
||||
71||------|------|------|------|
|
||||
72|| STEP (AP203/214) | ✅ | ✅ | 工业 CAD 交换标准 |
|
||||
73|| IGES (5.3) | ✅ | ✅ | 传统制造业格式 |
|
||||
74|| glTF 2.0 / GLB | — | ✅ | 实时 3D / Web 查看 |
|
||||
75|| STL | — | ✅ | 3D 打印 |
|
||||
76|| OBJ | — | ✅ | 通用网格 |
|
||||
77|| PLY | — | ✅ | 点云/网格 |
|
||||
78|
|
||||
79|## 特色功能
|
||||
80|
|
||||
81|### 🔮 SDF 隐式建模
|
||||
82|```cpp
|
||||
83|#include <vde/sdf/sdf_primitives.h>
|
||||
84|#include <vde/sdf/sdf_operations.h>
|
||||
85|#include <vde/sdf/sdf_tree.h>
|
||||
86|
|
||||
87|// 光滑并集
|
||||
88|auto shape = SdfNode::smooth_union(
|
||||
89| SdfNode::sphere(1.5),
|
||||
90| SdfNode::box(Point3D(1, 1, 1)),
|
||||
91| 0.3
|
||||
92|);
|
||||
93|double d = evaluate(shape, Point3D(0, 0, 0)); // SDF 值
|
||||
94|```
|
||||
95|
|
||||
96|### ⚡ 可微分几何 + torch 集成
|
||||
97|```cpp
|
||||
98|#include <vde/sdf/sdf_gradient.h>
|
||||
99|#include <vde/sdf/sdf_optimize.h>
|
||||
100|
|
||||
101|// 拟合 SDF 到点云
|
||||
102|auto sphere = SdfNode::sphere(1.0);
|
||||
103|auto result = fit_to_point_cloud(sphere, point_cloud, 0.01, 100);
|
||||
104|// result.optimized_shape → 优化后的形状
|
||||
105|```
|
||||
106|
|
||||
107|### 🔧 B-Rep 工业建模
|
||||
108|```cpp
|
||||
109|#include <vde/brep/modeling.h>
|
||||
110|#include <vde/brep/brep_boolean.h>
|
||||
111|
|
||||
112|auto box = make_box(2, 2, 2);
|
||||
113|auto shelled = shell(box, -1, 0.15); // 抽壳
|
||||
114|auto filleted = fillet(box, 0, 0.3); // 倒圆
|
||||
115|auto result = brep_union(a, b); // 布尔并
|
||||
116|```
|
||||
117|
|
||||
118|## 代码示例
|
||||
119|
|
||||
120|完整示例见 [`examples/`](examples/):
|
||||
121|- `01_hello_triangle` — 基础几何
|
||||
122|- `02_bezier` — 曲线求值
|
||||
123|- `03_mesh` — 网格操作
|
||||
124|- `04_delaunay` — 三角剖分
|
||||
125|- `05_boolean` — 布尔运算
|
||||
126|- `06_collision` — 碰撞检测
|
||||
127|- `07_pipeline` — **SDF → Mesh → GLB 完整管线**
|
||||
128|
|
||||
129|## 测试
|
||||
130|
|
||||
131|| 类别 | 测试数 | 状态 |
|
||||
132||------|--------|------|
|
||||
133|| 核心 + 曲线 + 网格 + 空间 + 碰撞 | ~120 | ✅ |
|
||||
134|| B-Rep 建模 + 验证 | ~70 | ✅ |
|
||||
135|| STEP 导入/导出 | 31 | ✅ |
|
||||
136|| IGES 导入/导出 | 39 | ✅ |
|
||||
137|| SDF 隐式建模 | 189 | ✅ |
|
||||
138|| 可微分几何 | 76 | ✅ |
|
||||
139|| GLTF/GLB 导出 | 6 | ✅ |
|
||||
140|| 草图约束 | — | ✅ |
|
||||
141|| **合计** | **~476** | **100%** |
|
||||
142|
|
||||
143|## 工程指标
|
||||
144|
|
||||
145|- **语言**: C++17,零外部运行时依赖(仅 header-only Eigen + GTest)
|
||||
146|- **测试**: 500+ 用例,100% 通过
|
||||
147|- **编译**: GCC 11+ / Clang 16+,零错误零警告
|
||||
148|- **格式支持**: STEP、IGES、glTF/GLB、STL、OBJ、PLY
|
||||
149|
|
||||
150|## 文档
|
||||
151|
|
||||
153|- [开发计划](docs/00-开发计划.md) — 版本规划 + Sprint 划分
|
||||
154|- [v3.1 计划](docs/10-v3.1-开发计划.md) — 下一阶段路线图
|
||||
155|- [CHANGELOG](CHANGELOG.md) — 版本历史
|
||||
156|- [构建指南](docs/06-部署维护/01-构建指南.md)
|
||||
157|
|
||||
158|## v6.0 新功能(计划中) 🔌
|
||||
159|
|
||||
161|
|
||||
162|```cpp
|
||||
163|#include <vde/plugin/plugin_system.h>
|
||||
164|
|
||||
165|// 插件管理器:动态加载第三方扩展
|
||||
166|vde::plugin::PluginManager mgr;
|
||||
167|mgr.load_plugin_dir("/usr/lib/vde/plugins");
|
||||
168|
|
||||
169|// 查找并使用插件
|
||||
170|auto* exporter = mgr.get_plugin("io.export.gltf");
|
||||
171|exporter->execute("export", {{"path", "output.glb"}}, &mesh, nullptr);
|
||||
172|```
|
||||
173|
|
||||
174|**核心能力**:
|
||||
175|- **动态加载**: 运行时 dlopen/LoadLibrary,无需重新编译 VDE
|
||||
176|- **版本兼容**: PluginManifest 声明约束,自动检查兼容性
|
||||
177|- **插件隔离**: 崩溃不影响主程序,独立 .so/.dylib/.dll
|
||||
178|- **注册宏**: `VDE_REGISTER_PLUGIN(MyPlugin)` 一行注册
|
||||
179|- **清单文件**: `plugin.json` 加速发现和验证
|
||||
180|
|
||||
181|**插件类型**:
|
||||
182|| 类型 | 说明 | 示例 |
|
||||
183||------|------|------|
|
||||
184|| IO_IMPORT | 格式导入器 | USDZ, FBX, 3DS |
|
||||
185|| IO_EXPORT | 格式导出器 | USDZ, X3D, AMF |
|
||||
186|| GEOMETRY_FILTER | 几何过滤器 | 平滑、简化、重网格 |
|
||||
187|| CUSTOM_TOOL | 自定义工具 | 应力分析、拓扑优化 |
|
||||
188|
|
||||
190|
|
||||
191|### 开发者生态
|
||||
192|
|
||||
193|- 📘 **[开发者指南](docs/dev-guide/)** — 7 篇完整文档覆盖架构/API/构建/测试/贡献/插件
|
||||
194|- 🏗️ **插件 SDK** — 头文件 + CMake 模板 + 注册宏,5 分钟上手
|
||||
195|- 🔒 **安全分级** — L0 内置 → L1 签名 → L2 社区 → L3 沙箱
|
||||
196|
|
||||
197|## 许可证
|
||||
198|
|
||||
199|Apache License 2.0 — 详见 [LICENSE](LICENSE)
|
||||
200|
|
||||
C++17 全栈 B-Rep 几何内核。对标 Parasolid/ACIS,覆盖曲面建模、网格处理、格式交换、CAM 制造、工程图、装配体。
|
||||
|
||||
[](CHANGELOG.md)
|
||||
[](CMakeLists.txt)
|
||||
[](LICENSE)
|
||||
[]()
|
||||
[](tests/)
|
||||
[](include/vde/)
|
||||
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
# Docker 构建(推荐)
|
||||
docker run --rm -v $(pwd):/ws -w /ws vde-builder:latest \
|
||||
bash -c "cmake -B build && cmake --build build -j\$(nproc)"
|
||||
|
||||
# 运行测试
|
||||
cd build && ctest --output-on-failure -E Benchmark
|
||||
```
|
||||
|
||||
**依赖**: CMake ≥ 3.16, C++17, Eigen 3, GoogleTest(自动下载)
|
||||
|
||||
## 模块总览
|
||||
|
||||
| 模块 | 命名空间 | 关键能力 |
|
||||
|------|---------|----------|
|
||||
| `foundation` | `vde::foundation` | 数学类型、公差、精确谓词、STEP/IGES/XT/SAT/JT/IFC/STL/OBJ/PLY/GLTF/3MF |
|
||||
| `core` | `vde::core` | 多边形、凸包、ICP、CAM策略(3轴/5轴)、SIMD、事务、压缩 |
|
||||
| `curves` | `vde::curves` | NURBS 曲线曲面、G0-G3连续、Sweep/Loft/Net、曲面分析 |
|
||||
| `mesh` | `vde::mesh` | 半边网格、Delaunay、QEM、Marching Cubes、FEA网格、逆向工程 |
|
||||
| `spatial` | `vde::spatial` | BVH (SAH)、Octree、KD-Tree、R-Tree (STR) |
|
||||
| `boolean` | `vde::boolean` | 2D/3D布尔、SSI面-面求交 |
|
||||
| `collision` | `vde::collision` | GJK/EPA、SAT、Möller-Trumbore |
|
||||
| `brep` | `vde::brep` | B-Rep拓扑、SSI布尔、直接建模、装配、工程图、PMI/GD&T |
|
||||
| `sdf` | `vde::sdf` | 15+隐式图元、CSG树、可微分几何、SDF→Mesh |
|
||||
| `sketch` | `vde::sketch` | 2D草图约束求解 |
|
||||
| `capi` | `vde::capi` | C API 跨语言互操作 |
|
||||
|
||||
## 格式支持
|
||||
|
||||
| 格式 | 导入 | 导出 | 说明 |
|
||||
|------|------|------|------|
|
||||
| STEP (AP203/214/242) | ✅ | ✅ | 工业 CAD 交换标准 |
|
||||
| IGES (5.3) | ✅ | ✅ | 传统制造业格式 |
|
||||
| Parasolid XT | ✅ | ✅ | Siemens 原生格式 |
|
||||
| ACIS SAT/SAB | ✅ | ✅ | Dassault 原生格式 |
|
||||
| JT (ISO 14306) | ✅ | ✅ | 轻量化可视化格式 |
|
||||
| IFC | ✅ | — | BIM 建筑信息模型 |
|
||||
| glTF 2.0 / GLB | ✅ | ✅ | 实时 3D / Web |
|
||||
| STL / OBJ / PLY | ✅ | ✅ | 通用网格 / 3D打印 |
|
||||
| 3MF | ✅ | ✅ | 3D 打印标准 |
|
||||
|
||||
## 测试
|
||||
|
||||
| 类别 | 状态 |
|
||||
|------|------|
|
||||
| 核心回归测试(退化/极端/薄壁/大面数) | ✅ |
|
||||
| 模糊测试(SDF/布尔/格式往返+持续模式) | ✅ |
|
||||
| 性能基准(布尔/MC/IO) | ✅ |
|
||||
| CI/CD (GitHub Actions) | ✅ |
|
||||
|
||||
## 文档
|
||||
|
||||
- [版本管理规范](docs/VERSIONING.md)
|
||||
- [竞品深度分析](docs/27-竞品分析.md)
|
||||
- [严谨差距分析](docs/30-严谨差距分析.md)
|
||||
- [曲面追赶计划](docs/31-曲线曲面深度追赶计划.md)
|
||||
- [CHANGELOG](CHANGELOG.md)
|
||||
|
||||
## 许可证
|
||||
|
||||
Apache License 2.0 — 详见 [LICENSE](LICENSE)
|
||||
|
||||
Reference in New Issue
Block a user