Looping "bring your sensor close to the device" illustration for the
searching phase. Drop-in sibling of SensorViewer — same className
sizing contract. The canvas is held at opacity 0 until its first frame has
actually rendered (async model load), then fades in — otherwise the scene
pops in whenever loading finishes, glitching the sheet's opening moment.
Looping "bring your sensor close to the device" illustration for the searching phase. Drop-in sibling of SensorViewer — same
classNamesizing contract. The canvas is held at opacity 0 until its first frame has actually rendered (async model load), then fades in — otherwise the scene pops in whenever loading finishes, glitching the sheet's opening moment.