As soon as we have generated a snow accumulation picture that meets some resource criteria (compute time, number of samples, size of sample or some other importance driven function) we can add an appropriate (and arbitrary ) amount of snow) This generates a complete set of 3D snow surfaces that rise off the base model. 
All newly added snow is then subjected to a stability test. Snowcovered sample points are sorted by approximate height, and compared with connected neighbours using a simple model of snow material properties. Snow from a locally unstable sample is sluffed off to nearby downhill neighbours, until the initial sample is either stable, is free of snow, or is blocked by an obstacle or a growing pile of snow. Occasionally, a sample will have no downhill neighbours, causing snow to avalanche over an edge or or dropoff. Falling snow is simulated as a small number of particles, and is traced down through the model until it eventually comes to rest.  




The movement of snow down the slope may affect the stability of both uphill and downhill neighbours, so the stability algorithm performs performs multiple passes over the sorted list of launch sites until the overall snow motion is small or the program runs out of allocated time. During stability, launch site resolution may increase in areas where obstacles or now falling from above generates a pattern that is not sufficiently represented by the existing site density. 

Since the addition of a layer of blocking and obscuring snow
changes the previously computed mass accumulation pattern, we can repeat
the accumulation
and stability steps as desired, increasing accuracy at the cost of computation
time.
Once the last pass is complete, we generate set of polygons representing
the completed 3D snow surface. Using the mass pattern computed from the
previous steps, we can also generate a set of textured areas representing
surfaces that have some flake
dusting, but do not retain enough mass to be represented as a solid
layer.

Unstable snow trapped behind an obstacle. 

