scripts/report_direct_capacity.py
# Long Markdown paragraphs retain their prose layout.
# ruff: noqa: E501
"""Render the capacity report and terminal summary from audited analysis artifacts."""
import argparse
import json
from pathlib import Path
from mcss.mechanism_pilot.direct_capacity_statistics import group_key
def report(root):
root = Path(root)
def read(name):
return json.loads((root / name).read_text())
result = read("direct_state_results.json")
analysis = read("capacity_analysis.json")
classification = analysis["classification"]
comparisons = analysis["comparisons"]
groups = {**result["frozen_carrier"], **result["context_only"], **result["diagnostic_oracle"]}
tests = read("tests.json")
audit = read("audit/postrun_validation.json")
if tests["status"] != "PASS" or audit["status"] != "PASS":
raise RuntimeError("Complete tests and raw prediction audit before reporting")
def metric(key, name="depth_absrel"):
return groups[key]["metrics"][name]
def fmt(x):
return f"{x:.6f}"
def ci(stats):
return f"{stats['mean']:.6f} [{stats['ci95'][0]:.6f}, {stats['ci95'][1]:.6f}]"
def table(header, rows):
return "\n".join(
["| " + " | ".join(header) + " |", "| " + " | ".join(["---"] * len(header)) + " |"]
+ ["| " + " | ".join(map(str, row)) + " |" for row in rows]
)
d, r, o = group_key("RGBD"), group_key("RGB_ONLY"), group_key("QUERY_ORACLE")
summary = {
"N_CAPACITY_DEV_SCENES": result["n_scenes"],
"CARRIER_ABSREL": metric("CARRIER")["mean"],
"DIRECT_RGBD_8_ABSREL": metric(d)["mean"],
"DIRECT_RGBONLY_8_ABSREL": metric(r)["mean"],
"QUERY_ORACLE_8_ABSREL": metric(o)["mean"],
"CAPACITY_GAP_RGBD": comparisons["capacity_gap_RGBD_g8"]["mean"],
"CAPACITY_GAP_RGBONLY": comparisons["capacity_gap_RGB_ONLY_g8"]["mean"],
"DIRECT_RGBD_16_ABSREL": metric(group_key("RGBD", 16))["mean"],
"DIRECT_RGBD_32_ABSREL": metric(group_key("RGBD", 32))["mean"],
"RESOLUTION_8_TO_16_GAIN": comparisons["resolution_RGBD_8_to_16"]["mean"],
"RESOLUTION_16_TO_32_GAIN": comparisons["resolution_RGBD_16_to_32"]["mean"],
"RENDER64_ABSREL": metric(d)["mean"],
"RENDER128_ABSREL": metric(group_key("RGBD", 8, 128))["mean"],
"CONTEXT_RGBD_ERROR": groups[d]["context_metrics"]["depth_absrel"]["mean"],
"QUERY_RGBD_ERROR": metric(d)["mean"],
"GENERALIZATION_GAP_RGBD": groups[d]["generalization_gap"]["depth_absrel"]["mean"],
"WRONG_SCENE_DAMAGE_DIRECT": comparisons["control_damage_RGBD_wrong_scene"]["mean"],
**{
key: classification[key]
for key in (
"STATE_CAPACITY_STATUS",
"REPRESENTATION_BOTTLENECK",
"RESOLUTION_BOTTLENECK",
"RENDERER_BOTTLENECK",
"CONTEXT_INFERENCE_BOTTLENECK",
"LEARNER_TRAINING_BOTTLENECK",
"FINAL_HOLDOUT_TOUCHED",
"DYNAMIC_TTT_RUN",
"NEW_CARRIER_TRAINED",
)
},
"TESTS": f"{tests['full_suite']['passed']} passed, {tests['full_suite']['skipped']} skipped; Ruff PASS",
"FINAL_INTEGRITY": "PASS",
"REPORT_DIR": str((Path("docs/experiments") / root.name).resolve()),
}
lines = ["=" * 60, "3D DIRECT-STATE CAPACITY ATTRIBUTION FINAL", "=" * 60]
for key, value in summary.items():
text = (
str(value).lower()
if isinstance(value, bool)
else fmt(value)
if isinstance(value, float)
else str(value)
)
lines.append(f"{key}={text}")
lines.append("=" * 60)
terminal = "\n".join(lines) + "\n"
(root / "terminal_summary.txt").write_text(terminal)
(root / "STATUS.md").write_text(
"```text\n"
+ terminal
+ "```\n\nRENDER64/128 above refer to RGBD grid8 CURRENT_BOUNDS; the grid16 matrix is separately reported. FINAL_INTEGRITY is confirmed by the final archival integrity.json.\n"
)
(root / "terminal_summary.json").write_text(json.dumps(summary, indent=2) + "\n")
parts = [
f"# {root.name}\n\n`STATE_CAPACITY_STATUS={classification['STATE_CAPACITY_STATUS']}`。17 个已曝光场景上的归因实验,**不是独立验证或方法资格确认**。425 个 direct states(340 context-only,85 query-supervised diagnostic),固定原 renderer,无新 carrier 训练、writer、Dynamic TTT 或 holdout 评价。\n"
]
parts.append(
"## 主要结果:context-only\n\n下表均为 scene 等权 query 指标;A/B 先各自平均 query,再等权平均,最后平均 17 个场景。AbsRel/RMSE/RGB MSE 越低越好,δ1/SSIM 越高越好。Opacity/coverage 不是任务质量本身。"
)
main_keys = [
("Frozen carrier A/B", "CARRIER"),
("Frozen anchor", "ANCHOR"),
("Fixed analytic prior", "PRIOR"),
("Direct RGB+D 8³", d),
("Direct RGB-only 8³", r),
]
parts.append(
table(
["方法", "AbsRel [95% CI]", "RMSE", "δ1", "RGB MSE", "SSIM", "Opacity", "Coverage"],
[
[
label,
ci(metric(key)),
*[
fmt(metric(key, name)["mean"])
for name in (
"depth_rmse",
"depth_delta1",
"rgb_mse",
"rgb_ssim",
"opacity",
"coverage",
)
],
]
for label, key in main_keys
],
)
)
parts.append(
"RGB+D 使用 context depth,不能把它单独优于 RGB-only carrier 的差值全部归因于 learner。RGB-only 优化阶段不加载本场景 depth;其 context depth 指标由封存后的 evaluator 另行测量。Coverage 定义为预测 opacity > 1e-6,不能称为真实可见率。"
)
selected = [
"capacity_gap_RGBD_g8",
"capacity_gap_RGB_ONLY_g8",
"anchor_gap_RGBD_g8",
"anchor_gap_RGB_ONLY_g8",
]
parts.append(
table(
[
"比较(正值为 direct 改善)",
"平均 [95% CI]",
"中位数",
"改善/持平/更差",
"LOSO 范围",
"正收益 top1 / top3 占比",
],
[
[
key,
ci(comparisons[key]),
fmt(comparisons[key]["median"]),
str(comparisons[key]["improved_tied_worse"]),
str(comparisons[key]["loso_range"]),
str(
[
comparisons[key]["positive_top1_contribution"],
comparisons[key]["positive_top3_contribution"],
]
),
]
for key in selected
],
)
)
parts.append(
"Capacity gap = carrier − direct;anchor gap = frozen anchor − direct。完整七项 direct − carrier 配对差值另见 capacity_analysis.json;误差指标负值表示 direct 更好。统计采用 10,000 次 scene-paired bootstrap,seed 20260927、95% percentile CI、tie=1e-8。所有诊断 CI 未做多重比较校正;分组均值的 CI 不等同于差值 CI。完整 LOSO、正/绝对贡献 top1/top3、逐场景值均保存在 JSON。"
)
parts.append("## 分辨率、renderer 和 bounds\n")
parts.append(
table(
["轨道", "grid", "Query AbsRel [95% CI]", "Context AbsRel", "Query RGB MSE"],
[
[
track,
grid,
ci(metric(group_key(track, grid))),
fmt(groups[group_key(track, grid)]["context_metrics"]["depth_absrel"]["mean"]),
fmt(metric(group_key(track, grid), "rgb_mse")["mean"]),
]
for track in ("RGBD", "RGB_ONLY")
for grid in (8, 16, 32)
],
)
)
parts.append(
table(
["相邻 grid 改善(旧误差−新误差)", "平均 [95% CI]", "改善/持平/更差"],
[
[key, ci(value), str(value["improved_tied_worse"])]
for key, value in read("resolution_analysis.json").items()
],
)
)
parts.append(
table(
["RGBD grid", "64 samples AbsRel", "128 samples AbsRel", "64→128 改善 [95% CI]"],
[
[
grid,
fmt(metric(group_key("RGBD", grid))["mean"]),
fmt(metric(group_key("RGBD", grid, 128))["mean"]),
ci(comparisons[f"renderer_RGBD_g{grid}_64_to_128"]),
]
for grid in (8, 16)
],
)
)
parts.append(
"主 sweep 始终固定 64 samples、相同场景/帧/损失/步数;128 samples 是单独预定的 RGBD 8³/16³ 对照。改变 samples 也改变优化梯度,因此这仍是受控诊断,不能声称纯粹的因果分解。"
)
parts.append(
table(
[
"8³ bounds 敏感性",
"CURRENT AbsRel",
"替代 bounds AbsRel",
"误差改善 [95% CI]",
"CURRENT GT inside / ray hit / GT>far",
"替代 GT inside / ray hit / GT>far",
],
[
[
track,
fmt(metric(group_key(track))["mean"]),
fmt(metric(group_key(track, bounds="PREDECLARED_GEOMETRY_BOUNDS"))["mean"]),
ci(comparisons[f"bounds_gain_{track}"]),
" / ".join(
fmt(metric(group_key(track), m)["mean"])
for m in (
"insideGTfraction",
"ray_hitfraction",
"GTdistance_above_far_fraction",
)
),
" / ".join(
fmt(
metric(group_key(track, bounds="PREDECLARED_GEOMETRY_BOUNDS"), m)[
"mean"
]
)
for m in (
"insideGTfraction",
"ray_hitfraction",
"GTdistance_above_far_fraction",
)
),
]
for track in ("RGBD", "RGB_ONLY")
],
)
)
parts.append(
"CURRENT 为 [-6,-4,-6] 到 [6,4,6];替代规则仅取 context camera rays 的训练集全局深度 q01/q99 端点,AABB 两侧各扩 5%,最小边长 1m。训练 prior near=0.214252m、far=5.672045m,来自原 TRAIN3 frame12..15;不读取 capacity query camera/GT 构造 bounds。RGB-only 的该敏感性组含训练集全局 depth 先验。GT inside/far 诊断只在封存后计算,未用于改 bounds 或选配置。"
)
parts.append("## Context 泛化与状态结构对照\n")
parts.append(
table(
[
"轨道",
"Context AbsRel",
"Query AbsRel",
"Query−context [95% CI]",
"Context RGB MSE",
"Query RGB MSE",
],
[
[
track,
fmt(groups[group_key(track)]["context_metrics"]["depth_absrel"]["mean"]),
fmt(metric(group_key(track))["mean"]),
ci(groups[group_key(track)]["generalization_gap"]["depth_absrel"]),
fmt(groups[group_key(track)]["context_metrics"]["rgb_mse"]["mean"]),
fmt(metric(group_key(track), "rgb_mse")["mean"]),
]
for track in ("RGBD", "RGB_ONLY")
],
)
)
parts.append(
table(
["8³ CURRENT 对照", "轨道", "AbsRel damage [95% CI]", "对照 RGB MSE", "对照 opacity"],
[
[
method,
track,
ci(comparisons[f"control_damage_{track}_{method}"]),
fmt(metric(group_key(track, method=method), "rgb_mse")["mean"]),
fmt(metric(group_key(track, method=method), "opacity")["mean"]),
]
for track in ("RGBD", "RGB_ONLY")
for method in (
"wrong_scene",
"spatial_shuffle",
"density_only",
"color_only",
"zero_density_color",
)
],
)
)
parts.append(
"Damage = 对照误差 − 正确 direct-state 误差。Wrong scene 使用排序后下一个场景的同配置状态,recipient query camera 不变。Shuffle 对 density/color 使用同一置换;density-only 将 color 固定 .5;color-only 将 density logits 固定 −2;zero 为 logits−100/color0。以上均评价实际渲染预测,不以 latent 差异代替任务结果;raw 每行另含 RGB/depth 预测 RMS/max变化与 camera/state hashes。"
)
parts.append(
"## DIAGNOSTIC ORACLE:有 query 监督的表达诊断\n\n仅在全部 context-only 状态完成、封存并评价之后开启。每个 oracle state 同时优化两张 query,二者共享同一状态;不是每张 query 拟合一份。不能作为部署方法、泛化证据或数学最优上界。"
)
parts.append(
table(
[
"Grid",
"Oracle query AbsRel [95% CI]",
"RGBD context-direct − oracle [95% CI]",
"Oracle RGB MSE",
],
[
[
grid,
ci(metric(group_key("QUERY_ORACLE", grid))),
ci(comparisons[f"context_RGBD_minus_oracle_g{grid}"]),
fmt(metric(group_key("QUERY_ORACLE", grid), "rgb_mse")["mean"]),
]
for grid in (8, 16, 32)
],
)
)
parts.append(
"Oracle bounds sensitivity (8³, both queries jointly supervised): "
+ ci(metric(group_key("QUERY_ORACLE", bounds="PREDECLARED_GEOMETRY_BOUNDS")))
+ "; CURRENT minus alternative AbsRel: "
+ ci(comparisons["bounds_gain_QUERY_ORACLE"])
+ ". This is privileged diagnostic evidence only."
)
parts.append(
"三层分别是 query-supervised direct(L1)、context-supervised direct(L2)、learned carrier(L3)。L1→L2 可能同时涉及 context 信息、可见性、inverse problem 与优化目标;L2→L3 可能涉及构建和训练,但 RGBD 额外监督也在其中。不能把这些差值当成严格因果分解。"
)
parts.append("## 全部场景\n")
parts.append(
table(
[
"Scene",
"Carrier",
"RGBD8",
"RGB-only8",
"Capacity gap RGBD",
"Capacity gap RGB-only",
],
[
[
scene,
*[fmt(metric(key)["per_scene"][scene]) for key in ("CARRIER", d, r)],
fmt(comparisons["capacity_gap_RGBD_g8"]["per_scene"][scene]),
fmt(comparisons["capacity_gap_RGB_ONLY_g8"]["per_scene"][scene]),
]
for scene in result["scene_ids"]
],
)
)
parts.append(
"## 优化定义与真实成本\n\n直接优化 density logits 与 sigmoid-bounded RGB,4g³ 个参数;log-variance 固定−3,features/evidence/appearance=None。没有 query-conditioned network。沿用原 fixed renderer 的归一化 ray direction、metric ray-distance depth=sum(w·t),不除 opacity,RGB background=0。Adam LR=.03、1000步、每步1024个完整128×160 context像素均匀有放回抽样、clip=1。RGB MSE + RGBD 的 valid-depth AbsRel + 1e-5 mean(softplus(z)²) + 1e-4 mean physical-spacing TV(density,color)。每100步及step0全监督像素评估目标,选最小值,严格小于才更新保证最早tie;context-only没有query早停。\n\n小 pilot 只用 ai004001/A context:两轨 RGB loss 均下降,RGBD depth loss 下降,梯度非零、输出改变、没有 NaN/inf 或全0/全1 opacity。随后冻结 formal protocol,未因 query 结果改参数。"
)
cost_rows = []
for track in ("RGBD", "RGB_ONLY"):
for grid in (8, 16, 32):
key = group_key(track, grid)
cost = groups[key]["optimization_cost"]
cost_rows.append(
[
track,
grid,
cost["parameter_count_per_state"][0],
fmt(cost["seconds_mean"]),
fmt(cost["peak_cuda_allocated_bytes"] / 2**20),
fmt(cost["peak_cuda_reserved_bytes"] / 2**20),
fmt(groups[key]["render_seconds_total"] / groups[key]["n_rows"]),
f"{cost['selected_at_budget_boundary']}/{cost['n_states']}",
]
)
parts.append(
table(
[
"Track",
"Grid",
"参数",
"优化秒/state",
"Peak allocated MiB",
"Peak reserved MiB",
"query render秒/frame",
"选中1000步",
],
cost_rows,
)
)
curves = read("optimization_curves.json")
parts.append(
f"425 个状态中 {sum(v['final_selected_at_budget_boundary'] for v in curves.values())} 个选中预算边界,{sum(v['last3_objective_slope_per_step'] < 0 for v in curves.values())} 个最后三次目标仍呈下降趋势。完整 full-objective 曲线、last3 slope、selected checkpoint 和每10步 trace 均保留。1000步不是全局收敛证明;高grid比8³有64倍参数,同步数不代表同等优化充分性。\n\nGPU 为 RTX5090,PyTorch2.11.0+cu128。优化秒数不含数据加载和checkpoint落盘;renderer秒数不含GT读取、指标和NPZ压缩,CUDA同步后计时。VRAM为本进程allocator峰值,不是整机显存;共享GPU环境并非独占性能基准。第144个状态曾发生一次进程segfault,143份完整状态hash复核后保留,仅lock的未完成尝试另存audit,按相同冻结配置/seed重跑并完成;未观察query后挑选重跑。不能声称已定位该环境崩溃的根因。"
)
parts.append(
"## 判定与下一阶段\n\n预注册 engineering-good:mean AbsRel≤.25 且至少75%场景≤.35;stable practical gain:mean≥.02、配对CI下界>0、至少75%场景不变差。这是预先声明的工程标准,不是官方benchmark。"
)
parts.append("```json\n" + json.dumps(classification, indent=2, ensure_ascii=False) + "\n```")
parts.append(
"不因有限优化下 oracle 较差就证明 state 无法表达;bounds/ray reach、优化剩余空间都必须先排除。本轮只给下一阶段建议,不开展新 carrier 训练或开启 protected holdout。"
)
parts.append(
"## 审计、复现与交付\n\n冻结 B-final SHA256=`be7b8b6d2ef366cad245732b9ff227802db596da65082ac0e160f24541579e42`。从 checkpoint 重建51个context状态hash全同;136条 A/B/anchor/prior 查询预测与旧结果完全相同。旧产物3523项保持不变,其中2695项freshhash,828项受保护媒体只比较size/mtime并引用以前验证的SHA,本轮未重新读取其字节。\n\ncontext loader剥离query帧及其相机,RGB-only再移除depth路径;优化器只接收允许的 ObservationBatch。管理用manifest含原始锁定元数据,这不是OS级文件访问隔离。baseline是已曝光旧状态的独立重放,允许在formal direct优化前评分;direct评价先要求全部340完成,CPU clone/hash封存后才读取query媒体(包括哈希读取)。oracle作为明确特权阶段单列。GT访问、seal事件、phase完成记录、输入/source/state哈希及文件时间辅助证据完整保存;mtime不具防篡改保证。"
)
parts.append(
f"完整suite:{tests['full_suite']['passed']} passed、{tests['full_suite']['skipped']} skipped,Ruff PASS;跳过项仅可选历史V5 step4500 checkpoint未分发。46项新增direct-capacity核心测试覆盖loader隔离、原renderer预测及梯度一致、选择规则、同状态多query、wrong-camera、场景bootstrap及raw统计复算。另有归档I/O测试。所有正式query预测NPZ逐条重算7指标通过,context/oracle行数分别 {audit['phases']['context']['rows_recomputed']} / {audit['phases']['oracle']['rows_recomputed']};统计另行从raw重算比对。"
)
parts.append(
"从仓库根目录运行:\n\n```bash\nbash outputs/EXP-3D-DIRECT-STATE-CAPACITY-V1/commands.sh analyze outputs/direct-capacity-reanalysis\nbash outputs/EXP-3D-DIRECT-STATE-CAPACITY-V1/commands.sh reproduce outputs/direct-capacity-reproduction\n.venv/bin/python scripts/analyze_direct_capacity.py --root docs/experiments/EXP-3D-DIRECT-STATE-CAPACITY-V1 --output outputs/direct-capacity-docs-only-analysis\n```\n\n第一/三条仅使用raw与数值摘要,不加载权重或媒体;第三条直接读取报告中的gzip。第二条复用已冻结pilot协议/历史baseline,在新目录重做425份状态,需要原数据路径及冻结源码。CUDA fresh optimization未承诺跨设备逐bit相同;保存预测→指标、保存raw→统计分别经过完整审计。全部.pt与预测NPZ在本地outputs,报告目录提供425-state索引、压缩raw/audit、源码快照、配置和六幅PNG/SVG,不把大权重冒充已在Git发布。当前工作未git commit/push。"
)
parts.append("## 图表\n")
for image in sorted((root / "figures").glob("*.png")):
parts.append(f"")
parts.insert(1, (root / "scientific_interpretation.md").read_text())
(root / "README.md").write_text("\n\n".join(parts) + "\n")
print(terminal)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--root", required=True)
report(parser.parse_args().root)