Design and Implementation of a Coral Reef Simulation with Focus on Scientific Value and Usability

This Thesis re-implements a scientific Coral Reef Simulation, called Siccom, for the VR Coral Reef, with the goal of better performance and integration, as well as making future improvements easier.


The VR Coral Reef Software, developed by various student projects at the CGVR Bremen, uses a scientific simulation called Siccom. Siccom simulates the spatial interaction between Corals and Algae in Coral Reef Communities. It was written in Java, by Andreas Kubicek. However the original Siccom was never designed to be used in such a project, this in conjunction with the VR Coral Reef being implemented in the Unreal Engine 4, using C++, caused various problems. These problems created performance and memory issues, limiting the maximum reef size. In addition the different languages and structures made it very hard to fix these issues. This thesis addresses these issues by re-implementing Siccom as Siccom++ directly in C++, making a direct implementation in to the VR Coral Reef possible. To address the issues, Siccom++ uses a general re-structuring and basics of Domain Driven Design (DDD) for better memory usage and easier future extensions. For runtime performance Siccom++ uses multi-threading and a grid structure to reduce comparisons between objects.


The results show a clear improvement, with an exception for the runtime of small scale reefs, where the administration of the grid structure outweighs its benefits. This however could probably solved in a future project, implementing a tree based grid structure. Also the memory improvements are even greater for small scale reefs. All in all the results are very satisfying and Siccom++ now uses the same Architecture style as the VR Coral Reef, making further adjustments and adding new features quite a bit easier. A few of the results can be seen below, missing plot points for the Java implementation are a result from missing tests due to unfeasible resource requirements.


Full version of the bachelor thesis (English only)


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
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.