Skip to content

Releases

v0.1.2 — 标定交互修复(等待实盘验证)

Choose a tag to compare

@NaiveTomcat NaiveTomcat released this 02 Nov 10:33
v0.1.2
1e872f4

Disc Image Studio 0.1.2 — 标定交互修复(预发布)

仍是 pre-release:没有任何一次真实烧录。0.1.2 只修交互,编码与文件系统行为不变。

安装

  1. 下载 DiscImageStudio-0.1.2.dmg(2.5 MB)
  2. 拖进「应用程序」,直接双击启动(Developer ID 签名 + 公证 + 已装订)
  • macOS 14+,仅 arm64
  • SHA-256:7aa1258346ebada2ccc357b58b64261fa602517d0989fb1d653ee6dca1bfd332

修了什么(0.1.1 → 0.1.2)

  1. 标定画布能缩放了:滚轮/捏合以光标为中心 0.25×–8×,空白拖动平移,双击复位,
    「适合窗口」按钮。任意缩放下拖点、加点都精确落在鼠标位置。
  2. 反推不再卡界面:后台执行 + 不确定进度条 + 可取消 + 完成后显示耗时;
    改了点之后回到的旧结果会被丢弃。
  3. 可以手动指定搜索范围:关掉自动扩大后填 ±0.005–1.0 mm;结果受边界限制时明确标「不可信」。
  4. 8192 px 合成图导出放后台:点击立即返回,有进度与完成路径,重复点击被忽略。

测试

全量 424 个用例通过(UI 105 / Core 102 / DVD 49 / CD 68 / BluRay 40 / Burning 60),
scripts/verify.sh 全过(含三介质 hdiutil 挂载)。

[0.1.2] — 2026-11-02 — 标定交互修复

修掉 0.1.1 里明显影响使用的四处体验问题。

修复

  • 标定画布可缩放/平移:滚轮与触控板捏合以光标为中心缩放(0.25×–8×),空白处拖动平移,
    双击复位,工具条「适合窗口」。坐标换算统一走 PhotoCanvasMapping / TraceCanvasMapping
    (letterbox + 缩放 + 平移),任何视口下拖点/加点都落在鼠标位置;缩放平移不改变会话里
    保存的照片像素坐标。
  • 反推不再卡主线程:放到后台执行,显示不确定进度条、禁用重复触发、可取消
    (CalibrationCrossFitter.fit(…, cancellation:) 新增 CancellationFlag 参数,检查点放在
    自动扩范围与每颗种子的边界),完成后显示耗时;会话/点变化后的过期结果自动丢弃。
  • 可手动指定搜索范围:关闭自动扩大后可填 ±0.005–1.0 mm(0.005 步进),非法值给中文错误;
    结果触及搜索边界时明确提示「不可信」。
  • 8192 px 合成图导出放后台:按钮立即返回,显示进度与完成路径,重复点击忽略,失败可读错误。

测试

  • UI 测试 92 → 105(新增视口坐标 round-trip、反推取消、手动范围校验、后台导出状态机)。
  • 全量 424 个用例通过。

v0.1.1 — 标定闭环(等待实盘验证)

Choose a tag to compare

@NaiveTomcat NaiveTomcat released this 02 Nov 10:12
v0.1.1
ac444df

Disc Image Studio 0.1.1 — 标定闭环(预发布)

仍是 pre-release:功能完整、已签名公证、可复现,但没有任何一次真实烧录。
这一版补上了「标定闭环」——拿到刻录机和 DVD-R 之后,先烧一张标定盘,就能把
这张盘片的真实内外半径与三次轨距测出来、写回工程,再去生成正式图案。

安装

  1. 下载 DiscImageStudio-0.1.1.dmg(2.4 MB)
  2. 打开,把 DiscImageStudio.app 拖进「应用程序」
  3. 直接双击启动(Developer ID 签名 + 公证 + 已装订,无需右键绕过 Gatekeeper)
  • 系统要求:macOS 14+,仅 arm64(Apple Silicon)
  • SHA-256:5007879413d7e4827e31bc1a0cc5ccc1aa962f8fa50e3fed96200acdaf415415

拿到硬件后的建议顺序

  1. discimage-cli calibration pattern --family dvd --preset dvd-5-120mm --out ~/cal
    (或 GUI 标定页「生成图案并保存记录」)→ 得到 calibration-pattern.png + .calibration.json
  2. 用这张图案生成 .iso 并烧到 DVD-R
  3. 拍照 → GUI 标定页导入照片 → 拖外缘/中心孔控制点 → 计算矫正
  4. 沿一条十字臂从内到外点曲线(DVD 三次轨距至少 12 点、覆盖 60% 径向宽度)→ 反推参数
  5. 对照橙色预测线确认后「应用标定参数」→ 工程头亮「参数已更新」
  6. 用更新后的几何重新生成图案并烧第二张盘,对比标定前后的差异

这一版新增

  • 标定闭环:图案生成(九环 + 十字线)、照片单应矫正、单曲线反推(内外半径 + 转角 + 三次轨距)、
    会话 .calibration.json(schema 6)、GUI 标定页、discimage-cli calibration pattern|fit
  • 测试 349 → 411

[0.1.1] — 2026-11-02 — 标定闭环

新增辅助标定闭环(优先于 DVD 求解器,因为图案的物理位置只能从盘面本身测出来)。

新增

  • DiscImageCore/Calibration(约 3,600 行 + 39 个测试)
    • 图案:内置 target_slim.png(九条细同心圆 + 十字线),按生成外半径缩放、按内半径裁切,
      与普通图片使用同一条坐标映射;可导出 2400×2400 PNG。
    • 照片矫正:把「盘片实体外缘(60/40 mm)」与「中心孔(7.5 mm)」两条同心圆联合拟合成
      一个单应矩阵;尺度来自盘片规格,不需要手量。
    • 单曲线反推:沿一条径向曲线从内到外点若干点 → 反推内外半径、整体转角与三次轨距系数
      (p0 由总轨长约束自动确定);同一条 trace 只允许一个整数圈偏移;搜索框 ±0.02 mm 起,
      落在边界时自动扩大到 ±0.1 / ±0.5 mm。
    • 判定门槛:平均偏差 > 0.35 mm 或最大 > 0.8 mm 的候选不可应用;输出 rms / max / 离群点。
    • 会话:.calibration.json(schemaVersion 6)保存生成快照 + 内嵌照片 + 轮廓点 + 曲线点。
  • GUI 标定页(从占位改为真流程):生成标定盘 → 导入照片 → 拖外缘/中心孔控制点 → 计算矫正 →
    在正视视图上点曲线 → 反推 → 橙色预测叠线 + 红点 + 候选切换 → 应用回工程(工程头提示「参数已更新」)。
  • CLI:discimage-cli calibration pattern|fit,可无界面生成标定图案/会话、从曲线点反推参数。

修复 / 改进

  • DiscImageCLI 增加 calibration 子命令帮助文本。
  • 测试总数 349 → 411(Core 102 / DVD 49 / CD 68 / BluRay 40 / Burning 60 / UI 92)。

仍未验证(与 0.1.0 相同)

真实烧录、实盘光学极性、图案在真盘上的对齐、镜头径向畸变与描点精度、单条曲线对三次系数的唯一性。


v0.1.0 — 首个预发布(等待实盘验证)

Choose a tag to compare

@NaiveTomcat NaiveTomcat released this 02 Nov 09:05
v0.1.0
70cbdab

Disc Image Studio 0.1.0 — 首个预发布

pre-release 的含义:功能完整、可复现、已签名公证,但没有做过任何一次真实烧录
(开发机没有刻录机,也没有空白光盘)。这一版是给「买好光驱和 DVD-R 之后做实盘验证」用的。

安装

  1. 下载 DiscImageStudio-0.1.0.dmg(2.1 MB)
  2. 打开,把 DiscImageStudio.app 拖进「应用程序」
  3. 直接双击启动即可(已用 Developer ID 签名、已公证并装订票据,不需要右键绕过 Gatekeeper)
  • 系统要求:macOS 14 或更新,仅 arm64(Apple Silicon)
  • SHA-256:26dd64ff616d72f0a7f66512de28ccab8c44bf0c46a06a8232fce80b70d6e877

这一版能做什么

  • 把图片编码进 CD / DVD / 蓝光 的盘面物理层,导出 ISO / WAV+CUE / RAW
  • 六页面 GUI:主页 / 设计(mm 画布 + 影调)/ 预览(极坐标盘面)/ 导出 / 刻录 / 标定
  • .discproj 工程文件(schemaVersion 2)
  • CLI:discimage-cli generate --family dvd --preset dvd-5-120mm --image in.png --out out.iso
  • 刻录走系统 drutil / hdiutil

生成速度(release、Apple M5、默认并行):DVD-5 整盘 34 s、CD 80min 9.7 s、BD-R 25 GB 66 s(纯计算)。

[0.1.0] — 2026-11-02 — 首个预发布

macOS 原生移植版的第一版。面向「等实盘验证」的预发布:编码链路、文件系统与打包公证都可复现,
但没有任何一次真实烧录(开发机没有刻录机,也没有空白光盘)。

新增

  • 三种介质的编码引擎
    • DVD:扰码 / ECC(PI+PO,含增量重建)/ EFMPlus(双 Stream DSV 选择 + SYNC 主副码替换)/
      NRZI / 16 扇区 ECC Block 组装;快速纹理映射路径(payload 字节只在 0xA5/0x92 中选)。
    • CD:几何与面积线性采样、2 阶(0x0D/0xAA)与 4 阶(0x0D/0x10/0x63/0xAA)灰阶、
      112 帧环形延迟交织(offset 72…2592,尾部丢弃 1332 字节)、WAV(小端 + 44 字节 RIFF)/ RAW(大端)/ 数据盘 Mode 1。
    • 蓝光:EDC、LDC RS(248,216)×304、BIS RS(9,5)+RS(62,30)、17PP(RLL(1,7))、28 位 DC 控制、
      RUB 组装、3T/6T 定灰(0xAA/0x44,可反极性)、UDF 2.01。
  • 文件系统:ISO9660(主卷 + Joliet SVD + 路径表,内外圈放置、Unicode 名、拒绝符号链接、单文件 ≤ 4 GiB−1)、UDF 2.01(≥640 扇区且 %32、>4 GiB 按 0x3ffff800 拆 extent)、BD sidecar JSON。
  • SwiftUI 应用:主页 / 设计(mm 画布、影调面板)/ 预览(极坐标盘面、文件区高亮)/
    导出 / 刻录(设备→空白检查→倍速→二次确认)/ 标定;.discproj 工程文件(schemaVersion 2,兼容 schema 1)。
  • 刻录封装:drutil / hdiutil 的命令构造与输出解析(纯函数、可单测)、取消与超时、中文错误文案。
  • CLI:discimage-cli generate / presets / geometry / info。
  • 工程化:349 个单元测试、scripts/verify.sh 端到端验收、scripts/package.sh 签名+公证、
    scripts/reference.sh 逐字节回归、CI(macOS)。

性能(release,Apple M5,默认并行)

介质 整盘规模 耗时
DVD-5 2,295,104 扇区 / 4.4 GB 34 s
CD 80min 359,849 扇区 / 845 MB 9.7 s
BD-R SL 12,219,392 扇区 / 25 GB 66 s(纯计算)

并行化不改变任何一个输出字节(scripts/reference.sh --check 会验证串行与 8 线程输出一致)。

已验证

  • swift build / swift test 全绿;scripts/verify.sh 全过。
  • 生成的 DVD ISO9660 与蓝光 UDF 镜像均能被 hdiutil attach 挂载,文件内容 cmp 逐字节一致。
  • 应用已用 Developer ID 签名、公证并装订;Gatekeeper 评估通过(含带隔离属性启动)。

未验证 / 已知限制

  • 真实烧录从未执行;刻录链路只验证到命令构造、输出解析、错误翻译与取消措辞。
  • 实盘光学极性未知:DVD 的 0xA5/0x92、蓝光的 3T/6T 都是编码约定,不是实测反射率。
  • drutil 不保证 DAO 字节级控制,图案在真盘上可能整体旋转/偏移。
  • 仅 arm64(Apple Silicon);未构建 Universal Binary。
  • DVD 不含 beam search 约束求解器(只有快速纹理映射,与上游 GUI 一致)。
  • CD 没有 CIRC 与 EFM(上游本身也没有,只做字节级延迟重排)。
  • 蓝光为实验性:整盘 25 GB 未实跑,性能为线性外推。
  • GUI 的 8192 px 合成图导出在主线程同步执行,会卡几秒;预览页「成品读回」暂未接引擎真实读回。

下一步

拿到刻录机与 DVD-R 后按 docs/VALIDATION.md §4 的清单做实盘记录(版本 hash、刻录机型号固件、
盘片型号、所用预设、写入速度、生成/刻录入口、原始照片),再决定是否把预设与极性写回默认值。