Refactoring of an existing code base for the simulation of fish swarms and further development of their behaviour

The aim of this bachelor thesis is to structure and enhance the code basis of the fish swarms of the bachelor project VR CoralReef so that a simple integration of new fish and swarms with their behavioural patterns is easily doable. Additionally, another module shall be created which makes it possible to stop the collision of fish with objects in time.


It has become clear after the performance measurement of the current collision detec- tion procedure that this can only be used for single objects and a collision prevention looks unnatural this way, so a new collision procedure was developed which detects collision courses early via abstracting and summarising objects in small groups of spheres and blocks without big calculation effort and prevents these collisions by adjusting their current course onto evasive courses. The implementation of this pro- cedure was held generically so that it can be used for other problems than the fish simulation.
The category fish was improved to integrate the new collision procedure and stronger modularised per fish or swarm so that an integration of new behavioural patterns and new swarms as well as a kollision prevention are easily possible. Furthermore, the procedure to add fish into the simulation will be described. This description includes the implementation steps which are necessary for the integrati- on. Besides these steps, which parameters and the scaling of these parameters lead to which behaviour of the fish swarms will be described.


Full version of the bachelor thesis


This original work is copyright by University of Bremen.
Any software of this work is covered by the European Union Public Licence v1.2. To view a copy of this license, visit
The Thesis provided above (as PDF file) is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International.
Any other assets (3D models, movies, documents, etc.) are covered by the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit
If you use any of the assets or software to produce a publication, then you must give credit and put a reference in your publication.
If you would like to use our software in proprietary software, you can obtain an exception from the above license (aka. dual licensing). Please contact zach at cs.uni-bremen dot de.