THREE.JS / FOUNDATIONS 329
Pick the graph, not the guess.
A faithful picker contract for the official TSL Graph editor: raycast the primary scene, accept only NodeMaterials with a graph ID, ignore drags, and dispose the bounding-box helper when selection ends.
Initializing picker contract—
Preparing the pinned r185 scene and primary-pass frame.
The matrix is waiting for pointer gestures.
- reviewed
- 7 lanes
- implemented
- 0 / 7
- runtime
- 0 / 7
- selected
- none
- helper
- disposed
- gestures
- 0
PRIMARY PASSwaitingfirst Scene render in the pinned frame
NODE MATERIALwaitingclassic materials never enter the graph picker
GRAPH IDwaitingmissing IDs are gated before graph loading
CLICK / DRAGwaitingmovement over 2px is not a selection
BOX HELPERwaitingold helpers are removed and disposed
CURRENT-DEVsource-onlygetPrimaryPass() drift is not mixed into r185
RELEASEwaitingrenderer, scene resources, and helper are released
Contract: the native r185 editor picker walks inspector.getFrame().renders; current-dev exposes getPrimaryPass(). This lab executes the pinned frame contract and records the current-dev difference as source-only. It does not open the remote editor iframe or claim graph-code editing.
TSL graph picker is unavailable here.This contract intentionally requires a WebGPU renderer; no WebGL2 imitation is presented as native TSL Graph editing.
TSL graph picker initialization failed.The picker contract could not initialize.
The route follows the official Raycaster, BoxHelper, and NodeMaterial surfaces plus the TSL editor example.
GRAPH ID
NodeMaterial
NodeMaterial
NO GRAPH ID
gated
gated
CLASSIC MATERIAL
ignored
ignored
LAB 329 / TSL GRAPH PICKER