Preloader image

Proposal

Summary


In this project, we will implement a 3D flocking simulation. We extend the boids algorithm, which contains separation, alignment and cohesion, by adding features like landing and taking off from trees. Users can interact with the flock by leading or scaring birds.

Problem Description


Birds are born to the sky, flapping their wings without constraints. It’s always fascinating to observe the flock of birds flying off the trees. Happily, freely, wandering around, they are flying so close, but they will never collide with each other. It is such a scenery to peek during sunset. We want to not only learn and simulate the flying pattern of a flock of birds but also reproduce the scene we’ve just described. There are two major challenges. We need to firstly use appropriate algorithms (e.g., Boids) to simulate the flock behaviors. The birds will be interacting with each other and can also be influenced by the external factors like winds, scare, and places to rest. Then, by applying suitable light tracing methods, we want to make the flock reflect the environment lighting in order to create beautiful images.

Goals and Deliverables


In general, our goal is to generate an interactive scene of flocks that simulates the real boids’ flying behaviors. The project consists of 5 stages, and we plan to finish the first 4 stages, while the last stage is the extra expectation that we will implement if we get time.

Stage 1

  • Use a particle system to simulate a flock (represent birds by points).
  • The forces between birds include separation, alignment, and cohesion.
  • The external forces include wind.
  • Interactive features:
    • The predator: the user clicks somewhere, if it is around or in the path of the flock, the flock tries to avoid it and not close to it. The mouse becomes a predator or other obstacle and the flock bypasses around it.
    • The wind: the user changes the direction and the level of the wind between 0 to 12, and the shape of the flock changes. We can see how the wind affects the flock.
    • The center: the user can change the center of mass of the flock. The mouse is the lead bird of the flock and the user drags the mouse and the flock follows it.

Stage 2

  • Add random trees (represented by bars) to the background.
  • Birds rest on the nearest tree every 15s. Every rest is 10s.
  • Add "perching" behavior. If a boid gets close to the bottom of the screen/ branches of trees, have it land and hang out on the ground for a bit before taking off again and rejoining the flock.
  • Interactive features:
    • The shake: the user clicks the tree, if the birds stand on the branches, the birds fly away from the tree. Some join the flying birds and others back to the tree after a few seconds when there is no one shaking the tree.

Stage 3

  • Create 3D models for the birds and trees.

Stage 4

  • Implement environmental lighting with source light from sun. (from project 3-2)

Stage 5

  • Render trees and birds with proper textures.
  • Make bird wings flippable. (animation)


Performance Measurement / Expected Output


In general, the direct way to judge the performance of our particle system is comparing it with real flock behaviors. Also, we want to make sure the rendering process is fast enough and the interactive simulation session is seamless.

  • Stage 1 mainly focuses on the flying behavior of flocks (represented by particles).
    • Generally, the particles will move following a designated direction (can be directed by mouse).
    • The particles representing the birds should move smoothly with reasonable speeds and dynamically stable distances between particles.
    • The particles should also react reasonably to situations like wind and predator. When there is wind blowing from right to left, the flock should move faster when it directs to left and slower when it directs to right. When there is a predator (can be represented by mouse), particles should move to the opposite direction from where the predator came from with a rapidly increased speed.
  • For stage 2, we want to make sure the particles(birds) can land on or take off from bars(trees).
    • The landing and takeoff should be smooth with reasonable acceleration.
    • During landing, the particles should randomly land on the bar with relatively even spacing. When the bar is clicked (tree is shaken), all birds take off again.
  • For stage 3, we change particles and bars into 3D bird and tree models.
  • For stage 4, we want to see shadows of birds on the ground.
  • For stage 5 (extra expectation), the main idea is to further improve the 3D models for birds and trees by adding textures and details (e.g. leaves) and make wings flippable.
    • There should be no “candy wrapper“ artifact for wing flipping, and the wings should only be flipping when the bird is flying.
    • It might be hard to simulate the feather textures, but we can texture map 2D textures (e.g. different colors) onto the surfaces of the models.

Question to answer


  • What is the flying behavior of flock? Is there a specific pattern in the movement?
  • How to accelerate the Boids algorithm?
  • How to implement environment lighting to make the scene more realistic?

Schedule


1st Week (April 8–18)

  • Begin implementing the most basic Boids algorithm (Cohesion force, Separation force, Alignment force)
  • Implement interactive functions:
    • Add a predator that the boids try to avoid that scatters the flock if it gets too close.
    • Add a strong wind or current to see what effect it has on the flock.
    • Click on the environment -> change the center of mass of the flock.

2nd Week (April 19–25)

  • Finish up implementing the interactive feature.
  • Add trees to the space.
  • Birds rest on the nearest tree every 15s. Every rest is 10s.
  • Add "perching" behavior. If a boid gets close to the bottom of the screen/ branches of trees, have it land and hang out on the ground for a bit before taking off again and rejoining the flock.
  • Interactive feature: click a tree -> birds on the tree fly away. (detailed behaviors to be discussed later).
  • Finish up milestone deliverables (Report, Video, Slides) ( April 27).

3rd Week (April 26–May 2)

  • 3D shape of the birds and trees.
  • Add environmental lighting or other effects.

4th Week (May 2--May 11)

  • Texture-mapping.
  • Flipping wings (animation).
  • Build final report webpage.
  • Finish up final video and presentation materials.