I have modified the code from MotionAlongCurve and also use delta. Then it is also jerky at delta / 100 but fluid at delta / 10.
const geometry = new THREE.BoxGeometry( 0.2, 0.08, 0.05 );
const material = new THREE.MeshPhongMaterial( { color: 0x99ffff, wireframe: false } );
const objectToCurve = new THREE.Mesh( geometry, material );
const flow = new Flow( objectToCurve );
flow.updateCurve( 0, curve );
scene.add( flow.object3D );
const clock = new THREE.Clock();
let delta;
animate( );
function animate( ) {
delta = clock.getDelta( );
requestAnimationFrame( animate );
//flow.moveAlongCurve( 0.0006 );
flow.moveAlongCurve( delta / 100 );
renderer.render( scene, camera );
}
But why delta at all and not a fixed value?
Maybe it is worth to test another version, e.g. with quaternions.