With the cursor outside the reach circle, blown grains aim at the circle's edge in the cursor's direction instead of flying all the way to the cursor, and the blow preview stops there too. New test/t_nozzle.js and a play.py preview check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>