#!/usr/bin/env python3 """Report saved matched carrier DEV evidence without opening fresh data or models.""" # ruff: noqa: E501 -- Chinese scientific report prose import argparse import json from pathlib import Path def read(root, name, default=None): path = root / (name + ".json") if not path.exists() and default is not None: return default return json.loads(path.read_text()) def number(value): return "UNDEFINED" if value is None else f"{value:.6f}" def stat(value): if value["mean"] is None: return "UNDEFINED(空区域未填零)" ci = value["ci95"] return f"{value['mean']:.6f},95% CI [{ci[0]:.6f}, {ci[1]:.6f}]" def run(root, docs=None): root, docs = Path(root), Path(docs) if docs else Path(root) results = read(root, "static_results") qualification = read(root, "qualification_results") state = read(root, "state_use_results") controls = read(root, "wrong_scene_results")["contrasts"] obs = read(root, "observability_analysis") split = read(root, "scene_split") cost = read(root, "cost_analysis") selected = read(root, "selected_checkpoints", {"status": "NOT_RECORDED"}) tests, integrity = (read(root, n, {"status": "PENDING"}) for n in ("tests", "integrity")) if results["primary"] != "C1_SURFACE16": raise PermissionError("SURFACE16 is the predeclared primary") if ( qualification["FRESH_QUALIFICATION_OPENED"] or qualification["DYNAMIC_TTT_NEXT_STAGE_ALLOWED"] ): raise PermissionError("This report currently supports blocked-fresh DEV-only execution") groups = results["groups"] gain = results["surface_gain"] regions = obs["groups"] secondary = "C2|direct" in groups free = results.get("free_space_extra_gain") roster = read(root, "evaluated_variants", {"secondary_status": {}}) c2_status = roster["secondary_status"].get("C2", "NOT_RUN_SECONDARY_OPTIONAL") incidents = read(root, "audit/incidents", []) fields = { "N_TRAIN_SCENES": sum(r.get("split") == "TRAIN" for r in split["scenes"]), "N_DEV_SCENES": len(results["scene_ids"]), "N_FRESH_QUALIFICATION_SCENES": sum( r.get("split") == "FRESH_QUALIFICATION" for r in split["scenes"] ), "BASELINE16_CHECKPOINT": selected.get("C0", "NOT_RECORDED"), "SURFACE16_CHECKPOINT": selected.get("C1", "NOT_RECORDED"), "FREE_SURFACE16_CHECKPOINT": selected.get("C2", c2_status), "SECONDARY_C2_STATUS": c2_status, "BASELINE16_QUERY_ABSREL": number( groups["C0|direct"]["query_metrics"]["depth_absrel"]["mean"] ), "SURFACE16_QUERY_ABSREL": number( groups["C1|direct"]["query_metrics"]["depth_absrel"]["mean"] ), "SURFACE_GAIN": number(gain["mean"]), "SURFACE_GAIN_CI": gain["ci95"], "FREE_SURFACE_QUERY_ABSREL": number( groups["C2|direct"]["query_metrics"]["depth_absrel"]["mean"] ) if secondary else "NOT_RUN_SECONDARY_OPTIONAL", "FREE_SPACE_EXTRA_GAIN": number(free["mean"]) if free else "NOT_RUN_SECONDARY_OPTIONAL", "FREE_SPACE_EXTRA_GAIN_CI": free["ci95"] if free else "NOT_RUN_SECONDARY_OPTIONAL", "BASELINE16_FULL_CONTEXT_GAIN": number(results["full_context_gain"]["C0"]["mean"]), "SURFACE16_FULL_CONTEXT_GAIN": number(results["full_context_gain"]["C1"]["mean"]), "BASELINE16_WRONG_SCENE_DAMAGE": number(controls["C0|wrong_scene"]["mean"]), "SURFACE16_WRONG_SCENE_DAMAGE": number(controls["C1|wrong_scene"]["mean"]), "BASELINE16_SHUFFLE_DAMAGE": number(controls["C0|spatial_shuffle"]["mean"]), "SURFACE16_SHUFFLE_DAMAGE": number(controls["C1|spatial_shuffle"]["mean"]), "OBS2PLUS_BASELINE16": number(regions["C0"]["OBS2PLUS"]["conditional_absrel"]["mean"]), "OBS2PLUS_SURFACE16": number(regions["C1"]["OBS2PLUS"]["conditional_absrel"]["mean"]), "OBS2PLUS_SURFACE_GAIN": number(obs["gains"]["OBS2PLUS"]["mean"]), "SURFACE_TRAINING_STATUS": qualification["SURFACE_TRAINING_STATUS"], "STATIC_DEV_STATUS": qualification["STATIC_DEV_STATUS"], "SEED_ROBUSTNESS": qualification["SEED_ROBUSTNESS"], "FRESH_QUALIFICATION_INDEPENDENCE": qualification["FRESH_QUALIFICATION_INDEPENDENCE"], "FRESH_QUALIFICATION_OPENED": False, "FRESH_BASELINE16_ABSREL": "NOT_RUN", "FRESH_SURFACE16_ABSREL": "NOT_RUN", "FRESH_SURFACE_GAIN": "NOT_RUN", "FRESH_SURFACE_GAIN_CI": "NOT_RUN", "FINAL_STATIC_STATUS": "NOT_ESTABLISHED", "DYNAMIC_TTT_NEXT_STAGE_ALLOWED": False, "TEST_TIME_INPUT": "RGB+CAMERA", "TEST_TIME_DEPTH_USED": False, "FINAL_HOLDOUT_TOUCHED": False, "DYNAMIC_TTT_RUN": False, "NATIVE_CRASH_RETRIES": len(incidents), "TESTS": tests["status"], "FINAL_INTEGRITY": integrity["status"], "REPORT_DIR": str(docs), } next_step = ( "DEV对surface及static的证据均支持,但fresh独立性尚未解决。先完成新的可信fresh cohort和冻结资格协议,不启动Dynamic TTT。" if qualification["SURFACE_TRAINING_STATUS"] == qualification["STATIC_DEV_STATUS"] == "SUPPORTED" else "未满足进入下一阶段的全部条件。保留matched对照:surface无收益时研究carrier lifting/fusion/geometry reasoning;full context不胜anchor时改善shared-state构造;wrong-scene不显著时检查global-prior依赖。本轮不引入这些新架构,也不开Dynamic TTT。" ) lines = [ "# EXP-3D-GEOMETRY-AWARE-CARRIER-V2", "", "主比较是matched16³ BASELINE16(C0) vs SURFACE16(C1),唯一方法差别是TRAIN-side显式surface loss。" + "SURFACE_GAIN=" + stat(gain) + f";SURFACE_TRAINING_STATUS={qualification['SURFACE_TRAINING_STATUS']};STATIC_DEV_STATUS={qualification['STATIC_DEV_STATUS']}。", "", "Test-time input = RGB + calibrated cameras. 训练是RGB+D utility track,不是RGB-only training;depth仅供TRAIN loss及seal后的DEV评价/诊断,未作为test-time carrier输入。", "", "C1固定为PRIMARY_METHOD=SURFACE16;" + ( "C2=FREE_SURFACE16仅为训练前预注册的secondary ablation(C1+0.1×free-space),只报告C1−C2,不进入C0/C1共mask、OBS区域或任何gate,不能事后改为主方法。" if secondary else "C2=NOT_RUN_SECONDARY_OPTIONAL。" ) + "未新算旧8³ B-final,只保留历史上下文;不能把C0改进单独归因为resolution、重训或训练数据增多。各variant推理architecture完全一致,surface/free-space loss只存在训练阶段,不能宣称它们使推理架构更贵。", "", "| Method | Query AbsRel (95% CI) | Context AbsRel | Query−context gap | Opacity | Coverage |", "|---|---|---:|---:|---:|---:|", ] for v in ("C0", "C1", "C2") if secondary else ("C0", "C1"): g = groups[v + "|direct"] lines.append( f"| {v} | {stat(g['query_metrics']['depth_absrel'])} | {number(g['context_metrics']['depth_absrel']['mean'])} | {number(g['generalization_gap']['mean'])} | {number(g['query_metrics']['opacity']['mean'])} | {number(g['query_metrics']['coverage']['mean'])} |" ) answers = [ ( "Surface supervision在learned carrier中是否有效?", f"{qualification['SURFACE_TRAINING_STATUS']};C0−C1={stat(gain)}。本轮主gate是>0而非沿用旧.02门槛,同时检查CI、75%场景不差、所有LOSO>0、positive top1 share≤.5、controls与opacity。", ), ( "是否跨多个scenes和seeds?", f"improved/tied/worse={gain['positive']}/{gain['tied']}/{gain['negative']};LOSO范围={gain['loso_range']};positive top1/top3={gain['positive_top1_contribution']}/{gain['positive_top3_contribution']}。seed列表={results['seeds']};SEED_ROBUSTNESS={qualification['SEED_ROBUSTNESS']}。所有seed保留,不选best seed;每seed结果见static_results.json。top1 share≤.5参与gate,top3仅报告不作为gate。", ), ( "是否复现OBS2PLUS改善signature?", "OBS2PLUS C0−C1=" + stat(obs["gains"]["OBS2PLUS"]) + f";scene coverage={obs['gains']['OBS2PLUS']['scene_coverage']}。这是post-seal条件区域诊断;空scene保留null,不把conditional收益替代全图净收益。", ), ( "16³ baseline retraining本身提升多少?", "本轮未新增旧8³模型matched评价,因此不能独立分离grid、更多数据、训练预算和重训收益。正式归因只比较相同architecture/grid/data/seed/budget/selection规则的C0和C1。", ), ( "surface相对matched baseline额外提升多少?", stat(gain) + "。这才是主方法增量,方向为C0 AbsRel−C1 AbsRel,正值更好。", ), ( "full context是否稳定优于anchor?", "C0=" + stat(results["full_context_gain"]["C0"]) + ";C1=" + stat(results["full_context_gain"]["C1"]) + f";STATIC_DEV_STATUS={qualification['STATIC_DEV_STATUS']}。anchor_A只编码共同anchor RGB,沿用A的合法context-camera bounds;anchor_B同理,不是只允许单相机几何信息的baseline。", ), ( "wrong-scene是否稳定更差?", "C0=" + stat(controls["C0|wrong_scene"]) + ";C1=" + stat(controls["C1|wrong_scene"]) + "。recipient query camera不变;wrong-scene同时替换donor bounds,不能将全部damage独归density内容。", ), ( "state是否真正scene-specific并有空间结构?", "C0 shuffle=" + stat(controls["C0|spatial_shuffle"]) + ";C1 shuffle=" + stat(controls["C1|spatial_shuffle"]) + "。shuffle保留recipient bounds。shared-state/seal审计=" + json.dumps(state["input_audit"], ensure_ascii=False) + "。多个query必须使用同一sealed state,controls CI不支持时不能声称已证明。", ), ( "context-query gap是否缩小?", "C0=" + stat(groups["C0|direct"]["generalization_gap"]) + ";C1=" + stat(groups["C1|direct"]["generalization_gap"]) + "。这里分别报告两者,未预注册额外gap-change显著性则不从两个CI重叠与否推出差值显著性;query净收益是主目标。", ), ( "free-space有没有额外价值?", ( "C1−C2=" + stat(free) + f"(正值表示加入free-space后AbsRel更低;improved/tied/worse={free['positive']}/{free['tied']}/{free['negative']})。C2只是secondary ablation,PRIMARY_METHOD仍为C1;即使C2更低也不改主方法,该对比不参与任何gate。" ) if free else "C2未运行,FREE_SPACE_EXTRA_GAIN=NOT_RUN_SECONDARY_OPTIONAL。不可把上一轮direct-state结果或本轮C1结果当作C2训练证据。", ), ( "DEV是否达到static qualification?", qualification["STATIC_DEV_STATUS"] + ";检查=" + json.dumps(qualification["static_checks"], ensure_ascii=False) + "。surface检查=" + json.dumps(qualification["surface_checks"], ensure_ascii=False) + "。DEV资格不是fresh最终资格。", ), ( "fresh qualification是否允许打开?", "FRESH_QUALIFICATION_OPENED=false;独立性=" + qualification["FRESH_QUALIFICATION_INDEPENDENCE"] + "。即使DEV良好也不替换fresh cohort或将已曝光scene重新包装。", ), ( "fresh scenes是否复现主要signature?", "NOT_RUN;没有新fresh结果,FINAL_STATIC_STATUS=NOT_ESTABLISHED。", ), ( "现在是否可以重新打开Dynamic TTT?", "DYNAMIC_TTT_NEXT_STAGE_ALLOWED=false;DYNAMIC_TTT_RUN=false。" + next_step, ), ] for i, (question, answer) in enumerate(answers, 1): lines.extend(["", f"**{i}. {question}**", "", answer]) lines.extend( [ "", "**预锁opacity与固定bounds限制**", "", "在V2正式训练前,主agent查阅已曝光历史ai_009_001发现固定bounds query rays全miss,因此未改scene/roles/bounds,改用每scene coverage≥.99×ray_hitfraction、C1−C0coverage≥−.01。NO_HIT不是新model collapse。所有8个DEV场景及全部GT-valid pixel仍计入主指标,固定bounds盲区保留。", "", "共mask要求C0和C1 opacity>1e-6;空scene显式null,共mask统计覆盖至少75%scene。还要求rendered_depth/opacity.clamp_min(1e-6)这一纯诊断上的C0−C1收益CI下界>0。主rendered depth语义和主AbsRel不改变。诊断降低透明度缩放解释的风险,不构成排除所有opacity相关机制的证明。", "", "opacity checks=" + json.dumps(state["opacity_checks"], ensure_ascii=False) + ";NO_HIT scenes=" + str(state["no_hit_scenes"]) + "。", "", "STATIC_DEV_STATUS使用C1自身的static opacity gate(训练前预注册):每个scene C1 coverage≥.99×ray_hitfraction;在anchor与direct共同opacity>1e-6的GT-valid mask上,anchor−direct AbsRel及其depth/opacity归一化版本的CI下界均>0,且至少75% scene有非空mask。C1 common-mask anchor−direct=" + stat(state["static_common_mask_gains"]["C1"]["depth_absrel"]) + ";归一化=" + stat(state["static_common_mask_gains"]["C1"]["normalized_depth_absrel"]) + ";static opacity checks=" + json.dumps(state["static_opacity_checks"], ensure_ascii=False) + "。", "", "**选择、统计与成本**", "", "每variant×seed用同一预锁DEV选择规则独立选择checkpoint;不是强行同步步数。selected step/path=" + json.dumps(selected, ensure_ascii=False) + "。lambda_surface=.1与tau=.5×physical voxel diagonal预先冻结,不能由DEV/fresh重新调节。surface-band mass会通过transmittance向前方density传播梯度。", "", "先对每个query/role等权平均所有seed,再平均query/role得到scene值;10,000 paired scene bootstrap,seed20260928,95% percentile CI。seeds、A/B和pixels不能作为独立scene扩充样本量。区域conditional均值、pixel fraction、可加误差贡献与空区域scene coverage见observability_analysis.json;完整mean/median/LOSO/top1/top3在bootstrap_results.json。", "", "training curves和8类图见training_curves.json及figures/。各variant成本原始记录=" + json.dumps(cost, ensure_ascii=False) + "。training_seconds是worker累计时间,与phase_wall_times分开;inference与renderer latency分开,checkpoint bytes/VRAM亦分别记录,缺失值不伪造。", "", "本报告仅读取保存的JSON,不进行模型forward或新评价。复现见commands.sh;raw、配置、checkpoint选择锁、数据provenance、state/GT访问审计与完整性清单保存在本实验目录。", "", f"原生崩溃重跑次数={len(incidents)}(崩溃尝试均归档到audit/failed_attempts且从不使用,见audit/incidents.json);SECONDARY_C2_STATUS={c2_status};CPU亲和性固定为8–23号核。封存前的接手修订见TAKEOVER_AMENDMENTS.md。", "", "TEST_TIME_INPUT=RGB+CAMERA;TEST_TIME_DEPTH_USED=false;FINAL_HOLDOUT_TOUCHED=false;DYNAMIC_TTT_RUN=false。", ] ) summary = ( "16G GEOMETRY-AWARE CARRIER V2 FINAL\n" + "\n".join( f"{k}={str(v).lower() if isinstance(v, bool) else v}" for k, v in fields.items() ) + "\n" ) (root / "README.md").write_text("\n".join(lines) + "\n") (root / "STATUS.md").write_text("```text\n" + summary + "```\n") (root / "terminal_summary.txt").write_text(summary) print(summary) return fields if __name__ == "__main__": p = argparse.ArgumentParser(description=__doc__) p.add_argument("--root", type=Path, required=True) p.add_argument("--docs", type=Path) a = p.parse_args() run(a.root, a.docs)