秋水云锻

Changelog

项目演进历程

从单页工具到工作流节点系统,从几何映射到物理模型 —— 记录每一次重要迭代

10
版本发布
75+
commits
~8500
行代码
14
工作流节点
v2.5 2026-05-16 组件重命名与工作流交互增强

组件重命名

  • 多路旋转→旋转 — 去掉"多路"前缀,简化组件名,中文/英文/i18n三处同步更新
  • 多路镜像→镜像 — 同上
  • 多路翻转→翻转 — 同上
  • 综合变换→变换 — 去掉"综合"前缀
  • 多路反转→颜色反转 — 语义更明确,从"反转"改为"颜色反转"

变换组件增强

  • 新增颜色反转选项 — 变换组件每路新增"颜色反转"复选框,可与旋转/翻转/镜像组合使用,实现组合变换
  • invertImage辅助函数 — 颜色反转算法 (255-R, 255-G, 255-B),供变换和颜色反转组件共用

增量刷新

  • 脏节点增量执行 — 改参数后只重新执行该节点及拓扑下游,上游缓存保持不重复计算
  • engine.run(dirtyNodeIds) — 接受脏节点列表,只跑排序中 ≥ 第一个脏节点的部分
  • 动态端口处理 — 端口数量变化(如路数改变)正确影响连线

框选多个组件

  • 画布框选 — 空白处按住拖拽画出选择矩形,松开后选中矩形内所有节点
  • 坐标变换 — 框选矩形正确处理画布平移/缩放坐标
  • 短距离忽略 — 拖动距离 < 5px 视为普通点击,清空选中

多选后拖动多个组件

  • 多选保持 — 拖拽已在多选中的节点时保持多选,所有选中节点一起移动
  • 选择逻辑 — 拖拽非选中节点 → 清空旧选择只拖这一个;Ctrl+Click 行为不变
v2.4 2026-05-15 UI模式斧劈Tab与锻压重构

UI模式斧劈Tab

  • 新增斧劈Tab — UI模式新增Cleave标签页,与工作流模式斧劈组件功能一致
  • 参数控制 — 扭曲幅度(0-100)、衰减范围(1-50)、劈开位置(10-90%)三个滑块
  • 变换操作 — 旋转90°、翻转、镜像三个按钮
  • 三路输出 — 全图结果 + 子图左/子图右两个平行四边形区域
  • 手机端适配 — FAB菜单新增斧劈入口,子图结果纵向排列

锻压组件 (Squash) 重构

  • 铁板物理模型 — 用正弦位移替代压缩映射,模拟铁板在锻压下的物理变形行为
  • 主锻压+子锻压统一 — 主锻压和子锻压使用相同的正弦位移模型,逻辑统一

斧劈组件修复

  • 出界像素透明化 — 全图劈缝处srcY<0产生的可见楔形空白改为透明,不再依赖输入内容

堆叠组件优化

  • n×1布局优化 — 移除1×n特殊布局,n×1改为逐图独立缩放至等宽,更灵活

新增颜色反转组件

  • 颜色反转 (ColorInvert) — 输入图片将颜色1和颜色2直接反转(255-R,255-G,255-B)后输出,支持1-n和n-n模式,每路可独立勾选
  • 组件重命名 — 多路旋转→图像旋转,多路镜像→图像镜像,多路翻转→图像翻转,综合变换→变换
v2.3 2026-05-14 斧劈组件与工作流增强

斧劈组件 (Cleave)

  • 子图输出改为平行四边形 — 输出子图左/右两个平行四边形区域,用clip-path裁剪而非映射为矩形,保留原始形状
  • 子图Y自适应 — 扫描2%-50%高度范围,自动选取面积最大的位置作为子图分割点,替代硬编码10%
  • 扭曲曲线线性衰减 — 在distNorm=decay处精确归零,边缘过渡更自然
  • 旋转参数 — 新增旋转角度控制,支持输出图像旋转

堆叠与平铺增强

  • 堆叠重力双向 — 支持向下和向左两个方向的重力排列,结果自动居中
  • 平铺重力 — 新增重力排列模式,count=1时支持单图输出
  • 长宽比条件化 — 根据输入图像长宽比自动调整排列策略
  • 平铺纵向排布 — 新增纵向排布选项,支持垂直方向排列
  • 平铺变形优化 — 长边拉伸、短边不变,0-20映射1.0x-3.0x变形范围

多路组件

  • 合并输入功能 — 网格视觉合并,标签优化,支持更灵活的输入组合

锻压组件 (Squash)

  • 等分次数参数 — opHalfHeight改为opDivisions等分次数(0-16),UI改为range滑块
  • 半图结果框自适应 — 移除max-height:110px限制,自适应图片高度
  • i18n翻译补全 — Divisions等分次数翻译完整
v2.2 2026-05-12 分辨率切换与自定义生成增强

分辨率切换

  • 四档分辨率选择 — 工具栏实时刷新右侧新增下拉选择,支持 极简380 / 标清1000 / 高清2000 / 极致3000,切换后下次运行生效
  • 默认分辨率从 380 提升至 1000,输出清晰度大幅提升

自定义生成增强

  • 输出宽度对齐分辨率 — 自定义生成组件输出宽度统一为当前分辨率值,高度按比例缩放(如钢块宽100mm,分辨率1000时输出宽度1000,高度放大10倍)
  • 多实例独立 — 修复多个自定义生成组件参数互相影响的问题(数组共享引用修复)
  • 最小层数放宽 — 从4降至2,支持更简单的2层结构

修复

  • 修复直接通过 #/workflow 进入时工作流组件不显示的时序问题
  • 修复工作流初始化竞态条件,switchMode 改为轮询等待 initWorkflow 定义

部署

  • 新增 www.knifewiki.cn 域名支持
  • 页面底部添加 粤ICP备2026057260号 备案信息
v2.1 2025-05-10 鼓形(Barreling)锻压算法

核心算法重构

  • 鼓形物理模型替换方圆投影 — 基于锻造摩擦学原理:上下模具摩擦约束材料横向流动,中间层(远离模具)流动量最大,形成 (1−y²) 抛物线位移剖面,替代 v1 的几何方→圆映射
  • 宽高比感知 — 变形强度 eps = 1 − min(W,H)/max(W,H) 根据输入尺寸自适应。m=n(方形)→ eps=0 无形变;m>n(扁宽)→ 压缩宽度无C纹;m<n(窄高)→ 压缩高度产生C纹
  • 锻压到方形 — warp 后缩放回 380×380 正方形,完成物理锻造工序,无需 v1 的截取+平铺
  • 半高锻压重做 — 减半 n 次:将锻好的正方形缩放到 1/2ⁿ 高度,再次应用鼓形锻压,子图×2ⁿ 堆叠。替代 v1 的简单裁剪+平铺
  • 自然尺寸保留 — 输入图片以实际尺寸加载参与锻压,不再强制缩放为正方形

随机扰动改进

  • 压缩轴感知扰动 — 正弦波扰动作用于压缩轴方向:宽坯料(newW>newH)扰动X轴(波纹沿Y变化);窄坯料(newH>newW)扰动Y轴(波纹沿X变化);半高锻压始终扰动Y轴
  • 偏锻/扭转节点保持默认Y轴扰动,向后兼容

对比演示页面

  • 新增 算法对比演示页 — 左右并排对比方圆投影(v1)与鼓形锻压(v2)的未裁剪输出;支持图片上传、旋转角度、预设条纹/方格演示

文档

  • 项目文档全面更新 — 新增鼓形算法原理详解(物理模型、数学推导、v1/v2对比表格)、压缩轴感知随机扰动说明、已解决问题清单
v2.0 2025-05-06 ~ 2025-05-09 工作流模式重构

架构重构

  • 项目重构 — 在保留 UI 模式完全一致的前提下,引入工作流层作为独立子系统,双模式并行运行
  • 三层架构:核心算法库 → 工作流子系统(引擎+画布+节点注册)→ UI 状态管理,层次分明
  • 模式切换 — 页面 header 增加 UI模式/工作流 双模式切换按钮,两种模式可以独立使用

工作流节点系统

  • 13 个节点类型 — 输入类(生成/自定义生成/上传)、操作类(锻压/偏锻/扭转/多路/平铺/分割)、复合类(堆叠)、辅助类(综合变换/图片查看器)
  • Blender 风格内嵌参数节点 — 节点上直接显示参数控件(滑块、选择、按钮),减少侧边栏切换
  • DAG 执行引擎 — 拓扑排序确定执行顺序,边传递数据,支持多路并行分支
  • 节点画布 — 拖拽节点、端口连线、缩放平移、多选操作

交互完善

  • Ctrl+多选组件 + 多选拖拽/复制粘贴/删除
  • L 键快速连线 — 循环填充逻辑,一键连接空端口
  • 输出端口建议菜单 — 点击空输出端口弹出推荐组件菜单+自动连线
  • 节点纵向调整大小 — 控制预览高度,预览图跟随缩放
  • 工作流 JSON 保存/导入 — 含缩放位置、收起状态的完整还原
  • 画布底部半透明按键指引水印
  • 默认加载示例工作流

问题修复

  • 修复连线连不上、连线被节点遮挡的问题
  • 修复卡片拖拽/参数对齐/连线断开 4 项交互问题
  • 修复多路组件的模式切换、端口数量和旋转镜像翻转功能
  • 子图高度修正为 (1/2)^n,移除多余中间切片
  • 上传组件上传后立即显示预览并自动运行

国际化 (i18n)

  • 完整中英文切换 — 侧边栏/状态栏/模式按钮/select选项全面覆盖
  • 统一中英映射表,消除所有英文残留
  • 「偏移」→「偏锻」术语修正
  • 说明文本书面化

UI 增强

  • Sidebar 品牌标识 + 标题更名为「秋水云锻」
  • 工具栏按钮重排 + 实时刷新指示灯(默认开启)
  • 自定义生成组件微调功能 + 「保存」改为「导出」
  • 堆叠组件优化 + 分割支持动态子图输出 + 综合变换方形缩放
v1.3 2025-04-18 移动端体验优化

移动端适配

  • 响应式布局重排 — 控件面板在窄屏下垂直排列,触摸友好的间距和字号
  • 触摸操作优化 — 滑块添加更大的触摸热区,卡片拖拽在移动端的体验改进,防止页面滚动与卡片拖拽冲突
  • FAB 菜单动画 — 弹性回弹曲线 cubic-bezier(0.34, 1.56, 0.64, 1),展开缩放效果,子项交错弹出/反向交错关闭
  • Grid-Cell 移动端交互 — 第一次点击即选中+显示清除按钮,移除双击需求

修复

  • Grid-Cell 清除按钮恢复正确标签(不再错误显示 "Drop image here")
  • Grid-Cell 图片旋转/翻转 CSS transform 实时同步
  • 移动端和桌面端双击行为统一(双击→填充到当前tab的source)
v1.2 2025-04-18 分割功能 & 格子操作

新功能

  • 分割 (Split) 功能 — 将图像按行/列切分为多个子图,支持 1-8 行、1-8 列自由组合,每个子图可独立拖入后续操作节点
  • Grid-Cell 系统 — 多路 (Multiway) 和平铺 (Tile) 使用网格单元格管理输入,每个格子独立支持拖入/清除/旋转/翻转
  • 多路变换传递 — 旋转/镜像/翻转操作完整传递到每个子图
v1.1 2025-04-17 工作区卡片系统

新功能

  • Card-Area 工作区 — 页面底部增加卡片区域,生成的中间结果自动保存为卡片,可拖拽卡片到任意 tab 的 source 位置,避免重复上传/生成
  • 卡片管理 — 支持移除、拖拽重排、添加新卡片时自动平滑滚动到末尾
  • 拖放交互 — 卡片拖入 tab 控件的 source 区域,自动填充并触发预览刷新
v1.0 2025-04-16 初始发布 · 单页锻压工具

初始功能

  • 参考项目 — 基于 dmt.msbpro.com 的大马士革纹路生成理念,实现独立的锻压模拟工具
  • Tab 式单页面界面 — 生成 (Generate) / 锻压 (Squash) / 偏锻 (Bias) / 扭转 (Twist) 四个核心操作标签页
  • 生成模块 — 支持横纹 (Layers)、方格 (Squares)、网格 (Grid)、渐变 (Gradient)、厚中心 (Thick Center) 五种样式;4-100 层可调;自定义双色
  • 锻压 (Squash)方圆投影算法 (SquareCircleProjection)inverse 方→圆映射产生C型弯曲,截取中间段+平铺模拟方形输出;支持旋转角度、减半次数参数
  • 偏锻 (Bias) — inverse→旋转→forward 双重变换,产生斜向扭曲
  • 扭转 (Twist) — 切片旋转拼接,模拟锻造扭转效果
  • 结果下载 — 每个结果卡片支持拖拽保存为PNG