Welcome to the Extraterrestrial Pets Simulation project (etpetssim)! This open-source project aims to create various simple 2D simulations (Toy models, Agent-Based Models, Cellular automata) with a top-down view. The simulation engine organizes the grid into structured cells, each with coordinates and entities, enabling flexible modeling and efficient computation. Each cell is a regular polygon —triangle, square, or hexagon— with equal sides and angles, ensuring consistent geometry and neighbor relationships throughout the grid. The grid supports various edge behaviors —blocking, wrapping, or absorbing— and offers flexible modes for calculating neighbors, either by shared edges or by both edges and vertices.
Status: This project is currently under development.
Maintainer note: This is a single-developer project maintained by me (Mathias Kalb).
| Name (Wikipedia) | Sync / Async | Grid Model | Default Entity | Entities / Agents / Cells |
|---|---|---|---|---|
| ET Pets | asynchronous | Sparse | ||
| Wa-Tor | asynchronous | Array | 🟦 Water | Shark 🦈 (many), Fish 🐟 (many) |
| Conway's Game of Life | synchronous | Sparse | 🟨 Dead | Alive 🟥 (many) |
| Langton's Ant | asynchronous | Array & Sparse | ⬜ Unvisited | Ant 🐜 (1 agent), Visited Ground (many, 16 colors) |
| Forest-fire model | synchronous | Array | 🟫 Empty | Tree 🌲 (many), Burning 🔥 (many) |
| Sugarscape | asynchronous | Sparse | None (🟫 Terrain) | 🟨 Sugar (many), 🟦 Agent (many) |
| Snake | asynchronous | Sparse | ⬛ Ground | 🔵 Snake Head (many), 🟩 Snake Segment (many), 🟡 Food (many), ⬜ Wall (many) |
| Rebounding Entities | asynchronous | Sparse | ⬛ Ground | 🟨 Moving Entity (many), ⬜ Wall (many) |
| Simulation Lab | n/a | Sparse | Normal | Highlighted |
For a detailed inventory of simulation entity types, see the Simulation Entity Catalog.
(Screenshots will be added once the simulation is fully implemented.)
- Explore and apply modern Java features in practice.
- Get to know the JavaFX library and gain some initial experience with it.
- Enjoy creativity in developing new simulations and adapting well-known models.
Artificial intelligence (AI) tools were used during development to enhance productivity and code quality. Specifically, Microsoft Copilot and GitHub Copilot assisted with code generation, documentation, optimization tasks, learning JavaFX and MVVM, and making design and architecture decisions.
Bug reports and improvement suggestions are very welcome. Please open a GitHub Issue if you find a problem or have an idea to improve the project.
If possible, include:
- clear steps to reproduce (for bugs),
- expected vs. actual behavior,
- screenshots or logs.
Use the Gradle Wrapper from the repository root. No global Gradle installation is required. Prerequisite: Java 25.
.\gradlew.bat :app:run
.\gradlew.bat test
.\gradlew.bat :app:distZip./gradlew :app:run
./gradlew test
./gradlew :app:distZip- Java: The primary programming language used throughout the project.
- JavaFX: Used to create the graphical user interface.
- Gradle: Build system used for the project, including a Gradle wrapper.
- IntelliJ IDEA Community Edition: The development environment ("IDE") of choice, provided by JetBrains.
This project uses the latest stable versions of all technologies whenever possible.
| Technology | Version | URL |
|---|---|---|
| Java (OpenJDK) | Eclipse Temurin 25 | adoptium.net |
| JavaFX | 25.0.2 | openjfx.io |
| Gradle | 9.4.1 | gradle.org |
| IntelliJ IDEA | 2025.3 | www.jetbrains.com/idea |
This project is licensed under the MIT License.
This project uses several third-party libraries and tools, each with its own license. For the project's third-party list, see the THIRD-PARTY-LICENSES file.
Both license files are also available in the application's About dialog.
- Name: Mathias Kalb
- GitHub: mkalb
- Project: Extraterrestrial Pets Simulation
Copyright (c) 2025-2026 Mathias Kalb









