Sand Splash Effect


I’ve been working on a shot were an SUV lands on sand and the tires shoot the sand up and out as the tire lands, but whatever I try it doesn’t look right.

I’ve tried setting up a pflow and plugging that into FumeFX, but it comes out looking to much like smoke (maybe I’m using too much turbulence?). I’ve also tried using the pflow to plug into Krakatoa but it doesn’t look right either, it’s not staying together like sand does.

A clip I’m using for reference (starting about 0:34),

Any suggestions on a good approach to this would be very much appreciated.


Particles - Fume - Particles follow - Krakatoa is the usual route for these. You have to make sure your particles emit the fume smoke in an interesting enough pattern - I usually do that with a cell-displaced geosphere slice. Then do a realtively low-res fume sim, and run a lot of particles through it with fume follow in PF. Then you partition these with Krakatoa, and you’ll need a lot of partitions to get the right particle count. Then render up with the right lighting in Krakatoa, and it will work :slight_smile:


Thanks Hristo for the workflow, that was my initial idea for what I should do. Can you explain what you mean by the “cell-displaced geosphere slice”?

And do you have any tips for the pflow->fume part to make the movement act more like sand than smoke?


I often use for emitter a geosphere, that i slice withe the slice modifier, to get the piece facing in the direction of the splash. Then I put a displace on top, and put a cellular map in it. Then I place particles on it, and i give them velocity by the distance to the pivot - so I get a nice shaped splash. That’s in TP or box3, its tougher in vanilla pflow, but you still can use just the geosphere with the cell map on top, to place particles on it and shoot it from the surface, it will still give you some better splash shape.


Thanks for the explanation, I’ll try to put it to use in my scene.


Also try emitting A LOT of smoke, like 1000 from the emitter or so, then putting your render opacity down to 0.01 or whatever you need. That will give the smoke more mass. Maybe the variable density solver could help here too, but I haven’t played around enough with it to know.


There is a pretty cool Box#3 preset for sand splashes that i used extensively on Priest called PeakOfSpawn by depleteD:

That one in connection with the KeepApart operator with negative forces gets you pretty decent splashes without even simming any fluids. The trick is to spawn a few particles with the peakofspawn > spawn a LOT of particles and use the KeepApart pointed at the first event with the small amount of particles but the nice motion. Renders crazy fast. I rendered Krakatoa passes and a geometry pass as well with just sphere shapes, then it’s mushed all together in comp…

EDIT: added a viewport preview. needs love on the keep apart but you get the idea. viscosity fake and clumping without plugins pretty much (if you handle your spawn without box#3). did that on my notebook, its super fast…

kind regards,


@floopyb: Thanks for the tips. I’m getting some nice motion in my tests, but it still looks like smoke more than sand.

@PsychoSilence: That looks awesome. I’ll have to play around with that workflow and maybe do a fume sim to add some wispy sand to it.


Hey Mike, I was also trying some r&d sand splash, not getting so fancy results as with the box tools that Anselm mentioned above but maybe could help.
What I did was create a wetmap of the surface, so everytime a bullet shell hitted it, it bumped particles. Easy uh? here is a video of the preview, you can try krakatoa to render them…

here is a ss of the thing so u guys can check… raw preview render (barelly can see the sand but trust me its there, maybe a vid of it could help to see the motion of it…)

imageshack always tricks me :t

cheers guys


That looks promising. Could be cool to see it rendered with krakatoa :slight_smile:


This looks pretty interesting but the preset and scene file are both crashing my max 2010 64 on load - is it something to do with it being box 3 1.0 instead of box 1.5 pro?


No, the Setup from Andrew was done with the old Box#3 but i would update it regardless. Well worth the update price!


Just paid for the upgrade now - hopefully this’ll work nicely! At the minute I’m in object on sea surface spash hell with realwae not being great for some aspects and speed by surface to make sloshing effects being really sluggish with my machine power and the number of particles I’d need for a decent render - eek!


Might make a tut for that TP/Krakatoa/PF/FFX approach :slight_smile:


And for the surface - you might make a sim in a plane, with some turbulences and so on, then project it on the surface - place it above, then shoot a ray down, get the pos.z and give that to the particle - will work faster and be partitionable. You can even do it in Krakatoa, there is raycasting in KCM too :slight_smile:


True, I was originally going to use the normal of the surface from speed by surf too but maybe it’s not important. Must do a few speed tests to see what’s the quickest to process.


i set up and rendered mine on my notebook (core2due: 2.4ghz, 4gig ram) and it worked fine. Don’t use the common collision test and Deflectors, they are brute force aka. every particle tests against every face of the object. Use simple data tests and Krakatoa Collision. Here is a demo by Bobo about how much faster it is:

I tested with a data test as simple as (Select Object[ocean surface picked > GeometrySubOp: InsideObject > Output Test]). This is a boolean that is many times faster then any collision since it is literally I or O.


Here is a vimeo video of my basic setup:

The KeepApart trick was used for hand places “hero splashes”. Below is the setup.
Hope that gives some insight, thsi setup cached and rendered on a notebook so its trimmed for performance rather then awesomeballs but sometimes that’s all that counts i guess :smiley:


So I take it you’re birthing on the bottom of the boat on selected faces and then doing a test for any particles below the normal of your wave surface? Or have you got any kind of dynamic selection being driven by the intersection of your boat proxy and the wave proxy? Nice result though!


Just this boolean data test if the particle pierced through the ocean surface, then i give it speed upwards away from the boat (i modeled a super simple thingy with normals how i wanted em and linked it to the same dummy as the boat) and some drag/wind/gravity and spawn more particles as fillers and by travel distance. Then i use the exact same data a second time to test if they came back down to the ocean surface, then i lock/bond em to the surface be the “foam” (I used a DataOp to make em sticky to the surface but it’s essentially a lock/bond without the bells and whistles).

EDIT: Attached is the essence of it.