Return to the previous page. Paul Fearing's home page.

  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. Snow-covered 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 drop-off.  Falling snow is simulated as a small number of particles, and is traced down through the model until it eventually comes to rest. 
Click to enlarge.
Click to enlarge.
The left image shows a fire hydrant with a large amount of unstable snow. The right image shows the same hydrant after a stability pass. The stability of a given surface depends on properties of the snow.

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. 

Click to enlarge.
Unstable snow trapped behind an obstacle.