Designed by Rawstorne Studio and PleasureKraft, Boil-Up is a 4 projector installation within the Moana – My Ocean exhibition at The Auckland War Memorial Museum. The installation is one of many pieces that allow visitors to experience the oceanic wonders of New Zealand from the dynamic of the surface waters all the way down into Kermadec Trench which plunges 10,000 meters deep.
In March 2013, Robert Hodgin (flight404) was contacted by Rawstorne Studio and PleasureKraft to create a real-time simulation of a feeding frenzy seen on the BBC, Discover Channel, or National Geographic documentaries about the ocean. Robert did a personal project a couple years ago where he was trying to simulate a bait ball using Cinder (below). He ended up with something that was interesting to look at but made little effort to try and make my ‘fish objects’ actually look like fish. In the Moana, My Ocean exhibition piece Boil-Up, the focus was on a data-driven aesthetic to avoid the possible pitfalls associated with trying to make an experience look ‘realistic’.
(Flocking tutorial and source code Robert released two years ago. Read about it here)
The flocking logic is very processor intensive. Each fish needs to compare it’s position to every other fish. So things get pretty out of hand very quickly. I was finding with early tests on my Macbook Pro, I could handle 800 to 1000 fish and still hover around 60 fps. However, if you asked it to simulate 2000, things would drop to 15 fps or lower. Something needed to be done. This phenomenon in nature can occur with hundreds of thousands of fish. Just a couple thousand is going to look pretty paltry. I asked Andrew Bell for help and he suggested a modified binning solution which he coded for me. This improved the performance greatly. 2000 fish would swim around at 45 fps and 5000 at 8 fps. Still not amazing but much much better. And since the final installation version would be run off a very nicely built PC, I had high hopes we could reach 3000 on the PC at 60fps. At Andrew’s suggestion we then implemented multithreading. You throw 15 threads at the problem and suddenly things get much faster. On the PC with 15 threads working on the flocking logic, we were able to get 7000 objects flocking at 60fps and this was more than enough to make for a dense bait ball.
Few months into the project, and without the ‘realistic’ guarantee to the client, Robert managed to make the fish look and behaviour realistic but making the sharks and dolphins do the same was a challenge. At the end they employ the same general flocking rules as the bait fish and this way the dolphins could hunt with other dolphins and the sharks could hunt with other sharks. Turns out, the sharks are a bit more solitary so Robert simply turned down the intensity of their reaction to some of the flocking forces.
The dolphins exhibit some interesting behaviour when attacking these bait balls. They occasionally blow bubbles to try and stress the bait fish. They also tend to attack from below in attempt to push the bait ball to the ocean surface. If the bait ball is pinned to the surface, that is one less direction they can escape. However, once the bait ball starts to reach the surface, the gannets begin attacking from above. This pushes the bait ball further down until the dolphins scare it back to the surface again.
The project and process are well documented on Robert’s site so we suggest you head there and read the full post.
The final install of Boil-Up includes 4 projector setup with a cylindrical housing.
Open daily from 21 June
Special Exhibitions Hall
The Auckland Domain
Parnell, Auckland, New Zealand
Posted on: 25/06/2013
Posted in: Cinder