Generation engine for simulations, written in framework-independent Java.
Give it a seed, get back the same universe every time. Right now the engine covers star generation — physically plausible stars sampled from real stellar-population statistics (spectral class, mass, radius, temperature, luminosity), all reproducible from a single RandomGenerator seed.
This repo follows the Maven standard directory layout:
genesis/
├── pom.xml
└── src/
├── main/java/io/github/navelogic/genesis/core/...
└── test/java/io/github/navelogic/genesis/core/...
Genesis is published on Maven Central. No extra repository or authentication needed — just add the dependency:
<dependency>
<groupId>io.github.navelogic</groupId>
<artifactId>genesis-core</artifactId>
<version>0.1.0</version>
</dependency>Development/SNAPSHOT builds are also published to GitHub Packages. Unlike Maven Central, this requires authentication even for public packages: a personal access token with read:packages scope, configured in ~/.m2/settings.xml:
<settings>
<servers>
<server>
<id>github</id>
<username>YOUR_GITHUB_USERNAME</username>
<password>YOUR_PERSONAL_ACCESS_TOKEN</password>
</server>
</servers>
</settings>And in your project's pom.xml:
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/Navelogic/genesis</url>
</repository>
</repositories>
<dependency>
<groupId>io.github.navelogic</groupId>
<artifactId>genesis-core</artifactId>
<version>0.1.0</version>
</dependency>import io.github.navelogic.genesis.core.astronomy.star.model.Star;
import io.github.navelogic.genesis.core.astronomy.star.service.StarGenerator;
import java.util.Random;
var random = new Random(42L);
var star = new StarGenerator().generate("Sol", random);
System.out.println(star);
// Star{id=..., name='Sol', spectralType=G, massSolar=..., radiusSolar=..., temperatureKelvin=..., luminositySolar=...}The same seed always produces the same star — determinism is a core design goal, not an incidental property.
Requires JDK 21+.
mvn -B verifyStar generation is the only thing this library does right now — everything else (planetary systems, geography, world generation) was deliberately left out until it's star generation's turn to be built back in, properly, with tests and docs.