This project includes simple application launchers and an ApplicationAdapter extension that runs a custom cellular automata-based terrain simulation.
Made as apart of my final year computer science dissertation, this project aims to create a hybrid model where Lindenmayer Systems can communicate bi-directionaly with a cellular automata model to create a convincing ecosystem simulation and model plant growth and development in 3D environments.
The simulation generates a 3D terrain with different properties based on the locations such as elevation changes and proximity to water where seeds can be planted and then simualted to observe growth and emergent behaviour
core: Main module containing the application logic shared by all platforms.lwjgl3: Primary desktop platform using LWJGL3 (previously nameddesktopin older documentation).
This demo simulates evolving terrain using a basic cellular automata system. It includes interactive controls to regenerate, pause, and inspect the simulation state.
- Press
R– Reloads the simulation and generates new terrain. - Press
P– Pauses or resumes the simulation. - Press
G– Toggles the cellular automata lattice/grid overlay.
This project uses Gradle for dependency and build management. The Gradle wrapper is included (gradlew.bat / ./gradlew), so you don’t need a local Gradle installation.
| Task | Description |
|---|---|
build |
Builds sources and archives of all modules |
clean |
Removes build folders |
test |
Runs unit tests (if available) |
lwjgl3:run |
Launches the desktop application |
lwjgl3:jar |
Builds a runnable JAR at lwjgl3/build/libs/ |
eclipse |
Generates Eclipse project data |
idea |
Generates IntelliJ project data |
cleanEclipse / cleanIdea |
Removes IDE project files |
--continue: Continue task execution even after errors--daemon: Use Gradle daemon for faster builds--offline: Use cached dependencies--refresh-dependencies: Force refresh of all dependencies (good for snapshots)
To build the project:
./gradlew build