Monorepo for Aesthetic.Computer aesthetic.computer
core reports video-underlay-ui-diagnostics.md
2.3 kB

Video Underlay + UI Layering — Diagnostics (2026-01-28) #

Summary of request #

  • Underlay video should sit behind the UI and any in-canvas controls.
  • UI buttons must remain visible during presentation.
  • “RECORDING” indicators should be overlay-only, not baked into the buffer.
  • Black/opaque background and subtle border should not obscure the video.

Current layering model #

  • Underlay: DOM element inserted during recorder presentation.
  • Main canvas: draws piece UI (buttons, labels) and transparent background in video.mjs.
  • Glaze canvas: WebGL effects layer (opaque by default due to alpha: false).
  • UI canvas: HUD controls and overlays (z-index 6).
  • Recording UI canvas: overlay-only by design (not captured).

Findings #

  1. Glaze canvas is opaque by construction (WebGL2 alpha: false), so it must be hidden during presentation.
  2. The draw loop applies a global opacity = 0.95 whenever an underlay exists, which darkens the entire canvas and creates the “black wash” impression.
  3. Body has a checkerboard background (dark) which can appear at the edges if any layout gaps exist.
  4. The video piece already uses wipe(0,0,0,0) when presenting to keep the buffer transparent.

Changes applied #

1) Stop dimming the main canvas during underlay playback #

  • Remove forced opacity: 0.95 during underlayFrame playback.
  • Ensure canvas remains transparent only while presenting.

2) Hide glaze canvas during presentation #

  • Keep main canvas visible for UI drawing.
  • Hide glaze canvas (display none) while underlay is active.

3) Keep wrapper background transparent while presenting #

  • Avoid body or wrapper backgrounds bleeding through.

Open questions #

  • If “RECORDING” is still appearing in-buffer, confirm whether it is being drawn by the piece or by a non-overlay pipeline in BIOS.
  • If residual borders remain, validate whether #aesthetic-computer has any scaling or letterboxing logic that can expose the body background.

Next validation checklist #

  • Present a tape in video.mjs and confirm:
    • Buttons are visible (drawn by the piece).
    • The underlay video is fully visible beneath the buffer.
    • No darkening of the canvas when presenting.
    • “RECORDING” appears only in overlay (recording UI canvas), not in recorded frames.