Repository navigation
Highlights
3dModMatchV3 是一套 3D 鞋模(shoe mold)与粗胚(blank)的最优匹配系统。核心匹配算法以 C++ 实现,通过遗传算法(GA)在三维搜索空间中寻找体积最小、包裹率最高的匹配方案。上层提供 Electron 桌面应用,集成 Flask 后端与 Three.js 3D 预览。
本次为项目首个正式发布版本。
Features
匹配算法引擎(C++)
- 遗传算法优化:同时搜索纵向位移(±50mm)、绕纵向轴旋转(±180°)、横向位移(±30mm)三个自由度
- 空间加速结构:BVH(Bounding Volume Hierarchy)加速射线-三角形求交,KD-tree 加速最近面查询
- 评估指标:体积包裹率(wrapping ratio)+ 96% 分位数表面间隙(clearance)
- OpenMP 多线程:种群适应度并行评估,线程数自动适配 CPU 核心数
- 早停机制:连续 4 代无包裹率提升即终止,或达到目标包裹率(默认 96%)时提前退出
- 迭代回放:记录每代最佳适应度、参数、耗时,供前端可视化回放
桌面应用(Electron + Flask)
- 粗胚管理:分类树结构、批量上传、分类重命名、拖拽分类
- 鞋模匹配:上传鞋模 → 选择粗胚分类 → 配置 GA 参数 → 执行匹配,支持并发任务控制与进度轮询
- 3D 预览:Three.js 渲染 target + candidate 双模型,使用二进制
.binprev格式传输几何数据,支持轴向显示与 orbit 交互 - 匹配历史:按鞋模分组展示、详情钻取、采纳功能、CSV / Excel 导出
- 数据看板:系统状态总览
- 深色模式:支持明暗主题切换
- 参数持久化:GA 参数通过 localStorage 跨会话保持
文件格式支持
- .3dm(Rhino 3DM):通过
rhino3dm库解析,支持 Mesh / Brep 自动网格化 - .stl(新增):通过
trimesh库解析,自动合并重复顶点、修复法线方向;统一 mesh loader(load_mesh.py)按后缀派发
CI/CD
- GitHub Actions 自动构建 macOS(ARM)+ Windows 安装包
- Tag push(
v*)触发 draft Release,附带构建产物
Supported Platforms
| 平台 | 架构 | 产物 |
|---|---|---|
| macOS | Apple Silicon (ARM) | .dmg |
| Windows | x64 | .exe(NSIS installer) |
| Docker | linux/amd64 | docker-compose 运行 |
Windows 版本已修复 GBK 编码、Win XP 兼容性、Win 11 兼容性等多项平台问题。
Installation
- 在本页面 Assets 区域下载对应平台安装包:
- macOS:下载
.dmg文件,双击挂载后拖入 Applications - Windows:下载
.exe文件,运行 NSIS 安装向导
- macOS:下载
- 首次启动时应用会自动启动内嵌的 Flask 后端服务
- 如需 Docker 环境运行匹配命令行工具,请参考仓库
docs/目录下的使用指南