- var angle = (finger_angle + twirl_angle * finger_point / params.finger_points) * 2 * Math.PI;
- var x = ring_radius * Math.cos(angle);
- var y = ring_radius * Math.sin(angle);
- path.push([x, y, params.finger_height * finger_point / params.finger_points]);
+ var finger_progress = finger_point / params.finger_points;
+ var angle = (finger_angle + twirl_angle * finger_progress) * 2 * Math.PI;
+ var r = ring_radius + widen_scale * Math.exp(finger_progress * params.widen_sharpness);
+ var x = r * Math.cos(angle);
+ var y = r * Math.sin(angle);
+ var z = params.finger_height * finger_progress;
+ path.push([x, y, z]);