features a cellular automata-based
- (11/22/05) The current weather system is a simple random cloud seed/growth/disipation algorithm (basically a small grid of cellular autonoma) that is influcenced by a fast, low-resolution (16x16) 2D fluid simulation driven by an inherent pseudo instability of the zero-divergence step (that is fancy language for a "flawed implementation of a Jos Stam fluid simulation").
As to future plans for weather... a long time ago (alpha? beta?) we had a rain effect, however it was too expensive at the time to do collision checking for the raindrops so the rain would move right through a house's roof. Most people found it annoyingly unrealistic so we got rid of it. In order to do more correct rain and fog effects we would have to embed some physics collision algorithms on the client. The good news is that such effects are definitely something that we want to do. The bad news is that the timeline for such a project is at least one year away.
- (2/10/06) On the server side clouds are generated by a cellular-automata algorithm on a grid that uses the values at nearest neighbors to generate the probability of transitions from between some small number of states like: (clear, cloudy, very_cloudy, raining). Each simulator has an 18x18 grid of cloud cells. The boundary values of the cloud grid is transmitted to neighbor sims, which make up the 1st and 18th rows/columns of the grid. Although it doesn't rain in SL, the 'raining' state is used to indicate that the cell is about to transition to 'clear'. The distribution of moisture is then transmitted to the client which is used to distribute the cloud particles within that region. On the client side, clouds are rendered as particles.
- (11/22/06) I think there is a small offset that causes the global wind average to point away from the sun around sunrise and sunset, however it has been a long time since I've looked at that code.
While fog, rain, and snow don't formally exist as SL weather, they can be simulated with particles.