597 lines
14 KiB
Markdown
597 lines
14 KiB
Markdown
# Journal - dingkang (Part 1)
|
||
|
||
> AI development session journal
|
||
> Started: 2026-08-03
|
||
|
||
---
|
||
|
||
|
||
|
||
## Session 1: Initialize Trellis project guidelines
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Initialize Trellis project guidelines
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Initialized Trellis project scaffolding and replaced the incorrect frontend spec templates with project-specific pipeline, Blender, preview, config, and cross-layer guidance. Verified spec layers, placeholder cleanup, key-contract coverage, and Blender pure Python tests.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `4c5981c` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 2: Refactor Cesium material export contract
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Refactor Cesium material export contract
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Moved Cesium material export overrides into catalog-backed material contracts saved as Blender material custom properties. Kept legacy name-table fallback for old .blend files, updated Blender/spec guidance, and verified with unit tests, py_compile, diff check, and parity before/after comparison showing only expected cesium_export blend property diffs.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `0635c09` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 3: Archive osmassets refactor plan
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Archive osmassets refactor plan
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Moved durable conclusions from the temporary osmassets refactor plan into changelog and Trellis specs, removed docs/refactor-plan.md, and verified no live docs/spec references to the deleted plan remain.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `6882921` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 4: Extract fountain module
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Extract fountain module
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Moved fountain assembly from generate_scene.py into blender/osmassets/fountain.py, updated P2 refactor docs, and verified py_compile, 51 pure tests, and Blender/Cesium parity before/after with identical snapshots.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `6271055` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 5: Extract building module
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Extract building module
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Moved building assembly from generate_scene.py into blender/osmassets/building.py, updated P2 refactor docs so only roads remains in generate_scene.py, and verified py_compile, 51 pure tests, and Blender/Cesium parity before/after with identical snapshots.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `032922a` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 6: Extract road assembly module
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Extract road assembly module
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Moved Blender road GeoJSON assembly and OSM fallback roads into blender/osmassets/roads.py while preserving road_counts, Layer catalog warnings, scene metadata, and SCENE_DONE output. Verified py_compile, unittest, task validation, and Blender/Cesium parity before/after as identical for both sample areas.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `0f3c1ee` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 7: Add feature registry dispatch
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Add feature registry dispatch
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Introduced blender/osmassets/features.py with FeatureHandler and dispatch_ways for ordered OSM way feature dispatch. Converted generate_scene.py water/grass/scrub/tree_row/building branches into registry handlers while keeping material order, counts, road warning behavior, scene metadata, and SCENE_DONE unchanged. Verified py_compile, unittest, task validation, and Blender/Cesium parity before/after as identical for both sample areas.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `ff18217` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 8: Clean stale tuft density comment
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Clean stale tuft density comment
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Cleared stale D3 tuft_density_wave comment debt and updated parity guide known-defect records without changing executable scene generation logic. Verified py_compile, 51 pure tests, and task validation.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `f569d45` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 9: Improve Cesium cruise smoothness
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Improve Cesium cruise smoothness
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Reduced Cesium preview cruise stutter by lowering dense scrub bush nodes in nantaizi from 707 to 266, preserving scrub ground cover, and trimming preview route/follow hot-path overhead without lowering default visual clarity. Verified nantaizi blender/cesium/preview rebuild, node --check, py_compile, 51 pure tests, and task validation.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `0d2dc22` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 10: Reject low-poly scrub bush experiment
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Reject low-poly scrub bush experiment
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Tested user-supplied assets/models/custom/bush_low/bush_low.glb for nantaizi scrub edge bushes. Geometry dropped from 63,762 verts / 67,536 indices to 4,044 / 4,050 and GLB size dropped from 31.96 MB to 27.51 MB with 266 scrub bush nodes unchanged, but user validation found the visual effect unsatisfactory. Restored generate_scene.py to the original default bush asset, archived the task, and recorded the rejected experiment in changelog/spec without adding bush_low to git.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `e58a928` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 11: Adopt Shapespark vegetation
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Adopt Shapespark vegetation
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Adopted split Shapespark low-poly plants for nantaizi trees, scrub bushes, and lawn tufts; toned Cesium foliage export, removed retired vegetation assets/loaders, validated nantaizi blender/cesium/preview.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `dbb5705` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 12: Optional GLB compression stage
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Optional GLB compression stage
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added an explicit compress stage and GLB compression script for nantaizi WebP review artifacts without replacing the baseline GLB.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `7ba8594` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 13: Fix OSM multipolygon buildings
|
||
|
||
**Date**: 2026-08-03
|
||
**Task**: Fix OSM multipolygon buildings
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Parsed building multipolygon relations, generated building holes, and respected explicit OSM height for nantaizi relation -65.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `95f8458` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 14: Add area diagnostics command
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add area diagnostics command
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added a fast diagnose:area command for OSM structure, building relation health, artifact status, and GLB digest checks; shared area config normalization between build and diagnostics.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `d4c3baf` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 15: Add GLB stage manifests
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add GLB stage manifests
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added first-version cesium and compress stage manifests under _pipeline/stages, shared manifest helpers, and diagnose:area reporting for missing/stale manifests.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `2832383` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 16: Add area quality gate
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add area quality gate
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added a read-only check:area command backed by shared area diagnostics, documented the quality-gate failure policy, and verified nantaizi pass plus controlled missing-output failure.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `7fcc4ee` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 17: Add full stage manifests
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add full stage manifests
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Extended stage manifests across intermediates, reimport, blender, and preview; added alternate ownership handling and validated the complete nantaizi pipeline.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `5874cf9` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 18: Add OSM area preflight
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add OSM area preflight
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added the read-only preflight:area command, a successful preflight manifest, shared OSM structural checks, and quality-gate freshness validation. OSM diagnostics now ignore action=delete historical objects; verified only nantaizi with unit fixtures, preflight, diagnose, check, and a controlled stale-manifest failure.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `e1f5207` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 19: Add configurable area asset budgets
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Add configurable area asset budgets
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added configurable GLB budgets with documented exceptions, shared budget evaluation for diagnostics, quality gates, and Cesium/compress manifests, plus render-triangle, embedded-image, and source attribution diagnostics. Verified budget tests, preflight tests, nantaizi diagnostics/check, and a controlled low-budget failure without running heavy stages.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `463cb06` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 20: Split area preview orchestration
|
||
|
||
**Date**: 2026-08-04
|
||
**Task**: Split area preview orchestration
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Extracted preview route, vehicle glTF, and HTML/runtime assembly from build-area into focused modules; added preview asset tests and verified nantaizi preview, diagnostics, and quality gate.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `396df51` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 21: Add OSM turn lane arrows
|
||
|
||
**Date**: 2026-08-05
|
||
**Task**: Add OSM turn lane arrows
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added vendored lane-icons assets, tested OSM turn-lane arrow generation and lane-center placement, and normalized crosswalk and stop-line generation around rendered Driving lanes.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `9a23f74` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 22: Cesium semantic inspection preview
|
||
|
||
**Date**: 2026-08-05
|
||
**Task**: Cesium semantic inspection preview
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added semantic Cesium inspection assets and controls; fixed compressed metadata to preserve inspection assets; verified the rebuilt compressed preview.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `607d8fc` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 23: 车辆连续巡航与转弯
|
||
|
||
**Date**: 2026-08-05
|
||
**Task**: 车辆连续巡航与转弯
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
实现 OSM 有向道路图驱动的连续往返车辆路线,支持 turn:lanes 转向筛选、单行限制、路口曲线与端点调头;Cesium 路线选择显示编号、长度及左/右/直统计,并补充路线 JSON 中文契约与自动化验证。
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `30846b6` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 24: 拆分 LowPoly Cars 车辆资产
|
||
|
||
**Date**: 2026-08-05
|
||
**Task**: 拆分 LowPoly Cars 车辆资产
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
拆分 LowPoly Cars 资产库并接入 Cesium 预览候选集;每条巡航路线独立随机选模型,修正贴图、亮度、比例和 Truck A03 行驶方向;导入脚本支持脱离 Blender 验证已入库资产。
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `3108336` | (see git log) |
|
||
| `2489b8a` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 25: Cesium traffic signal countdowns
|
||
|
||
**Date**: 2026-08-06
|
||
**Task**: Cesium traffic signal countdowns
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Added shared 7LED countdown geometry, split dynamic Cesium assets by phase group for reliable lamp-matched colors, documented the inverse-font and exporter grouping contracts, and verified the preview asset and Blender Python test suites.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `0e1574f` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 26: 交通信号拓扑与部分构建同步修复
|
||
|
||
**Date**: 2026-08-07
|
||
**Task**: 交通信号拓扑与部分构建同步修复
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
基于 OSM highway=traffic_signals 控制节点生成 T/十字路口信号,复用共享 OSM 解析;Blender stage 每次重写交通信号锚点,避免部分构建沿用旧 JSON 导致 GLB 与 Cesium 预览 signal id 错位。验证了 nantaizi 区域 35 盏信号、动态/倒计时 GLB、Safari 预览和 preview-assets 测试。
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `1c077a3` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 27: QGIS traffic signal editing and countdown stability
|
||
|
||
**Date**: 2026-08-07
|
||
**Task**: QGIS traffic signal editing and countdown stability
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
Implemented editable traffic signal assemblies in QGIS with stable IDs, position/heading overrides, reimport ownership, source validation, and Blender/Cesium runtime derivation. Fixed long signal IDs overflowing Blender node names with short nodeKey values, and changed QGIS SVG symbols to direct heading_deg field rotation so QGIS rotation edits write back to the field. Verified real GeoPackage round-trip, focused Node tests, preview tests, and 59 Blender tests. Safari cache caused stale GLB symptoms and was resolved with a hard refresh.
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `e153a1c` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|
||
|
||
|
||
## Session 28: 默认压缩交付
|
||
|
||
**Date**: 2026-08-11
|
||
**Task**: 默认压缩交付
|
||
**Branch**: `main`
|
||
|
||
### Summary
|
||
|
||
将 GLB 压缩纳入默认构建并使用标准产物路径交付,移除并列压缩输出契约;同步诊断、测试与文档。
|
||
|
||
### Git Commits
|
||
|
||
| Hash | Message |
|
||
|------|---------|
|
||
| `0790cbd` | (see git log) |
|
||
|
||
### Status
|
||
|
||
[OK] **Completed**
|