Skip to content

feat(examples): Tree Lab, Citrus, forest and unified world demos - #808

Open
charlieforward9 wants to merge 25 commits into
codex/tree-forest-performancefrom
codex/citrus-tree-lab
Open

charlieforward9 wants to merge 25 commits into
codex/tree-forest-performancefrom
codex/citrus-tree-lab

Conversation

@charlieforward9

@charlieforward9 charlieforward9 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Add native Tree Lab, Citrus, 10K/20K forest and geographic world examples and website entries. The world demo uses the unified public TreeLayer, flat accessors and explicit budgets.

Pause wind at the rendered clock, preserve offscreen specimen poses and Forest wind phase across hidden tabs without rebuilding wind-off inventories, resume the Tree Lab, Citrus and Forest tours without advancing through pauses or hidden-tab intervals, refresh current sunlight when wind-off specimens re-enter, use one sunlight model for cycling and manual control, retain cycled sunlight across shadow toggles, frame large single-species grids with their computed pullback zoom and keep film startup errors visible after cleanup. World measurements count every completed draw independently of frame intervals and abort on renderer errors. Benchmark errors reject samples; closing cancels idle timers, camera animation callbacks and queued repeated samples. Actual winter ground pixels verify partial wood coverage, and a resumed timeline update verifies that hidden wall time is excluded.

The forest control fixture retains all 20K source rows and highest native geometry with a bounded logical viewport/framebuffer, 128-pixel shadow maps and fewer than 256 wood casters in the grazing close view with shadows enabled only after entering that view, then restores full-inventory framing for all four seasons; production maps retain their 1024-pixel default and full-resolution receiver tests cover shadow pixels; dedicated lab tests assert actual pixels. The all-species ownership fixture retains all sixteen renderers at 160 by 120 pixels; separate species cases retain full-size pixel checks. The wind-clock control fixture uses a bounded real view, stops automatic raster work after the live pose exists and explicitly renders its frozen source before testing engine-time updates. World UI/report fixtures retain real Deck/tiled TreeLayer with empty source pages; separate source and rendering contracts verify streamed data and pixels.

Base: #806. #809 migrates Seasonal Farm and removes the legacy three workspace. #815 remains independent from #814.

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.

Ordinary headless CI explicitly uses software WebGL on GitHub runners. The same provider passed all three forest cases locally; the dedicated required-adapter lane continues to verify WebGPU separately.

Stack graph:

flowchart TD
  M[master] --> A["#807 prepared Composite SplatLayer"]
  A --> B["#814 shared static/RAD scenes"]
  B --> C["#794 native TreeLayer"]
  C --> D["#806 unified inventories"]
  D --> E["#808 tree examples"]
  E --> F["#809 migration / three removal"]
  B --> G["#815 independent Coit"]
  L["luma 9.4-release"] --> H["luma #3398 host/RAD support"]
  H -. compatible release .-> B
Loading

Full stack record.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Coverage

Stmts: 40.21% ▲+6.76% | Branch: 31.30% ▲+7.10% | Funcs: 33.52% ▲+5.48% | Lines: 39.71% ▲+6.33%

Test Files 136 passed (136)

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread examples/layers/tree-lab/app.ts
@charlieforward9
charlieforward9 force-pushed the codex/tree-forest-performance branch from e2318e8 to 5f8b7c4 Compare October 7, 2026 01:46

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread examples/layers/tree-lab/film.ts Outdated
@greptile-apps

greptile-apps Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Low risk] Adds example applications and documentation for tree rendering.

The changes since the previous review appear safe to merge.

What we checked:

  • Required WebGPU checks stay separate: No. REQUIRE_WEBGPU is checked first. When enabled, Chrome still receives the flags that select the SwiftShader WebGPU adapter.

Summary

Adds Tree Lab, Citrus Lab, forest and synthetic world demos, website entries, comparison recordings and browser checks.

  • The change since the previous review explicitly uses SwiftShader for WebGL in GitHub Actions.
  • The separate adapter-required WebGPU configuration remains unchanged.
  • No new actionable issues were found.

Reviews (21) · Last reviewed commit: "test: use explicit software WebGL for he..." · Reviewed by Greptile

Comment thread website/src/examples/layers/tree-world.tsx Outdated
Comment thread examples/layers/tree-lab/world.ts
Comment thread examples/layers/tree-lab/world.ts
Comment thread examples/layers/tree-lab/film.ts Outdated
@charlieforward9
charlieforward9 force-pushed the codex/tree-forest-performance branch from 5f8b7c4 to 4216f6e Compare October 7, 2026 02:31
Comment thread examples/layers/tree-lab/film.ts

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread examples/layers/tree-lab/forest.ts
Comment thread examples/layers/tree-lab/citrus.ts

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread examples/layers/tree-lab/tree-lighting.ts
Comment thread examples/layers/tree-lab/forest.ts
Comment thread examples/layers/tree-lab/world.ts Outdated
Comment thread examples/layers/tree-lab/tree-profiler.ts
Comment thread examples/layers/tree-lab/citrus.ts Outdated
@charlieforward9
charlieforward9 force-pushed the codex/tree-forest-performance branch from e9ab8c9 to 71af59b Compare October 7, 2026 20:47
@charlieforward9
charlieforward9 force-pushed the codex/tree-forest-performance branch from 71af59b to eb378bc Compare October 7, 2026 20:51

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread examples/layers/tree-lab/forest.ts
@charlieforward9
charlieforward9 force-pushed the codex/tree-forest-performance branch from ac3e9f1 to 40f776c Compare October 8, 2026 04:57

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ 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 aaad10c. Configure here.

Comment thread examples/layers/tree-lab/app.ts Outdated
Comment thread examples/layers/tree-lab/app.ts

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant