GPU Compositor Lab STEP 1 · isolated prototype
One THREE.js output canvas, fed by an existing Canvas2D operator as a texture (DPR-correct). Recording captures this exact canvas — so LIVE == EXPORT by construction. Does NOT touch the cockpit, projector, or existing recorder.
Proven here: route loads · one operator renders through a THREE.js (WebGL) compositor ·
DPR-correct output canvas · resize via ResizeObserver · live FPS · captureStream records the same canvas → export WebM.
NOT yet (step 2+): multi-layer texture compositing · in-shader blend modes · vector line node · butterchurn/projectM texture source · cockpit/projector still on the existing Canvas2D+CSS path (unchanged).
NOT yet (step 2+): multi-layer texture compositing · in-shader blend modes · vector line node · butterchurn/projectM texture source · cockpit/projector still on the existing Canvas2D+CSS path (unchanged).