Skip to content

duffhause/CA-LS-Forest3D

Repository files navigation

Exploring Synergy Between Lindenmayer Systems and Cellular Automata

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


Platforms

  • core: Main module containing the application logic shared by all platforms.
  • lwjgl3: Primary desktop platform using LWJGL3 (previously named desktop in older documentation).

Features

This demo simulates evolving terrain using a basic cellular automata system. It includes interactive controls to regenerate, pause, and inspect the simulation state.

Controls

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

Gradle

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.

Common Gradle Tasks

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

Gradle Flags

  • --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)

Building & Running

To build the project:

./gradlew build

About

Cellular Automata and Lindenmayer System hybrid model for forest simulation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages