feat(pointcloud): Hollywood face fx — webcam texture, wireframe, scan line

Adds optional cinematic effects to the face-mesh demo, all toggleable
via a new ?fx= URL param. Default is 'all' (texture + mesh + scan +
halo). Lightweight modes available: ?fx=clean (texture only) or
?fx=points (original solid amber).

- Texture: per-frame webcam → hidden 2D canvas → getImageData lookup
  at each landmark (and each interpolated edge sample). Splats now
  carry the visitor's actual skin tone, not solid amber. Sampling is
  mirrored on x to match the selfie convention used by the face mesh
  vertex placement. All on-device — no frames leave the browser.
- Mesh: persistent THREE.LineSegments overlay drawn from
  FACEMESH_TESSELATION (~1300 edges). Translucent (opacity 0.35),
  amber, additive blending, depthWrite off — gives a holographic
  wireframe wrapping the point cloud. Geometry is updated in place
  each frame; only positions get re-uploaded.
- Scan: vertical bright slab sweeps top→bottom every 4 seconds,
  amplifying splat color up to 2.6× when within ±0.08 world units of
  the line. Westworld-style scanning.
- Halo: existing 60-particle ring around the face is now opt-in via
  FX_HALO. Cleaner default for the texture-mesh combination.

Info panel surfaces active fx list in face-mesh mode. Synthetic
fallback hides the wireframe overlay so it doesn't render against an
empty figure. Workflow README updated with the new ?fx= options.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
ruv
2026-04-29 20:18:15 -04:00
parent 5d7fccce79
commit 347ad4bb11
2 changed files with 190 additions and 27 deletions
+10 -1
View File
@@ -40,7 +40,7 @@ jobs:
Hosted at: https://ruvnet.github.io/RuView/pointcloud/
## Modes
## Transport modes
- Default — synthetic in-browser demo (no backend, no network calls).
- `?backend=auto` — fetch from `/api/splats` on the same origin
@@ -50,6 +50,15 @@ jobs:
- `?live=1` — require a live backend; show an offline message instead
of falling back to the synthetic demo.
## Effect flags (face-mesh mode)
Comma-separated. Defaults to `all`.
- `?fx=all` — texture + mesh + scan + halo (cinematic default).
- `?fx=clean` — webcam-sampled colors only, no overlays.
- `?fx=points` — solid amber points, no extras (lightest mode).
- `?fx=texture,mesh,scan,halo` — pick individual effects.
See ADR-094 for the deployment design.
EOF