# 可运行合成核心协议 v0.1

本协议只适用于 `synthetic_thin_phase`。公式和限制见 `optics.md` 第 4 节；这不是专业全眼轨道。

## 输入与输出

输入为 `public/cases.json`，24 例、6 族、每族 2 对 control/intervention。所有 config 字段均为合成定义：mm、D、deg、nm、arcsec；NumPy 内部光程为 m。JSON 中 `grid_n/padding/extent_mm` 是公开参考的数值设置，不是物理定律；被测方可以使用不同内部网格，但必须输出约定探测坐标上的数组。

提交目录每例一个 `<id>.npz`，使用 `allow_pickle=False` 可读：

| 字段 | 类型及定义 |
|---|---|
| `psf` | `output_n × output_n` 非负、有限、**线性**数组，有限探测视场内归一化；和在 1±0.001 内 |
| `angular_pixel_arcsec` | 标量；必须与输入相同 |
| `throughput` | 标量；瞳面输出能量 / 入射瞳孔能量 |
| `captured_energy` | 标量；共同探测网格截获能量 / 入射瞳孔能量；不可用归一化 PSF 的和代替 |

原点为数组 `[output_n//2, output_n//2]`；列方向为 +x，行方向为模型 +y。绘图若要 y 朝上，需在显示时翻转，不能改数值契约。保持原始光轴，不自动对齐质心。输出无单位像素能量概率；乘 `captured_energy` 得相对于入射能量的每像素能量。

`material_amplitude` 是振幅，不是强度。孔内及光学区外在这个模型中振幅为 1，不接受 ICL 相位。柱镜轴沿无柱镜作用的方向。光谱权重由题面给出，非相干强度叠加，波长引起的角像素尺寸需重采样到共同网格；核心没有折射率色散。

## 自动评分

每例从原始 PSF 重新计算：

| 指标 | 权重 | 指数衰减尺度 |
|---|---:|---:|
| 固定坐标 PSF 的 L1 距离 | 0.45 | 0.08 |
| 7 个固定角半径的包围能量平均绝对误差 | 0.15 | 0.03 |
| x/y 方向各 32 个离散频率 MTF 的平均绝对误差 | 0.15 | 0.04 |
| 质心距离 | 0.10 | 8 arcsec |
| throughput、captured_energy 两误差的最大值 | 0.15 | 0.02 |

单项 `exp(-error/scale)`，权重加总后乘 100。包围能量以固定光轴为中心，半径为 16/32/64/128/256/512/1024 arcsec。MTF 由条件 PSF 的 FFT 计算并以零频归一化。

对每对，先用 `psf × captured_energy` 恢复探测能量，再求 intervention−control 差分。差分误差 `e = L1(Δcandidate−Δreference)/max(L1(Δreference),0.002)`；成对分 `100 exp(-e/0.5)`。该项提高对小中央孔效应等低能量机制的敏感性，常量图不能因整体图差很小而通过。

每族得分 = 70% 单例均分 + 30% 成对均分。六族等权宏平均，遗漏或非法输出计 0，不减少分母。所有分项与失败原因写入报告。

非法输出包括：缺文件、NaN/Inf、负 PSF、和不符合约定、尺寸/角采样错误、非标量元数据、被动透过率超出 [0,1]、截获能量超过透过率+0.00001。最后的容差仅用于浮点存储舍入，不代表物理增益。当前 scorer 不执行提交源码、不做隔离，也不能发现所有伪造元数据，必须配合外部容器、源码和独立物理审计。

## 开发容差的限制

这些尺度由当前解析测试与负控检查辅助开发，尚未经过跨求解器、专家或模型区分度校准；不能当成临床差异阈值。当前守恒重采样将每个源像素视为均匀能量密度，有限角采样、FOV 及瞳面离散仍有误差；所有参考都来自一个公开实现。

种子与 cases 的 SHA-256 存在 private manifest；评估时检测题面是否在生成参考后被修改。此校验只防误操作，不是防有权限攻击者的安全边界。离线 bundle 的生成代码是公开的，不能作为保密榜单；正式服务需在私有评测环境重生成并做独立求解器验证。

## 负控与自检

`baseline --mode` 提供：

- `reference`：相同实现的格式自检，应为 100，不是模型能力成绩。
- `constant`：所有病例使用相同理想 PSF。
- `donut`：所有病例替换成手画环形光强。
- `ignore-port`：保留其他机制，但忽略透明孔。

运行后须查看**分族分数**；忽略小孔的基线可能仍有很高总分，这不表示它理解了中央孔。完整专业轨道用独立 G1–G5 门槛和任务评分补充，不允许核心分数替代专业认证。
