// TSL Compute Node Pipeline Generator
const positionA = storage( positionBufferA, 'vec3', 100000 );
const positionB = storage( positionBufferB, 'vec3', 100000 );
const progress = uniform( 0.0 );
const noiseFreq = uniform( 1.8 );
const computeTransition = Fn( () => {
const pA = positionA.element( instanceIndex );
const pB = positionB.element( instanceIndex );
const noise = mx_noise_float( pA.mul( noiseFreq ) );
const morphed = mix( pA, pB, easeInOutCubic( progress ).add( noise.mul( 0.1 ) ) );
positionA.element( instanceIndex ).assign( morphed );
} )();
WebGPU TSL Compute Lab | Active State: Sphere Morphing (100,000 Particles) | FPS: 60