Skip to main content

Generate large corpora of synthetic data for world building

Project description

Asynmov

Generate large corpora of synthetic data for world building. Asynmov pairs a Python API with a high-performance Rust core so you can produce millions of coherent entities, events, and relationships — the raw material for fiction, games, simulation, and LLM training data — without hitting a performance wall.

Features

  • Entity generation — characters with internally consistent attributes driven by world configuration
  • Event generation — causally ordered life events (birth, migration, occupation, death, and more)
  • Relationship graphs — social, family, and professional networks across the population
  • Configuration-first — describe the world in a TOML file; Asynmov handles the rest
  • Deterministic — supply a seed and get identical output every time
  • Multiple output formats — JSON, JSONL, and CSV, ready to load into any downstream tool
  • CLI includedasynmov generate and asynmov validate for scripted pipelines

Installation

pip install asynmov

Pre-built wheels are provided for Linux (x86_64, aarch64), macOS (x86_64, arm64), and Windows (x86_64). No Rust toolchain required to use the package.

Quick start

from asynmov import World

world = World.from_config("my_world.toml")
corpus = world.generate(scale=1000)
corpus.export("output/", format="json")

A minimal config:

[world]
name = "The Gilded Republic"
era = "1880-1920"
setting = "american_historical"
seed = 42

[population]
size = 1000
regions = ["northeast", "midwest", "south"]

CLI

# Generate a corpus
asynmov generate --config my_world.toml --scale 5000 --output output/ --format jsonl

# Validate a config without generating
asynmov validate my_world.toml

Development

Requires a Rust toolchain (rustup.rs) and maturin.

pip install maturin
maturin develop      # compile Rust extension and install into current venv
pytest               # run tests

Documentation

Full design and architecture documentation lives in docs/.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asynmov-0.0.2a0.tar.gz (34.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

asynmov-0.0.2a0-cp313-cp313-win_amd64.whl (212.1 kB view details)

Uploaded CPython 3.13Windows x86-64

asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (306.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (290.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl (269.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl (286.0 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

File details

Details for the file asynmov-0.0.2a0.tar.gz.

File metadata

  • Download URL: asynmov-0.0.2a0.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for asynmov-0.0.2a0.tar.gz
Algorithm Hash digest
SHA256 b77e19b7df3f62ef18b99313ca92c37dd76ce4fcda2cb6085b1b84df87763253
MD5 8c250c4c9f19f0c5be94bff9400565ff
BLAKE2b-256 a0a4ced57c4c9d7f0b0fd7d5ea44e32a40c02988552de32a938bf2a68721e47f

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0.tar.gz:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asynmov-0.0.2a0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: asynmov-0.0.2a0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 212.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for asynmov-0.0.2a0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 750c8d0093cc72cd790e556a5c1c57768efb78f1c338247aff0ef03da197b13d
MD5 a05eed88fbe08e7dc01d5dbeb0250b12
BLAKE2b-256 531f38b33924b41f2166055ac341811086fef490f5fe63f065ef958f8915a2af

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2230a6ad4e23af185b1e317d568c0136bfae4f664cb6cb01867a78ebcf2af6a3
MD5 fc7806d061f5afa602bfe3965bb5fa6a
BLAKE2b-256 9d38378c2124dad03645517b1ed640f83b7dd74f36c8c85e5cbee4f568e7f10d

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4b563c875e5a050e9442673dae1e2a1b7f1f5aa8b7fbe8532c42fe4eca09acf0
MD5 4a48f755dd71b6e38b78f28f5a0a04e3
BLAKE2b-256 c76f901824a4d75d65ac843bc9ae82d4050152edffe1b8d5bddf0285e50bdce4

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e3d482c71337fe38fe90fe310af27c2930015b1f8b03335c22a90c4c3c2932a
MD5 52a545d9b5bbf54ab80bf3deca2128a7
BLAKE2b-256 c91068a4e007ed4cbccffc082a81f4aa0ff6679f943e42171e1f59fe35ed962a

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 41912bac34ee4a66eb460ea2ac9685f8f90c266191f8133d47da8241864ffd5f
MD5 d9a5dc9bce6cccca2508abe0f65046c7
BLAKE2b-256 00ec8bbdfcbdd6c05e0a46d18ddc09cbaace92ef4b5d7b5f668b5659f0f1f6ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on DecisionNerd/asynmov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page