Worlds
Generate synthetic Active Directory environments, sample attack paths through them, and feed the results into training.
Worlds generates synthetic Active Directory environments and samples attack paths through them. You get a reproducible target for your tooling, a replayable trajectory of what an attacker or agent did in it, and training-ready data for downstream SFT or RL.
You generate a manifest — the world graph of hosts, principals, credentials, and edges — then sample trajectories that walk it toward a goal. Trajectories come from built-in algorithmic samplers or from an agent you authored against a pinned runtime and capability. Every run produces replayable steps and, for training workloads, conversation datasets.
Three surfaces, one control plane
Section titled “Three surfaces, one control plane”| Surface | What it’s for |
|---|---|
| Web UI | Browse manifests, inspect the graph, replay trajectories, watch jobs. Read-only — creation happens from the CLI or SDK. |
| CLI | dn worlds ... submits manifest and trajectory jobs, waits on them, and pulls inspection data. Scriptable. |
| SDK | Python helpers for loading Worlds trajectories as training data and running live rollouts with reward shapers. |
Start here
Section titled “Start here”Operating and consuming
Section titled “Operating and consuming”Full CLI reference: dn worlds.
Scoping
Section titled “Scoping”Worlds resources are workspace-scoped. A manifest belongs to a project — the workspace’s default project if you don’t name one — and every trajectory sampled from that manifest inherits the same project. Cross-project sampling is rejected at submission so trajectories can’t silently drift away from their parent manifest.