gradientbased particles