(click to add food)

https://dannoblem.github.io/Nature-of-code-Blog/Simulation/

Euphausiacea

Sandbox simulation of aquatic creatures (Euphausiacea is the scientific name of Krill)

For this simulation project Ive always wanted to try and add interactivity into a generative system and allow user to manipulate it in realtime. The first thing that came to mind following that idea was a sandbox, aquarium or terrarium. A enclosed space in which we observe creatures or organisms on the inside.

So when designing this system I knew I wanted organisms and stimulus or ‘food’ for them to react to. This was paired along with an global system of forces which act upon the creatures. My goal was to layer multiple forces onto the objects to create a cohesive system.

Some of the difficulties that I ran into was tuning or easing. Trying to get all the layers of algorithms in a way which one did not take over the others. Then also determine the conditions of the system - lifetime of objects, boundaries of the world, speed of the organisms - all these factors proved to extend the development time greatly as I would only know how it would look after implementing it.

An inspiration for the visual design is a small game called Abzû. In this game you play a diver in an aquatic world. The visual aesthetics along with the score of the game seamlessly blend the environment and creatures together and that is something I would like to achieve further along with this project

For the trails I used this trail renderer by Mark Kellogg.

Screen capture - Abzû

Untitled

Further goals I have for this project would be to include different kinds of organisms with different lifetimes and behaviors. To also implement different types of interactive elements, such as repulsers or spawners. Another goal would be to implement sound with another library such as tone.js. Finally I would like to create a physical interactive element with computer vision or hand tracking.

Link to code: https://github.com/DanNoblem/Nature-of-code-Blog/tree/main/src/Simulation