THREE.JS / FOUNDATIONS 311

Own the source.

A deterministic capture stream crosses the browser media boundary, feeds VideoTexture and THREE.Audio, then gets stopped and rebuilt with its ownership visible.

Preparing capture graph WebGL2

No camera or microphone permission is requested during initialization.

video source lifecycle

Track enabled is a local mute policy; stop() is the terminal lifecycle transition.

permission matrix (synthetic)

Choose a state to classify the expected request outcome without opening a permission prompt.

video source
not attached
video size
waiting
texture
not allocated
video tracks
0
audio tracks
0
track state
—
audio source
empty
audio context
suspended
device probe
not run
fft average
0
frames
0
texture rebuilds
0
draw calls
0
VideoTexture waiting for HTMLVideoElement

The texture is recreated when the source dimensions change.

THREE.Audio mediaStreamNode / waiting

A generated oscillator stream is analyzed after a user gesture resumes Web Audio.

permission boundary synthetic only

Real camera/microphone access remains an explicit action and is not inferred from this lab.

Generated source is safe to restart · permission matrix is simulated · real devices require an explicit click

Continue to XR media layers →

LAB 311 / MEDIA CAPTURE + SOURCE OWNERSHIP