合并 #2

Open
xiao-ke wants to merge 26 commits from macos into master
Owner
No description provided.
xiao-ke added 21 commits 2026-07-14 14:01:53 +08:00
9923e06cc6 Port to macOS: fix Windows paths, IP, and shell syntax
- main.py: point BAMBU_SKILL_DIR to in-repo bundled skill
- static/prompt.js: Mac paths, hardcode printer IP 172.20.10.6,
  convert PowerShell blocks to bash (python3)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22bbed5dbd Add 换装 generation pipeline (Meshy adapter, mock-first)
- generate_3d.py: combo→three-views→Meshy multi-image→STL; --mock + preset
  cache + single-image (--image) mode; API key from env or gitignored .meshy_key
- compose_views.py: layered three-view compositing (graceful degrade)
- combos.json: 24 combos (6 clothes × 4 accessories)
- static/prompt.generate.js: generation prompt + 24-combo cards (no printer)
- main.py: /api/download serves STL, new /api/qr endpoint
- .gitignore: exclude .meshy_key / .secrets.json

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33becd8049 生成半:单视图输入 + STL 高度归一化到 ~10cm
- combos.json: views 改为仅 front(前端只出正视图,Meshy 接受 1~4 张)
- compose_views.py: 按 combos.json 的 views 合成(默认三视图,当前 front)
- generate_3d.py: 产出 STL 等比缩放到最长边≈100mm(--max-mm,默认 100)
- prompt.generate.js: 文案更新(合成视图 / 约 10cm)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
a735c83854 docs: 标注 macos 分支仅含生成半、基于 macOS 本地化开发
本分支只负责 3D 模型生成(换装升维)这一半;3D 打印半由同事在 master 维护,
暂不同步进来。详见 BRANCH_NOTES.md。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
98390c6926 生成半接线:DIY 换装前端接入 Meshy 升维引擎(端到端跑通)
- 从 updata 引入 DIY 页面+素材(customize/preview_diy/takeaway/select + xixi_diy 6×6 全套合成图)
- combos.json: 6×6 搭配注册表(合成图直喂升维模型)
- generate_3d.py: --combo→预渲染合成图直喂 Meshy、--task-id 写实时进度、缓存、~10cm 归一化
- 三页接线(连 gateway 触发生成 / 轮询真实进度 / 真二维码),不改视觉
- main.py: /api/download 发 STL、新增 /api/qr 出二维码、挂载 templates 为静态页、
  新增 /api/gateway-token(前端动态取本机 token,不写死)
- gateway.js: 连接时从 /api/gateway-token 取 token(token 不再写死进仓库)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22ed9847f2 改用 select.html 作为统一入口,删除废弃的 index.html
- 删除旧打印单页 index.html(新前端 select.html 已含打印/换装两半)
- main.py: "/" 路由指向 select.html
- takeaway.html: 返回首页指向 select.html

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
c5632acaf5 对齐 master 换装规模到 7×7 + 搬入素材
- combos.json: 6×6 → 7×7(衣/配各 0-6,0=经典原皮/卸下配饰)
- static/xixi_diy: 更新到 master 的全套 49 张合成图 + 缩略图
- customize.html: 采用 master 的 7×7 UI,重新贴上生成接线(gateway/generate/QR)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7c5c30fff8 二维码下载服务:现场可用(自动局域网 IP)+ /ips 图片挂载
- main.py /api/qr: 自动探测本机局域网 IP 编码二维码(localhost 打开也可用),
  支持 OC3D_PUBLIC_BASE 覆盖(隧道/外网),响应头 X-Download-URL 便于核对
- main.py: 挂载 /ips → 曦曦IP/IP换装(select 右半门面图,Codex)
- 曦曦IP/IP换装/3.png(Codex,占位)
- TODO.md:给协作 Aery 的项目说明
- .gitignore: 忽略 .DS_Store

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
e50183c314 云下载:STL 上传阿里云 OSS,二维码指向公网链接(现场无惧网络)
- generate_3d.py: 配了 .oss.json 则上传 OSS + 生成预签名 URL 写入 task_state;
  没配则回退局域网。凭据只从 gitignore 的 .oss.json 读,不进仓库。
- main.py: /api/qr 优先编码 OSS 公网链接;/api/download 有云链接则 302 跳转 OSS
- .oss.json.example: 配置模板(endpoint/bucket 已填,密钥占位)
- .gitignore: 忽略 .oss.json

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1f9db17cfd 对齐 master 换装到 6×6(衣/配各 0-5)+ 修 GEN_PYTHON
- static/xixi_diy: 重置为 master 的 36 张合成图(7×7→6×6,删旧拉新)
- combos.json: 6×6,名称随 master 重新编排
- customize.html: 采用 master 新 6×6 页面 + 重贴生成接线
- prompt.generate.js: 固定 GEN_PYTHON 到带依赖的解释器(修 Agent 默认 python 缺 requests);mock 默认开

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0f12a7a7d2 TODO: 新增一体机接入(本地升维模型)计划
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
af31bdb16c 下载改为 bundle(模型+正视图)、no-cache 中间件、一体机运维脚本入库
- generate_3d.py: STL 与生成时的正视图打包成 bundle.zip 再上传/下载
- main.py: 新增开发期 no-cache 中间件(防止浏览器缓存旧版前端脚本导致
  改了 GEN_USE_MOCK 却仍在跑旧逻辑);/api/download 优先发 bundle.zip
- static/prompt.generate.js: 加载时打印 mock 状态诊断日志;GEN_USE_MOCK=false
- .oss.json.example: bucket 改名为 my-3d-assets(阿里云换了账号)
- scripts/: 新增运维脚本目录,纳入三个 .command 脚本
  - 启动OC3D换装Demo.command / 停止OC3D换装Demo.command(原在桌面,未入库)
  - 启动一体机TripoSG容器.command(新增:SSH+免密 sudo 一键拉起一体机容器)
- README.md: 补充脚本清单的写死路径、一体机运维一节(静态 IP 持久化 +
  精确授权 sudoers 规则,换机器/换一体机时的恢复步骤)
- TODO.md: 更新一体机现状记录

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
59f48bf8be TODO: 打印侧接入清单(master/updata 调研,明天开工用)
- 逐文件核对 master 与本地差异,标注哪些可直接复制、哪些需合并重写
- static/prompt.js 需要的不只是路径修改,是架构升级(动态数据 + 非阻塞后台监控)
- main.py 合并范围比预期小:master 已把打印指令执行移到 Agent 侧,无需合并复杂后端逻辑

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bd452a5281 打印半接入 macos 分支:两条路径合一,可在同一台设备完整运行(中期审查版本)
关键节点:换装升维(右半)+ 唤醒经典打印(左半)首次在同一个后端/前端上
端到端跑通,为今日中期审查准备。

- ips/list.json: 拿 master 版真实数据覆盖(4 只真实猫咪模型)
- static/3D/: 补上 4 个真实 .gcode.3mf 模型文件
- templates/: 引入 select_classic/preview_classic/printing_classic/
  finish_classic + index/print/printing/finish 占位页(均为纯前端,
  无写死路径,master 版可直接用)
- static/prompt.js: 不是简单套用 master 模板,而是采纳其架构升级后
  重写——buildPrintPrompt(modelName, taskId, modelFile) 新签名;监控
  改非阻塞后台(PowerShell Start-Process → bash nohup+disown),解决
  Agent 长阻塞命令的超时风险;路径/打印机信息保留我们自己验证过的值
  (不采用 master 同事的 Windows 路径和测试网络 IP)
- scripts/更新打印机连接信息.command: 现场打印机换网络/访问码重置时,
  双击即可更新 static/prompt.js 里的 PRINTER_IP/ACCESS_CODE,带 IP 格式
  校验、自动备份、当前值展示,不用手动改代码或等待协助
- .gitignore: 补充 *.bak(脚本自动备份文件不进仓库)

main.py 未改动——/api/list-ips、/ws/task/{id} 均已支持,StaticFiles 挂载
自动服务新增页面,无需新增路由。generate_3d.py/换装半功能不受影响
(已回归验证)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7b39e69034 落地首页接入 + 打印半模板重构 + 一体机接入 TODO
首页从 select.html 改为新增的 index.html(先落地介绍页,再点进 select.html
枢纽选择打印/换装两条路径),启动脚本同步更新提示文案;
printing_classic.html 随打印半接入同步大改;新增 AIO_TODO.md 供后续窗口
接手"一体机本地升维模型替换 Meshy"专项工作。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
121d9f5e02 新增 360° 转台预览渲染流程(黑/白帧序列 + 拖动播放器)
离线用 trimesh+matplotlib 把未切片原始网格渲染成黑/白两色 37 帧透明 PNG,
前端配一个自动旋转+手动拖动的帧序列播放器,用来替换 preview_classic.html
里"正/侧/背"按钮切图的静态展示方式(先在独立的 preview_classic_test.html
里验证效果,尚未接入正式页面)。目前只渲染了弹簧小猫;render_turntable.py
支持后续渲染云朵小猫/戒指小猫/CatKeychain。static/turntable/README.md
写了给同事的接入教程。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
e715b2c4ea 移除 preview_classic_test.html 出仓库,仅作本地效果验证用
这只是验证转台预览效果的临时测试页,不是要合并进正式页面的产物,
本地留着继续用但不进版本库。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fe6a630abc 补齐云朵小猫/戒指小猫/CatKeychain 转台预览,修复朝向 bug
三个模型都渲染了黑白两色 37 帧,跟弹簧小猫同规格。顺带修了个朝向问题:
CatKeychain 建模时的局部朝向(立着做)跟摆盘打印时的朝向(转平)不一致,
之前脚本只取原始网格、没套用场景图里的变换矩阵,渲染出来是建模朝向、猫是
歪的。现在渲染前会应用对应实例的变换矩阵,CatKeychain 转正了;另外三个
模型的变换矩阵本来就是纯平移没有旋转分量,不受影响。

抽稀部分之前处理戒指小猫(96万顶点)时也补了两段抽稀的优化,这次一并生效。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
04c97d564f 升维改纯视觉演示 + 经典打印选色对应 + 打印目录迁移
对齐 updata:换装 DIY 不再调 OpenClaw/一体机升维(模型未达预期),
customize→preview_diy 直接跳转、写死假进度条,preview_diy 展示三视图切换。
- customize 主预览与 preview_diy 三视图统一取 static/3D(36 张新 3D 正视图);
  侧/背视图尚未扣好,缺图经 onerror 回退到 static/images/view_placeholder.png,
  现有 5 张真实侧/背一并纳入。
- 经典打印:preview_classic 按预览选中的黑/白拼对应颜色切片名传去打印;
  ips/list.json 增加 models{黑,白} 映射。
- 打印切片目录从 static/3D 迁到 static/3D_model(static/3D 改放 DIY 正视图),
  相应更新 prompt.js STOCK_DIR 与 main.py STOCK_PRINT_3MF。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
xxhefei added 1 commit 2026-07-14 14:12:20 +08:00
xxhefei added 1 commit 2026-07-14 17:06:02 +08:00
9678086a16 前端对齐 updata 设计 + DIY 资源切回 xixi_diy + 图片优化
- 前端整体对齐 updata 视觉与文案:品牌名统一"龙虾套餐: 体验多智能体协作"、
  "速印工坊"→"经典速印";index/select 整份同步 updata,select_classic 采用
  updata 放大布局并保留选色传参(tt/mb/mw)。
- 删除弃用的 static/3D;customize 主预览改用 2D 合成图 static/xixi_diy/,
  preview_diy 三视图改用 static/xixi_diy/3D/(补入大批侧/背视图,缺图占位兜底)。
- takeaway 预留 OSS 打包下载接口(按 combo 拼 diy/{c}_{o}.zip,OSS_READY 开关)。
- 同步 updata 压缩优化的 17 张图 + 补 2 张缺图(修复向导猫断图)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
xxhefei added 1 commit 2026-07-14 19:12:06 +08:00
xxhefei added 1 commit 2026-07-14 19:47:45 +08:00
1b81fda7dd 接入预制二维码 + 修复 AMS 映射参数空格
- takeaway/preview_diy 换成预制静态二维码方案:takeaway 直接显示
  static/qr/{c}_{o}.png(36 张已入库),离线可用、不依赖 CDN;去掉
  DIY takeaway 里不搭的"查看打印进度"按钮,只留"结束/返回首页"。
- 打印稳定性根因修复:prompt.js 生成的 --ams-mapping 用等号而非空格
  (值以 -1 开头,空格会被 argparse 误判成另一个选项导致命令失败/卡住);
  printing_classic.html 的 prompt.js 缓存版本 bump 到 v=7 确保生效。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
xxhefei added 1 commit 2026-07-15 14:01:31 +08:00
This pull request has changes conflicting with the target branch.
  • README.md
  • ips/list.json
  • main.py
  • static/images/cat.png
  • static/images/cat_guide.png
  • static/images/cat_guide_mir.png
  • static/images/cat_think.png
  • static/images/xixi_question_1_transparent.png
  • static/prompt.js
  • static/xixi_diy/3D/0_cloth_o1.png
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b macos master
git pull origin macos

Step 2:

Merge the changes and update on Gitea.
git checkout master
git merge --no-ff macos
git push origin master
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xiao-ke/OC3D#2
No description provided.