Skip to content

IvanCodesDev/ForgeX

Repository files navigation

FORGE·X 智造洞察 — 3D打印仿真与数据分析

简体中文 · 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.jsdoc/开发文档.md §8);
  • 报告分享:后端模式下分析报告可一键生成公开分享页(服务端渲染、24 小时有效);
  • 金额一律以「分」为最小单位整数存储,展示层转元,避免浮点误差。

图片转3D打印(核心特性)

「模型导入」面板支持拖拽上传 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 不支持),不影响功能。

About

AI-powered production data-analysis app for 3D-printing (additive manufacturing) factories — ask in plain language, InfiniSynapse runs multi-step SQL and returns findings, charts & actions; a built-in 3D-printer simulator serves as both data source and result visualization.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages