Skip to content
NavelogicPublic

About

Generation engine for simulations

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Genesis

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.

Project layout

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

Installation

Maven Central (recommended)

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>

GitHub Packages (alternative)

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>

Usage

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.

Building from source

Requires JDK 21+.

mvn -B verify

Roadmap

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

License

MIT

About

Generation engine for simulations

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages