feat(cam): WebGL web rendering backend mockup (CAM/web) #68

Merged
patman merged 1 commit from patman/cam-web into main 2026-07-10 16:38:43 +00:00 AGit
Owner

Self-contained raw-WebGL CAM toolpath viewer — the GPU-capable counterpart to
the CPU mockup in CAM/viz. Renders the same canned scene (orbit machine bed,
serpentine pocket toolpath as a cut-progress gradient ribbon, tool head + axis,
axis tripod) in real WebGL; HUD chrome is DOM/CSS over the canvas. Zero runtime
deps; classic script so it loads over file://. Toolpath drawn as triangle
ribbons (GL lineWidth is unreliable) and as a depth-independent overlay so the
pocket-floor pass is not buried in the solid stock.

Headless-verified on the Pi via the cached Playwright headless_shell +
SwiftShader (CAM/web/verify.sh) — no GPU/display. Wired into Buck as a GATED
genrule (//CAM/web:screenshot, -c cam.render=true) that runs verify.sh and emits
the validated PNG; incompatible-by-default so wildcard builds skip it (the action
is non-hermetic — host browser, local-exec only). Mockup geometry only, NOT the
CAM path core.

Adversarially reviewed twice (REWORK on the viewer, REJECT on the first
ungated buck target) -> addressed; re-reviewed PASS.

Stacks on #43.

Co-authored-by: patman-assist patrick-ai@kgroo.co

Self-contained raw-WebGL CAM toolpath viewer — the GPU-capable counterpart to the CPU mockup in CAM/viz. Renders the same canned scene (orbit machine bed, serpentine pocket toolpath as a cut-progress gradient ribbon, tool head + axis, axis tripod) in real WebGL; HUD chrome is DOM/CSS over the canvas. Zero runtime deps; classic script so it loads over file://. Toolpath drawn as triangle ribbons (GL lineWidth is unreliable) and as a depth-independent overlay so the pocket-floor pass is not buried in the solid stock. Headless-verified on the Pi via the cached Playwright headless_shell + SwiftShader (CAM/web/verify.sh) — no GPU/display. Wired into Buck as a GATED genrule (//CAM/web:screenshot, -c cam.render=true) that runs verify.sh and emits the validated PNG; incompatible-by-default so wildcard builds skip it (the action is non-hermetic — host browser, local-exec only). Mockup geometry only, NOT the CAM path core. Adversarially reviewed twice (REWORK on the viewer, REJECT on the first ungated buck target) -> addressed; re-reviewed PASS. Stacks on #43. Co-authored-by: patman-assist <patrick-ai@kgroo.co>
feat(cam): WebGL web rendering backend mockup (CAM/web)
Some checks failed
CI / build-test (pull_request) Has been cancelled
5e3325d58f
Self-contained raw-WebGL CAM toolpath viewer — the GPU-capable counterpart to
the CPU mockup in CAM/viz. Renders the same canned scene (orbit machine bed,
serpentine pocket toolpath as a cut-progress gradient ribbon, tool head + axis,
axis tripod) in real WebGL; HUD chrome is DOM/CSS over the canvas. Zero runtime
deps; classic script so it loads over file://. Toolpath drawn as triangle
ribbons (GL lineWidth is unreliable) and as a depth-independent overlay so the
pocket-floor pass is not buried in the solid stock.

Headless-verified on the Pi via the cached Playwright headless_shell +
SwiftShader (CAM/web/verify.sh) — no GPU/display. Wired into Buck as a GATED
genrule (//CAM/web:screenshot, -c cam.render=true) that runs verify.sh and emits
the validated PNG; incompatible-by-default so wildcard builds skip it (the action
is non-hermetic — host browser, local-exec only). Mockup geometry only, NOT the
CAM path core.

Adversarially reviewed twice (REWORK on the viewer, REJECT on the first
ungated buck target) -> addressed; re-reviewed PASS.

Stacks on #43.

Co-authored-by: patman-assist <patrick-ai@kgroo.co>
patman merged commit d1bb1d588f into main 2026-07-10 16:38:43 +00:00
Sign in to join this conversation.
No description provided.