Repository navigation
feat(layers): prepared Composite SplatLayer and shared budgets - #807
charlieforward9 wants to merge 7 commits into
Conversation
CoverageStmts: 35.90% ▲+2.45% | Branch: 26.40% ▲+2.20% | Funcs: 30.15% ▲+2.11% | Lines: 35.60% ▲+2.22%
|
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d8d5c02. Configure here.
d8d5c02 to
5e80a2d
Compare
ibgreen
left a comment
There was a problem hiding this comment.
Reviewed the prepared-source/input API, CompositeLayer/primitive boundary, shared selection budgets, immutable source caching, refinement/coverage behavior, shadows and owner picking.
Fit: the generic SplatLayer belongs in layers, with botany and example-specific logic kept out. The prepared asset descriptor and per-owner getSource API provide reusable composition for TreeLayer and other consumers. Internal source/hierarchy/budget helpers are suitably separated.
API follow-ups: make the distinction between settled submission caps, coverage floors, transition headroom and hard GPU-memory limits prominent; users should not interpret maxSplats/maxTotalSplats as hard memory caps. Keep the legacy source/hierarchy path documented as compatibility input and prefer prepared descriptors in new examples.
Hosted lint, Node, headless and website checks pass, and no unresolved inline threads were present. The final mergeability recheck reports conflicts with master; rebase/reconcile and revalidate before landing.
Approved with that merge gate. This was source/diff and hosted-CI review; no local suites rerun.

Introduce the public Composite SplatLayer for prepared assets and owner rows, with shared local/parent/frame budgets, spatial selection, materials, wind and projected shadows. Preserve legacy source/hierarchy input alongside direct prepared-data input.
Retained shadow selections track replacement asset offsets and new geographic origins, including refill after an empty inventory. Camera and light error use each owner's local metric scale. Budget allocation skips dominated levels in nonmonotonic supplied hierarchies, retaining coverage without overcharging refinement.
Base: master. The shared scene runtime in #814 builds on this PR independently of TreeLayer.
Final integration validation: immutable install, lint, package build, strict public/example types, production example bundles and website build pass. All 1,128 Node tests and 22 renderer browser contracts pass. All 28 Tree Lab, Citrus, forest and world application cases pass across the full-suite and focused final-fixture reruns. Renderer tests require software WebGPU and exercise both sorted backends.
Stack graph:
Full stack record.