1)Какой нойз подаешь в volumevop-так он у тебя и смещает в солвере.
Тебе над только в x,z смещать(сейчас он у тебя по всем 3ём векторам)
По сути тебе мб над cross product брать и всё и добавлять уже нойз если надо по y.
Не понятно какой результат тебе нужен,если есть пример с ютупчика или ваймео было бы понятнее,тебе над чтоб они ток слайсились по поверхности(то тогда тебе не над через vdb или sdf городить,достаточно фунцкции minpos) или разлетались тоже.
2)В целом решение странное,зачем ты это через сопсолвер делаешь?
Посмотри вот у Стаса уроки до кучи.