Ich würde von einer ganz anderen Seite herangehen:
Welche Flächen werden mit Sand zu tun haben? Baggerschaufeln und Ladeflächen.
Diesen Flächen würde ich jeweils ein Model mit einer recht feinen regelmäßigen Vertexfläche zuordnen.
Geht eine leere Baggerschaufel in einen Sandberg auf einer Ladefläche hinein, wandern die Vertices des Sandberges herunter bis Schaufelunterkante, und gleichzeitig wandern die Vertices des Sandmodels der Schaufel auf Höhe des abzutragenden Sandberges. Zieht sich die Baggerschaufel zurück aus dem Sandhaufen, trägt sie ihr nun hochaufgebautes Sandmodel heraus.
Die Vertices fragen den Höhenunterschiede zwischen sich und den benachbarten Vertices ab, wenn er eine bestimmte Höhe überschreitet sinken sie bei gleichzeitigem Partikeleffekt, der das Rieseln simuliert.
Es wird registriert, zur welchen Seite der Schaufel dieses passiert, sodaß unter der Seite auf dem Boden ein entsprechendes Sandhäuflein aufgebaut werden kann.