Skip to main content

SynthWorld

CI PyPI Python versions License: Apache-2.0 Coverage: 100% enforced

Deterministic synthetic identity worlds with adversarial evidence and ground-truth answer keys.

SynthWorld creates safely fictional, connected test worlds for evaluating identity, privacy, access, and agent systems. Where a benchmark provides a product-safe projection, public observations are serialized separately from evaluator truth so a system can be tested without feeding it its own answers. Other commands emit annotated or evaluator bundles and must not be treated as product input.

SynthWorld is not an anonymisation tool. It does not transform sensitive real data into a safe dataset, and it is not an IAM product, policy engine, or runtime enforcement service.

Choose what you want to do

Goal Start here
Install and create a first deterministic world Getting Started
Inspect published frozen benchmark tables Hugging Face dataset
Evaluate identity resolution and ambiguity Identity resolution guide
Evaluate privacy, extraction, exposure, or broker behavior Privacy and exposure guide
Test agent delegation, authority, and audit evidence Agent authority guide
Build or evaluate enterprise identity/access worlds Enterprise access guide
Connect a product or model to a SynthWorld scorer Evaluating a system
Check current benchmark maturity and publication state Benchmark catalogue

Featured: agent authority

Identity resolution tells you who acted. Agent-authority evaluation asks whether the action was within delegated authority at the time it occurred, whether the runtime and credential bindings were correct, and whether retained evidence can still reconstruct the decision later.

Asteria Agentic v1 is the frozen, inspectable conformance fixture for that workflow. It keeps public action evidence separate from authority, attribution, temporal, and provenance truth.

Why SynthWorld

Requirement SynthWorld approach
Repeatable evaluation Explicit seeds/configuration, canonical ordering, frozen fixtures, and checksums
Connected test data Coherent worlds rather than independent fake rows
Adversarial cases Conflicts, ambiguity, lifecycle changes, and negative controls are planted deliberately
Controlled oracle exposure Product-facing observations and evaluator truth use separate artifacts and contracts
Reproducible claims Versioned schemas, scoring formulas, benchmark identities, and integrity metadata

A frozen conformance fixture is evidence that an adapter handles the declared cases; it is not automatically evidence of real-world transfer or a vendor leaderboard.

Current benchmark families

SynthWorld includes deterministic surfaces for connected identity fixtures, privacy and exposure, extraction, entity resolution, relationship inference, risk calibration, agent authority, and enterprise identity/access evaluation. These families do not all share the same maturity, publication state, CLI, or statistical meaning.

Use the generated benchmark catalogue for governed current state and the human-readable BENCHMARKS.md for benchmark context and reference results.

The core identity world is a smoke surface

The frozen core world is intentionally small and structurally simple. It is useful for deterministic fixtures, demonstrations, and CI, but it is not a transfer surface for claims about real populations. Use richer generated profiles when graph structure or population variation is part of the test.

See the identity-world guide and BENCHMARKS.md for measured limits.

What the ambiguity pack does and does not measure

The ambiguity families exercise conflicting evidence and evidence-aware resolution. The frozen reference pack is a conformance fixture with deliberately small slices; the generated v2 construction uses a different difficulty model. Neither should be presented as proof of real-world transfer simply because a system scores well.

See the identity-resolution guide and BENCHMARKS.md for the current constructions, baselines, and limitations.

Public input and evaluator truth

Only inputs explicitly documented as public belong on the product side. Do not assume that an artifact is product-safe merely because SynthWorld generated it.

For example, generate-public-extraction, generate-public-connections, and generate-risk-public emit product-facing projections. By contrast, generate-extraction and generate-connection-benchmark emit evaluator or annotated bundles containing expected answers and must not be passed to the system under test. Some benchmark commands write both public/ and evaluator/ subtrees; in that case, pass only the documented public subtree to the product or model.

Evaluator artifacts contain the information used to score the resulting prediction or trace.

public benchmark input
        |
        v
 system under test
        |
        v
 prediction / trace ---------+
                             |
 evaluator truth ------------+--> independent metrics

Physical separation prevents accidental oracle use; it does not make a published reference fixture secret.

Enterprise identity and access

The enterprise surface can compile operator-authored structure into a deterministic, safely fictional identity/access universe and provides bounded reference benchmark and projection surfaces around it. Public product inputs and canonical evaluator truth remain separate.

Start with the enterprise access guide and the normative enterprise contract.

What the enterprise surface does not claim

  • Importing enterprise structure is not anonymisation; authored structural inputs can remain sensitive.
  • Offline evaluation and standards-shaped projections are not deployed IAM or enforcement.
  • Published reference packs are conformance fixtures, not blind statistical benchmarks or vendor leaderboards.

Install

SynthWorld requires Python 3.12 or newer. The distribution is idcognito-synthworld; the import package and CLI are synthworld.

pip install idcognito-synthworld
synthworld generate --seed 20260719 --persona-count 10 --output world.json

The same explicit inputs reproduce the same deterministic fixture. Continue with Getting Started before using a benchmark scorer.

Evaluate a system

Every integration follows the same pattern: give the system only explicitly public input, normalize its native output into the task-specific prediction or trace contract, then score it against separately loaded evaluator truth.

See Evaluating a system for runnable examples and metric interpretation.

Validate before you score

Use a task validator where one exists. Structural validity means a submission can be scored; it does not mean the system performed well.

synthworld validate agentic-trace --predictions observed-actions.jsonl

Use Asteria Agentic v1

A minimal agent-authority evaluation flow is:

synthworld generate-agentic --output asteria-agentic-v1
synthworld validate agentic-trace --predictions observed-actions.jsonl
synthworld evaluate agentic --predictions observed-actions.jsonl --summary

Give only the generated public/ tree to the system under test. Keep the evaluator side out of the adapter path even though the frozen reference truth is publicly inspectable. See the full Asteria Agentic v1 guide.

For a configurable generated enterprise-agentic smoke world, explicitly select the generated profile. Artifact-root validation and evaluation are previewed on main for 0.15.0:

synthworld generate-enterprise-agentic \
  --profile generated \
  --tier smoke \
  --seed 20260814 \
  --output generated-enterprise-agentic

An external adapter receives only generated-enterprise-agentic/public, replays its events in order, and writes the observations it actually obtained. Validate without evaluator access, then score in a separate evaluator process:

synthworld validate generated-enterprise-agentic-trace \
  --benchmark-root generated-enterprise-agentic \
  --predictions observed-actions.jsonl
synthworld evaluate generated-enterprise-agentic \
  --benchmark-root generated-enterprise-agentic \
  --predictions observed-actions.jsonl \
  --summary

This is a deterministic benchmark-data generator, not an IAM product, policy engine, agent framework, hosted simulator, or vendor leaderboard. Standard and longitudinal generated tiers remain tracked by issue #27. A reference organisation topology can inform the supported count configuration; 0.15.0 does not import its named entities or relationships. See the agent-authority guide for the replay, decision-only SUT, and provenance boundaries.

Verify every claim

For reproducible evaluation, retain the benchmark identity, relevant seed and configuration, schema/scoring versions, artifact checksums, and the exact prediction or trace bytes that were scored. Interpret each metric through its own denominator and support semantics rather than hiding weak dimensions behind an aggregate.

Use the data dictionary and benchmark inventory for authoritative contracts and reference results.

Roadmap and integrations

Current direction is summarized in the documentation roadmap and the repository ROADMAP.md. Governed registries—not issue state—remain authoritative for current capability and benchmark publication status.

Develop from source

uv sync --locked --all-groups
make ci

Contribution guidance is in CONTRIBUTING.md.

License

Copyright 2026 Redoubt Labs ltd. Licensed under the Apache License 2.0.

Download files

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

Source Distribution

idcognito_synthworld-0.15.0.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

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

idcognito_synthworld-0.15.0-py3-none-any.whl (688.2 kB view details)

Uploaded Python 3

File details

Details for the file idcognito_synthworld-0.15.0.tar.gz.

File metadata

  • Download URL: idcognito_synthworld-0.15.0.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for idcognito_synthworld-0.15.0.tar.gz
Algorithm Hash digest
SHA256 c278758e47c4545b46a9f234dab53163a0899440fd55684805104087b8ca9d8c
MD5 94f559847e7a9566a7a269113412bd76
BLAKE2b-256 0bd06aa6b40ea2d079750ff25679707076ba8ee0d4a3f11b344990dc380178d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for idcognito_synthworld-0.15.0.tar.gz:

Publisher: release.yml on bluntmachetti/synthworld

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

File details

Details for the file idcognito_synthworld-0.15.0-py3-none-any.whl.

File metadata

File hashes

Hashes for idcognito_synthworld-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f1b17f8254521d307e38cfc3a44d00844308dd36c7972da00b816b92e257ee60
MD5 0526c7ee5a123cd1e13ed3393864e1ba
BLAKE2b-256 ec55c36a84483d6228c8c22b57ce652e3f52a0fa4fb405025ac309e9e0d79ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for idcognito_synthworld-0.15.0-py3-none-any.whl:

Publisher: release.yml on bluntmachetti/synthworld

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

Release history Release notifications | RSS feed

0.17.0

2 files

0.16.0

2 files

This release

0.15.0 This release

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page