diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 06:12:57 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 06:12:57 +0800 |
| commit | ec49a835361fd0f6d92a41204dcc9547073b46ee (patch) | |
| tree | e487c692e327484bfc813db2f65cb6a43a13b4cc /docs | |
| parent | 166fbeb4efd1c36c5c8289defdf480c89835d540 (diff) | |
| download | living-village-ec49a835361fd0f6d92a41204dcc9547073b46ee.tar.gz | |
p64: 整改桥梁栏杆可辨(深墨栏体/亮扶手/望柱)与内景四角布局(Hermes vision 复核)
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/evidence/p64-analysis.txt | 14 | ||||
| -rw-r--r-- | docs/evidence/p64-bridge.png | bin | 111350 -> 111188 bytes | |||
| -rw-r--r-- | docs/evidence/p64-interior.png | bin | 73380 -> 73415 bytes | |||
| -rw-r--r-- | docs/evidence/p64-overview.png | bin | 110787 -> 110637 bytes | |||
| -rw-r--r-- | docs/evidence/p64-run-log.txt | 2 | ||||
| -rw-r--r-- | docs/evidence/p64-verification.txt | 83 |
6 files changed, 47 insertions, 52 deletions
diff --git a/docs/evidence/p64-analysis.txt b/docs/evidence/p64-analysis.txt index e23e475..671f54e 100644 --- a/docs/evidence/p64-analysis.txt +++ b/docs/evidence/p64-analysis.txt @@ -4,20 +4,22 @@ P64(A3 成熟度)证据分析 — 真实 Desktop 实跑 xvfb 1280x720 plan: upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8 -p64-overview.png 1280x720 mean=86.3 std=33.2 max_dark_block=0 max_white_block=15 -p64-bridge.png 1280x720 mean=86.0 std=33.0 max_dark_block=0 max_white_block=15 +p64-overview.png 1280x720 mean=86.3 std=33.3 max_dark_block=0 max_white_block=15 +p64-bridge.png 1280x720 mean=86.0 std=33.1 max_dark_block=0 max_white_block=15 p64-interior.png 1280x720 mean=118.7 std=54.1 max_dark_block=0 max_white_block=52 overview upper-band non-background ratio (y 120..360) = 0.1812 (P62 基线 0.1030) -bridge region wood-pixel ratio (x 560..720, y 360..500) = 9604/22400 = 0.4288 +bridge region wood-pixel ratio (x 560..720, y 360..500) = 9065/22400 = 0.4047 +rail strips [p64-overview] cam=(384,344) left=0.942 right=0.933 (threshold 0.7) +rail strips [p64-bridge] cam=(384,568) left=1.000 right=0.996 (threshold 0.7) log: p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside log: p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) log: p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside -p64-overview vs p64-bridge mean_abs_diff=12.5 -p64-overview vs p64-interior mean_abs_diff=51.0 -p64-bridge vs p64-interior mean_abs_diff=51.0 +p64-overview vs p64-bridge mean_abs_diff=12.6 +p64-overview vs p64-interior mean_abs_diff=51.1 +p64-bridge vs p64-interior mean_abs_diff=51.1 缺字空白位 total=0(三帧仅中文经 CjkGlyphAtlas 绘制;P61 覆盖测试绿) diff --git a/docs/evidence/p64-bridge.png b/docs/evidence/p64-bridge.png Binary files differindex 5ce6060..5149ff6 100644 --- a/docs/evidence/p64-bridge.png +++ b/docs/evidence/p64-bridge.png diff --git a/docs/evidence/p64-interior.png b/docs/evidence/p64-interior.png Binary files differindex 8806462..fcc8741 100644 --- a/docs/evidence/p64-interior.png +++ b/docs/evidence/p64-interior.png diff --git a/docs/evidence/p64-overview.png b/docs/evidence/p64-overview.png Binary files differindex 775bcb6..414483b 100644 --- a/docs/evidence/p64-overview.png +++ b/docs/evidence/p64-overview.png diff --git a/docs/evidence/p64-run-log.txt b/docs/evidence/p64-run-log.txt index 0d9529a..826da18 100644 --- a/docs/evidence/p64-run-log.txt +++ b/docs/evidence/p64-run-log.txt @@ -9,6 +9,6 @@ new-game=ok seed=42 npcs=30 occupation=农夫 tick=0 p64-plan upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8 p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside -fps=60.0 tick=2592015 pos=(1008,872) +fps=60.0 tick=2592008 pos=(1008,891) p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) p64-shot=done diff --git a/docs/evidence/p64-verification.txt b/docs/evidence/p64-verification.txt index 690ea31..4942afd 100644 --- a/docs/evidence/p64-verification.txt +++ b/docs/evidence/p64-verification.txt @@ -1,36 +1,31 @@ -P64(A3 成熟度:样板三处视觉缺口)验证记录 -commit 前置:HEAD=128164d(docs tick) - -变更(仅限现有江南样板,不扩展全村) -1. 好处:村庄俯瞰上半部空旷 - - `VillageArt.sampleRenderPlan` 在 local y0..6 / x0..19 补种(复用既有 RenderPropKind 与低饱和配色): - 4 菜畦(2格) + 2 竹丛(3格) + 2 灌木 + 2 花丛,并铺北侧田埂石径 x0..19 y0。 - - 无新增几何占位:全部走既有 GardenSprite/BambooSprite/ShrubSprite/FlowerSprite 与 StonePath。 -2. 桥梁可读性 - - `scripts/make-jiangnan-art.py` 重绘 slot5:栈板桥面 + 两侧通长木栏杆 + 望柱 + 石缘(单格 32px,尺寸不变)。 - - `VillageArt.drawBridge` 在桥两侧水线补 4 块护岸石(`bridgeAbutmentOffsets`,仅江南图集;cc0 不变); - 桥位置与通行逻辑零改动。 -3. 民居内景下半家具 - - `InteriorElementKind` 增 Chair/Stool/BedFoot/Teapot;图集在 392x96 自由区新增 4 个绘制单元, - `interiorSourceRectangle`/`elementDestination` 同步;`sampleRenderPlan.Interior` 4 → 8 件。 - - 进门流程与 HomeMode 语义未改(内部元素纯绘制)。 +P64 整改(Hermes vision 复核不通过)验证记录 +基线:commit 4971a2a(保留,不重写历史);本单在其上整改。 + +整改三点 +1) 桥梁栏杆可读性(原未达目标) + - `scripts/make-jiangnan-art.py` slot5 重绘为「深墨栏杆体 (34,28,30) + 暖亮扶手线 (214,196,158) + + 亮色望柱」三段对比;桥面木色 (119,76,47) 为中间调,栏杆与桥面差 >= 2 档。单格 32px、尺寸不变。 + - analyze-p64.py 新增判据 4「栏杆可辨」:按日志相机定位桥格,取两侧栏杆条带(相对桥格 + x 偏移 1..6 与 26..31,纵向 3 格);栏杆像素口径 = 亮色 r>150&g>130&b>100 或深色 r/g/b<80 + (纯桥面木色 ≈(119,77,47) 两类都不满足),要求左右两条带各自 rail_ratio >= 0.70。 +2) 内景布局 + - `sampleRenderPlan.Interior` 改排到全屋四角/沿墙:窗(18,1) 上墙中、床(33,2)+床尾凳(33,5) 右上、 + 屏风(34,11) 右下、桌(5,8)+椅(8,8)+壶(9,8) 左中、凳(5,11) 左下。 + - 新增纯函数 `interiorElementScreenRect`(drawInterior 改用它),供「不重叠/不压道」回归复用。 + - P64EvidenceTests 新增 `InteriorFurnitureIsSpreadAcrossRoomAndNonOverlapping`:8 件两两不重叠、 + 覆盖 4 个象限、不覆盖房间中心通道。 +3) 回归与收口:见下。 改动文件 -- scripts/make-jiangnan-art.py(桥 slot5 + 内景 4 家具单元) -- src/LivingVillage.Desktop/Assets/jiangnan-world.png, jiangnan-interior.png(脚本重生成,尺寸不变) -- src/LivingVillage.Desktop/VillageArt.fs(类型/源矩形/落位/补种/护岸石/采样) -- src/LivingVillage.Desktop/Game.fs(新增 LV_P64_SHOT 钩子,+~100 行,无删除) -- src/LivingVillage.Desktop.Tests/P64EvidenceTests.fs(新,+3 测试)+ fsproj -- src/LivingVillage.Desktop.Tests/PrototypeTests.fs(内容计数更新:内景元素 4→8;footprint 37→55) -- scripts/analyze-p64.py(新) - -构建 -dotnet build LivingVillage.sln -c Release → 已成功生成,0 错误,1 警告(P40ArtTests.fs(38,28) FS0760,既有) +- scripts/make-jiangnan-art.py、src/LivingVillage.Desktop/Assets/jiangnan-world.png +- scripts/analyze-p64.py(新增判据 4) +- src/LivingVillage.Desktop/VillageArt.fs(slot5 语义注释、interiorElementScreenRect、内景改排) +- src/LivingVillage.Desktop.Tests/P64EvidenceTests.fs(新增布局回归) +- docs/evidence/p64-{overview,bridge,interior}.png、p64-analysis.txt、p64-run-log.txt(重出) -测试 -dotnet test LivingVillage.sln -c Release --no-build -- Desktop 313/313(310 → +3:P64EvidenceTests) -- Kernel 119/119 +构建/测试 +- dotnet build LivingVillage.sln -c Release → 0 错误,1 警告(P40ArtTests.fs FS0760,既有) +- dotnet test LivingVillage.sln -c Release --no-build → Desktop 314/314(313→+1),Kernel 119/119 证据实跑(真实 Desktop + xvfb 1280x720) LV_P64_SHOT=1 LV_LEGACY_MAP=1 xvfb-run -a -s "-screen 0 1280x720x24"(exit=0) @@ -39,23 +34,21 @@ log: p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) -(内景为真实 Sim.step 向门口移动后真实 Interact 进门,tick 前进 56) -scripts/analyze-p64.py /tmp/opencode/lv-p64 docs/evidence/p64-analysis.txt → verdict: PASS - p64-overview.png 1280x720 mean=86.3 std=33.2 黑块=0 白块=0 - p64-bridge.png 1280x720 mean=86.0 std=33.0 黑块=0 白块=0 - p64-interior.png 1280x720 mean=118.7 std=54.1 黑块=0 白块=0 - 俯瞰上半部内容密度(y120..360 非背景占比)= 0.1812,P62 同带基线 0.1030(+76%) - 桥区域木色像素占比(x560..720,y360..500)= 9604/22400 = 0.4288 - 三帧两两不同(min mean_abs_diff=12.5);缺字空白位=0 -scripts/check-no-white-blocks.py 三帧 → checked=3 failures=0 OK +scripts/analyze-p64.py → verdict: PASS + p64-overview 1280x720 mean=86.3 std=33.3 黑块=0 白块=0 + p64-bridge 1280x720 mean=86.0 std=33.1 黑块=0 白块=0 + p64-interior 1280x720 mean=118.7 std=54.1 黑块=0 白块=0 + 俯瞰上半部内容密度 (y120..360) = 0.1812(P62 基线 0.1030) + 桥区域木色占比 = 0.4047 + 栏杆条带占比:overview left=0.942 right=0.933;bridge left=1.000 right=0.996(阈值 0.70) + 三帧两两不同;缺字空白位=0 +check-no-white-blocks.py 三帧 → failures=0 确定性 -LivingVillage.Headless.dll --performance-baseline ×3 → final_digest= -953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C ×3,performance_determinism=PASS +--performance-baseline ×3 → 953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C ×3,PASS 边界 -- 未改 Kernel/Sim.fs、Sim.step、地图/seed 口径、HUD/对话框结构、字形表、进门流程/HomeMode 语义 -- 未引外部素材;未生成 512×384;未 push -- 桥位置与通行逻辑未动(只加护岸石/栏杆贴图) -- 逐帧视觉复核仍受本写入模型不支持图像输入限制(P60 G3),需 vision 能力方复核 +- 未改 Kernel/Sim、HUD 结构、字形表、外部素材、进门流程/HomeMode、512x384;未 push +- 逐帧视觉复核仍受本写入模型不支持图像输入限制(P60 G3)——本单按 Hermes vision 结论整改并量化; + 最终可否通过仍需 vision 能力方复核(范围外,不做) |
