简体中文 · English
工业增材制造的「FORGE·X 仿真 × 数据分析」双引擎应用:
- FORGE·X 仿真:深蓝灰工程网格空间中央是结构可信的工业级打印机,内置四款可切换机型——FX-256 睿造(CoreXY 封闭式,三丝杆下沉热床)/ FX-220 轻锋(i3 龙门,热床前后走位)/ FX-Δ260 迅影(Delta 并联臂,逆解联动)/ FX-500 巨匠(工业大幅面龙门,四角丝杆升降)——「模型」面板一键切换,实时演示切片路径规划、喷头沿路径运动、材料逐层沉积、支撑结构与内部填充逻辑;
- 智造洞察:对生产数据做自然语言分析——机台故障归因、材料失败率对比、层高相关性、成本趋势拆解,KPI 看板 + 图表 + 可执行建议,分析结论可一键定位回 3D 视口(视口联动)。
UI 采用浅色毛玻璃浮动卡片——3D 视口即舞台,面板按需展开、用完即收。
零依赖直开:双击 index.html 即可运行(无需服务器、无需联网),洞察面板使用本地演示分析引擎。
带后端运行(推荐,仍然零依赖):
node server/index.js # 或 npm start
# 打开 http://127.0.0.1:8787 —— 前后端同源,洞察面板自动切换后端引擎,
# 并解锁「生成分享页」能力;无需 npm install。部署上线:仓库已备齐 render.yaml(Render Blueprint 一键部署)与 Dockerfile(Fly.io / Railway / Zeabur / 自建主机),
上线后用 node tests/deploy-check.js https://你的域名 一键验收全链路(健康检查 / 静态资产 / 分析 SSE / 分享页)。
后端引擎双模:未配置 InfiniSynapse 密钥时为后端演示引擎(复用本地分析逻辑,产物同构);
在 server/.env(参照 server/.env.example)配好 INFINI_API_KEY 并置 INFINI_VERIFIED=1 后,
自动切换 InfiniSynapse 云端真实分析(接口契约已于 2026-07 实测核准:SSE 事件流 + 多步 SQL 聚合 + 结构化报告 + 产物文件),前端零改动。
浏览器兼容:Chrome / Edge / Firefox / Safari 及 360、QQ、搜狗等国产双核浏览器(极速模式)均可运行;
- 渲染层基于 three.js r152,WebGL2 不可用时自动回退 WebGL1(旧集显 / 虚拟机 / 远程桌面均可打开,视觉一致、性能略降);
- 已内置双核浏览器
renderer=webkit声明,避免落入 IE 兼容内核; - 渲染器按「抗锯齿 → 无抗锯齿 → 保守参数」逐级重试创建,最大化老显卡开机率;
- 大致下限:Chromium 58+ / Firefox 54+ / Safari 11+(ES2017 基线)。更旧的内核会收到明确的升级提示页而非白屏。
也可用本地服务器:
python -m http.server 8080
# 打开 http://localhost:8080| 区域 | 内容 |
|---|---|
| 顶部流程胶囊 | 模型(含摆放变换)· 切片 · 校准 · 质量 · 洞察,点击展开左侧浮动卡片,再点收起 |
| 智造洞察面板 | 数据接入(示例/上传 CSV/模拟采集)、KPI 看板(任务数/良率/良品均本/重点机台)、自然语言提问、分析报告与图表、分析历史、3D 视口联动定位 |
| 参数浮层(右上按钮) | 一键工艺预设(精细/标准/草稿/强度)、材料体系(PLA/PETG/ABS/TPU 联动)、层高、周界、填充、温度、速度、回抽、风扇、支撑 |
| 底部控制 Dock | 进度环、开始/暂停/停止、当前层、剩余时间、喷嘴/热床温度速览 |
| 监控浮层(Dock 波形按钮) | 温度实时曲线、耗材余量、设备负载、事件日志、故障演练注入 |
| 全屏 3D 视口 | FORGE·X 打印机仿真 + 逐层打印动画,左键旋转 / 右键平移 / 滚轮缩放,三个相机预设(总览/喷头/俯视) |
顶部「洞察」打开分析面板,自然语言提问,秒级产出「结论 + 图表 + 建议」:
- 典型问题:哪台机故障率最高 / PLA 与 PETG 在悬垂件上的失败率差多少 / 层高与打印时长的相关性 / 本月成本趋势 / 失败批次共性归因;
- 数据接入三通道:内置 96 条示例生产数据开箱即用;上传自己的 CSV(中英文表头宽松匹配、支持成本元↔分自动换算);每次模拟打印完成/故障中止自动采集为「模拟采集」数据集(自洽闭环:不带任何外部数据也能体验完整分析链路);
- 视口联动:分析定位到问题机台后,一键在 3D 视口中定位(相机切换 + 状态灯闪烁提示);
- 引擎三档:
file://直开 → 本地演示引擎(零依赖);node server/index.js→ 后端演示引擎(同构产物 + SSE 进度 + 分享页);配好 InfiniSynapse 密钥并核准接口 → 云端真实 AI 分析。逐级增强,前端零改动(见js/api-client.js与doc/开发文档.md§8); - 报告分享:后端模式下分析报告可一键生成公开分享页(服务端渲染、24 小时有效);
- 金额一律以「分」为最小单位整数存储,展示层转元,避免浮点误差。
「模型导入」面板支持拖拽上传 PNG / JPG / WebP:
- 浮雕模式:图像亮度映射为表面高度(类 Lithophane),适合照片与图案;
- 剪影模式:按亮度阈值提取主体轮廓整体挤出,适合 Logo 与图标;
- 可调成品宽度(40–140mm)、最大高度、明暗反转,修改后自动重新切片并可直接开始模拟打印。
- 真实切片管线:周界偏置 → 奇偶规则扫描线填充(45°/135° 交替)→ 顶底实心层 → 悬垂区支撑 → 首层裙边;切片面板滑块可在 3D 视口中直接预览任意层的真实挤出路径(与 2D 预览同源数据);
- 温控惯性模型(一阶滞后 + 过冲 + 噪声),预热 → 3×3 自动调平 → 逐层打印 → 完成的全状态机;
- 校准是真实数据链:每台机型有固有的床面误差场(确定性)→ 9 点探针实测(日志值即采样值)→ 拟合 5×5 补偿网格 → 打印时按喷头位置双线性插值实时补偿 Z(首层全量、6mm 内渐隐);未调平直接打印会得到真实的首层不均匀度警告;
- 温度 / 速度 / 风扇支持打印中实时调整;几何参数打印中锁定(与真实切片器行为一致);
- 故障演练与真实检测链:断料 / 堵料为传感器直报;热失控演练注入的是「加热器失效」这一物理扰动——温度按热惯性真实下跌,由热失控监测器(偏差 >15°C、无回升、持续 3s,参考 Marlin 保护语义)凭实测偏差自行发现并切断加热,排障恢复期间回温不误报;
- 质量评估双视图:打印前参数预估(随参数实时推导)+ 打印后成品实测报告——温度偏差积分、调平残差、故障/暂停/调参实录、变速时间占比全部来自本次打印的真实遥测。
「模型」面板「导出下载」支持三种格式:
| 格式 | 内容 |
|---|---|
| STL(二进制) | 成品三角网格,含当前缩放,Z-up,可直接进 Cura / PrusaSlicer 重切片 |
| OBJ(ASCII) | 通用三维格式,建模/渲染软件可直接打开 |
| G-code(Marlin 风格) | 由真实切片路径生成:温度、归位、调平、逐层 XY/E/F、回抽/回填、风扇控制,挤出量按 ⌀1.75 耗材换算(ΣE 与切片统计守恒,经测试断言核验) |
| 模型 | 特点 |
|---|---|
| 行星齿轮 | 26 齿 + 中心孔 + 4 减重孔,双段轮廓(齿体 + 轮毂凸台) |
| 涡轮叶轮 | 7 叶片连续扭转(每层截面动态计算),展示复杂机械零件切片 |
| 传感器支架 | 顶部法兰悬空 >60°,演示支撑结构的生成与作用 |
纯前端零构建:three.js r152(已本地化于 js/vendor/,UMD 版保证 file:// 直开;r152 为官方完整支持 WebGL1 自动回退的最后版本,兼容面最大)+ 原生 JS 经典脚本。
index.html 布局骨架
css/style.css 设计系统「蓝图玻璃」(深蓝灰工程网格底 + 浅色毛玻璃卡片 + 橙色点缀)
js/util.js 工具库(热惯性模型、噪声、事件总线等)
js/orbit.js 自研轨道控制器
js/slicer.js 切片引擎(多边形偏置 / 扫描线填充 / Marching Squares,纯逻辑可测)
js/models.js 内置参数化模型 + 图片→高度场模型
js/printer3d.js 打印机程序化建模与打印动画(管束渐进揭示 + 裁剪面固化 + 切片路径3D预览)
js/scene.js 渲染器 / 中性影棚环境光 / 深蓝灰工程网格地面
js/sim.js 仿真状态机(运动执行 / 温控 / 床面误差场与调平补偿 / 耗材 / 故障 / 运行遥测 / 质量预估与实测)
js/exporter.js 成品导出引擎(二进制 STL / OBJ / Marlin G-code,纯逻辑可测)
js/insight-data.js 洞察数据层(示例数据生成 / CSV 解析导出 / 数据集管理,纯逻辑可测)
js/insight-engine.js 本地演示分析引擎(意图识别 / 聚合统计 / 报告生成,与后端产物同构)
js/api-client.js 自有后端 API 客户端骨架(healthz 探测 / 分析任务 / SSE,后端上线即切云端)
js/insight.js 智造洞察面板(数据接入 / KPI 看板 / 提问 / 报告图表 / 视口联动 / 分享)
js/ui.js 流程胶囊 / 浮动面板 / 底部 Dock / 监控浮层与交互
js/main.js 启动引导
server/ 自有薄后端(Node ≥18 原生 http,零 npm 依赖,详见 doc/开发文档.md §8)
index.js 启动 / 路由 / CORS / 限流 / 静态托管(node server/index.js)
routes/… analyze(SSE 进度)/ datasource / knowledge / share
services/… infini(唯一持密钥处)/ local-engine / analysis / 存储
.env.example 环境变量说明(密钥只进 server/.env,已被 .gitignore 排除)
doc/开发文档.md 大赛开发文档(InfiniSynapse 集成设计 / 后端设计 / 里程碑)
doc/samples/print_jobs_sample.csv 示例生产数据(96 行,可直接上传体验)
tests/smoke.js 切片引擎冒烟测试(node tests/smoke.js,32 项断言)
tests/sim-calib.test.js 仿真核心测试:调平数据链 / 遥测 / 实测质量(33 项断言)
tests/exporter.test.js 导出引擎测试:STL/OBJ 结构 / G-code 语义与挤出守恒(24 项断言)
tests/insight.test.js 洞察数据与分析引擎测试(node tests/insight.test.js,35 项断言)
tests/server.test.js 后端契约测试(node tests/server.test.js,44 项断言)
tests/check-refs.js DOM id 引用交叉校验(node tests/check-refs.js)
tests/deploy-check.js 部署后线上冒烟(node tests/deploy-check.js <公网URL>,10 项断言)
tests/infini-smoke.js InfiniSynapse 连通/任务冒烟(--task 发起真实云端任务并打印事件序列)
package.json npm start / npm test 统一入口(仍零 npm 依赖)
render.yaml Render Blueprint 一键部署配置
Dockerfile 容器化部署(Fly.io/Railway/Zeabur/自建主机通用)
npm test # 一键跑下面六个本地套件(零依赖,无需 install)
node tests/smoke.js # 切片引擎:几何工具/填充/等值线/三模型切片/变换,32 项断言
node tests/sim-calib.test.js # 仿真核心:床面误差场/调平数据链自洽/全流程状态机/遥测与实测质量,33 项断言
node tests/exporter.test.js # 导出引擎:三角提取/二进制 STL 结构/OBJ/G-code 语义与挤出量守恒,24 项断言
node tests/insight.test.js # 洞察:示例数据/CSV 解析回环/统计聚合/意图识别/报告结构,35 项断言
node tests/server.test.js # 后端契约:healthz/数据源/分析+SSE/知识库/分享页/限流/路径穿越,44 项断言
node tests/check-refs.js # HTML ↔ JS 的 DOM id 引用交叉校验
node tests/deploy-check.js https://你的域名 # 部署后线上冒烟:健康检查/资产/分析端到端/分享页- 本平台为模拟器:不连接实体打印机(可导出真实 G-code / STL / OBJ 到实体切片与打印工作流);
- 蜂窝填充图案在视觉上以斜线网格呈现;
- 建议桌面端 ≥1280px 宽度使用(16:9 布局最佳);
- WebGL 被系统策略禁用(如企业管控、无显卡驱动且禁用软渲染)时无法运行,会给出明确提示;
- Chromium <84 的旧内核上部分间距略有退化(flex gap 不支持),不影响功能。