PROJECT SPECIFICATION

Simulating dynamic tree movement in a wind field


Simon Ekman simonevh@kth.se 

Anders Blomqvist andblomq@kth.se

Sandra Tor santor@kth.se 

  1. Background

Dynamic foliage which can be affected by various forces such as wind, moving objects, rain etc can create a more immersive world. Interactive foliage makes the world feel more alive and not as stiff as predefined animations. Together with a mass-spring system and a skeletal mesh this dynamic foliage behaviour can be implemented. 


We got inspiration from this video by Patrick Murphy which simulates plants affected by wind. However we want to make a tree instead but the concept is the same.


A more detailed implementation has been made by Y.Akagi and K.Kitajima [3] where they implemented a wind system and a tree which moves accordingly, shown in figure 1.

Figure 1. A tree which moves in the wind.


 

  1. Problem

The problem is to simulate in real time a realistic animation showing how trees are affected by wind at different speeds.

  1. Implementation

The implementation will use techniques from [3], which has the potential to simulate realistic tree bending in real time. We have divided this project into layers of complexity, which we will tackle one by one. The simulation will be done in Unity and a skeletal mesh will be imported from Blender.


Step 1. Make a simple tree trunk model bend with the wind

We will import a skeletal mesh model from blender representing our tree (fig 2). It consists of

rigid bodies connected vertices along the trunk. The first challenge will be to make each rigid

body bend realistically when there is wind acceleration present.


Figure 2. A simple blender model.


We will calculate the moment on each joint with eq 1.


Njoint=Lbranch(MjointAwind) (1)


Where Njoint is the moment on the joint, Lbranch is the length of the branch, Mjoint is the mass of the branch from the joint to the end of the branch and Awind is the wind speed. The bending angle for the joint will then be calculated using it’s moment and an elasticity constant.


Rjoint=Njoint/Cjoint (2)


Where Rjoint is the rotation by the joint, Njoint is the moment for the joint and Cjointis an elasticity constant.


Step 2. Add a mass-spring system to ensure swaying

Wind is the force that sets the tree in motion. To simulate the sway that happens as a dampening effect of the stiffness of the tree, we will use a damped mass-spring system if needed. [1]


Step 3. Adding branches

Instead of having only one single stem to represent our tree we want to add branches. This will require a more complex 3D model of the tree with more skeletal arms. Additionally we will try to simulate the transmission of moment forces between the tree parts. The moment force from a branch will somehow be added to the connection point of the parent branch.

  1. Extensions

Additional extensions can be made if there’s enough time left to make the simulation more complex, and the visualization prettier.


  1.  Add leaves to the tree and simulate them moving with the wind using a noise based simulation [2].

  2.  Implementing navier stokes to simulate the wind field around the tree with regards to the branches and leaves [3].

  1. References

Our Blog: https://veryhappytreefriends.blogspot.com/ 

[1] James, K.R. et al. 2006. Mechanical stability of trees under dynamic loads. American journal of botany. 93, 10 (Oct. 2006), 1522–1530.

[2] S. Ota et al. 2003. 1/f/sup /spl beta// noise-based real-time animation of trees swaying in wind fields.

[3] 2006. Computer animation of swaying trees based on physical simulation. Computers & graphics. 30, 4 (Aug. 2006), 529–539.

Kommentarer

Populära inlägg i den här bloggen

Step 1: Implementing Rotation of Joints

Final Simulation Demo