Skip to content

feat(renderer): add Canvas Lab with signals-driven 2D and WebGL2 panes - #20

Merged
simonhagger merged 1 commit into
mainfrom
feat/canvas-webgl-lab
Aug 23, 2026
Merged

feat(renderer): add Canvas Lab with signals-driven 2D and WebGL2 panes#20
simonhagger merged 1 commit into
mainfrom
feat/canvas-webgl-lab

Conversation

@simonhagger

Copy link
Copy Markdown
Owner

Summary

  • New dependency-free Canvas Lab page (lab nav section, lazy route)
  • 2D pane: animated sine-wave particle field via \CanvasRenderingContext2D\
  • WebGL2 pane: live fragment-shader plasma quad tinted by accent signal
  • Single rAF loop runs outside Angular change detection (zoneless-friendly); density/speed/accent/pause controls are signals read per frame
  • GPU diagnostics: unmasked renderer string, max texture size, WebGPU availability probe
  • Lifecycle hygiene: rAF cancel + ResizeObserver disconnect + \WEBGL_lose_context\ on destroy; DPR-aware resize

Validation

  • Renderer production build green (Canvas Lab correctly excluded from prod route set by existing \�pp.routes.prod.ts\ design); dev build emits 27.77 kB lazy \canvas-lab-page\ chunk

  • enderer:test\ green including new create/teardown spec;
    enderer:lint\ green
  • Live-verified in Electron dev app against renderer dev server on port 4210

Security Checklist

  • Security review completed
  • Threat model updated or N/A explained
  • Confirmed no secrets/sensitive data present in committed files

- New lab route rendering an animated particle wave field via
  CanvasRenderingContext2D and a live fragment-shader quad via WebGL2
- Single requestAnimationFrame loop outside Angular change detection;
  controls (density/speed/accent/pause) are signals read per frame
- GPU diagnostics pane: renderer string, max texture size, WebGPU probe
- Full teardown on destroy: rAF cancel, ResizeObserver disconnect,
  WEBGL_lose_context; DPR-aware resize handling
- Lazy route entry in registry (27.77 kB chunk); spec covers create+teardown
@simonhagger
simonhagger merged commit 2b034f0 into main Aug 23, 2026
17 checks passed
@simonhagger
simonhagger deleted the feat/canvas-webgl-lab branch August 23, 2026 19:15
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