Files
osmWorkflow/.trellis/tasks/archive/2026-08/08-03-use-low-poly-scrub-bush/prd.md

2.0 KiB

Use low-poly scrub bush asset

Goal

Prefer the new custom low-poly scrub bush asset for scrub edge instances and validate nantaizi-lake-innovation-valley Blender/Cesium/preview output.

The user supplied assets/models/custom/bush_low/bush_low.glb. The goal is to test whether using it reduces scrub bush mesh cost and improves Follow smoothness without losing scrub ground cover or breaking material tinting.

Requirements

  1. Update blender/generate_scene.py to prefer assets/models/custom/bush_low/bush_low.glb for scrub edge bushes.
  2. Keep assets/models/custom/bush/bush.glb as a fallback if the low asset is missing or fails to import.
  3. Preserve deterministic scrub edge sampling and current scrub density budget: SCRUB_BUSH_SPACING = 1.8, SCRUB_BUSH_LIMIT_PER_PATCH = 60.
  4. Preserve existing material tint behavior based on material names containing leaf, trunk, or twig.
  5. Rebuild nantaizi-lake-innovation-valley stages blender,cesium,preview.
  6. Measure and report:
    • SCENE_DONE.scrub_bushes
    • GLB total nodes
    • scrub bush node count
    • scrub bush mesh vertex/index bytes or primitive counts from GLB digest
    • output GLB size
  7. Do not change road/building/tree/vehicle route behavior.

Acceptance Criteria

  • generate_scene.py prefers bush_low.glb and falls back to bush.glb.
  • python3 -m py_compile blender/generate_scene.py passes.
  • python3 -m unittest blender/tests/test_pure.py passes.
  • npm run build:area -- --config config/areas/nantaizi-lake-innovation-valley.json --stages blender,cesium,preview passes.
  • GLB digest confirms scrub bush nodes remain about 266 and scrub ground metadata remains present.
  • Task report/changelog records whether bush_low meaningfully reduced mesh cost and whether it is worth keeping.

Out Of Scope

  • Compressing textures or changing baked material export.
  • Replacing the preview car asset.
  • Runtime LOD implementation.
  • Further changing scrub density unless low asset validation shows it is needed.