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 included —
asynmov generateandasynmov validatefor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b77e19b7df3f62ef18b99313ca92c37dd76ce4fcda2cb6085b1b84df87763253
|
|
| MD5 |
8c250c4c9f19f0c5be94bff9400565ff
|
|
| BLAKE2b-256 |
a0a4ced57c4c9d7f0b0fd7d5ea44e32a40c02988552de32a938bf2a68721e47f
|
Provenance
The following attestation bundles were made for asynmov-0.0.2a0.tar.gz:
Publisher:
publish.yml on DecisionNerd/asynmov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0.tar.gz -
Subject digest:
b77e19b7df3f62ef18b99313ca92c37dd76ce4fcda2cb6085b1b84df87763253 - Sigstore transparency entry: 1630041374
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
750c8d0093cc72cd790e556a5c1c57768efb78f1c338247aff0ef03da197b13d
|
|
| MD5 |
a05eed88fbe08e7dc01d5dbeb0250b12
|
|
| BLAKE2b-256 |
531f38b33924b41f2166055ac341811086fef490f5fe63f065ef958f8915a2af
|
Provenance
The following attestation bundles were made for asynmov-0.0.2a0-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on DecisionNerd/asynmov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0-cp313-cp313-win_amd64.whl -
Subject digest:
750c8d0093cc72cd790e556a5c1c57768efb78f1c338247aff0ef03da197b13d - Sigstore transparency entry: 1630041573
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type:
File details
Details for the file asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 306.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2230a6ad4e23af185b1e317d568c0136bfae4f664cb6cb01867a78ebcf2af6a3
|
|
| MD5 |
fc7806d061f5afa602bfe3965bb5fa6a
|
|
| BLAKE2b-256 |
9d38378c2124dad03645517b1ed640f83b7dd74f36c8c85e5cbee4f568e7f10d
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
2230a6ad4e23af185b1e317d568c0136bfae4f664cb6cb01867a78ebcf2af6a3 - Sigstore transparency entry: 1630041443
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type:
File details
Details for the file asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 290.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b563c875e5a050e9442673dae1e2a1b7f1f5aa8b7fbe8532c42fe4eca09acf0
|
|
| MD5 |
4a48f755dd71b6e38b78f28f5a0a04e3
|
|
| BLAKE2b-256 |
c76f901824a4d75d65ac843bc9ae82d4050152edffe1b8d5bddf0285e50bdce4
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
4b563c875e5a050e9442673dae1e2a1b7f1f5aa8b7fbe8532c42fe4eca09acf0 - Sigstore transparency entry: 1630041511
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type:
File details
Details for the file asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 269.2 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e3d482c71337fe38fe90fe310af27c2930015b1f8b03335c22a90c4c3c2932a
|
|
| MD5 |
52a545d9b5bbf54ab80bf3deca2128a7
|
|
| BLAKE2b-256 |
c91068a4e007ed4cbccffc082a81f4aa0ff6679f943e42171e1f59fe35ed962a
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
1e3d482c71337fe38fe90fe310af27c2930015b1f8b03335c22a90c4c3c2932a - Sigstore transparency entry: 1630041702
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type:
File details
Details for the file asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 286.0 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41912bac34ee4a66eb460ea2ac9685f8f90c266191f8133d47da8241864ffd5f
|
|
| MD5 |
d9a5dc9bce6cccca2508abe0f65046c7
|
|
| BLAKE2b-256 |
00ec8bbdfcbdd6c05e0a46d18ddc09cbaace92ef4b5d7b5f668b5659f0f1f6ce
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asynmov-0.0.2a0-cp313-cp313-macosx_10_12_x86_64.whl -
Subject digest:
41912bac34ee4a66eb460ea2ac9685f8f90c266191f8133d47da8241864ffd5f - Sigstore transparency entry: 1630041619
- Sigstore integration time:
-
Permalink:
DecisionNerd/asynmov@53f805da362f5a31efad472bd04681142818e1eb -
Branch / Tag:
refs/tags/v0.0.2a0 - Owner: https://github.com/DecisionNerd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53f805da362f5a31efad472bd04681142818e1eb -
Trigger Event:
push
-
Statement type: