My first thought was to use a fluid simulation, but that would act too much like liquid and too little like sand, unless there's some way to configure it differently.

Ideally, I want it to look like the object was dropped in the sand a long time ago, and wind has slowly buried it.

  • $\begingroup$ if you want to simulate this check the Molecular addon $\endgroup$
    – Chebhou
    Commented Jan 8, 2016 at 23:43
  • $\begingroup$ Consider a particle system. Compose in the Compositor. $\endgroup$ Commented Jan 9, 2016 at 0:54
  • $\begingroup$ The particle system would probably be the best thing to use to get the results you want. Just watch out since it can slow your computer and possibly crash blender and or the entire pc depending on your computer. $\endgroup$ Commented Jan 9, 2016 at 8:23

2 Answers 2


A result like this can be obtained using the particle system (without physics) and vertex weighting in cycles.

enter image description here


  1. Create a sand surface object and a watch object. You can partially cover the watch in sand. Adding modifiers to the sand to displace with a rough texture can simplify creating this surface. If you render them, you should get something like this:

unsanded objects

  1. Add an icosphere to act as a grain of sand. Move it out of the camera view. Add a shader to the grain of sand which changes colors and transparency depending on the particle number. The idea is to use the particle number to set the color and transparency of each sand grain, so the result is varied. The shader is shown below:

sand shader

  1. Add a particle system to the sand surface. Set physics to 'No'. Set all particles to emit at time 1. The example image was generated with about 250K particles. Since physics isn't used, this runs reasonably fast.

surface sand particle settings

If this is rendered, the results should look something like this, looking like it was dropped on the sand.

dropped in sand

  1. To partially cover the watch with sand, use vertex weights. This requires going into 'weight paint' and using the brush to indicate where you want the sand grains to overlay the watch. For the image above, this weight painting was used. The red color indicates where sand grains will be dense and deep blue indicates where the sand will be absent.

watch vertex weights

  1. Set up the sand particle system on the watch. However, to control where the grains go, use the vertext groups and specify the 'group' vertext group. This will refer to the vertext weights generated in step 4.

watch particle settings

  1. Render the image! Since no physics simulation is required, the rendering should occur relatively fast. On a 2 core, 1.5 GHz machine, 4Gb ram, with >250K sand particles, the image rendered in less than a minute.

final image

Download the blend file here:

  • 1
    $\begingroup$ Nice result! Good thinking with the randomization of grain color. I was just thinking that if an animation zooming from far to near were needed, a texture and a bump map (from z-depth) could even be derived from the same particle system system and it would cut down on render time immensely by reducing the number of required particles to only those touching the immersed object. The rest could be a texture that looks just like the particles. $\endgroup$
    – Mentalist
    Commented Jan 11, 2016 at 15:56
  • $\begingroup$ It might be possible to render the particles as in image using transparency, then use as a texture on the immersed object. That is an interesting suggestion. $\endgroup$
    – Ed Tate
    Commented Jan 11, 2016 at 21:35

If you don't mind lag, you can use a particle system to create a sand emitter(see Figure 1), make the ground and the model have collision(see Figure 2), then let the animation run and drop the sand on the model and the ground. Then pause the animation at the right spot and render from there.(Make sure that the particles have a lifetime as long as the animation)enter image description here

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .