Eight steps, one record.
A provenance record is built up in the order the research happens. Nothing here asks you to change how you generate data or how you train — only to write down what you did while you still know it.
- 01
Instrument
Add the SDK to the code you already run. The generator, the training script and the evaluation stay where they are; the calls around them record what happened.
- client.projects.create
- client.experiments.create
- code version captured
- 02
Generate
When a generation runs, the generator and its version, the parameters, the seed and the referenced asset versions are written down as a record — before the result exists.
- generator: blender 4.2.0
- seed: 42
- occlusion: 0.30
- 03
Version
The output is registered as a DatasetVersion: a specific version of a logical dataset, identified by reference rather than by folder name. The data itself does not move.
- rain_dataset:v7
- s3://research/rain-v7
- 24,000 frames
- 04
Train
A training run records its configuration and the exact dataset versions it consumed, so the link between the model and the data that produced it is explicit.
- YOLO · PyTorch
- 50 epochs
- inputs: rain_dataset:v7
- 05
Evaluate
Evaluation results attach to the run that produced them. A metric is never a loose number — it carries its whole upstream chain with it.
- mAP 0.724
- precision 0.78
- recall 0.69
- 06
Trace
From any record you can walk the graph in either direction: back from a metric to the parameters that produced it, or forward from a generation to everything that used it.
- upstream: parameters, assets, code
- downstream: runs, results
- 07
Compare
Two experiments align field by field. The differences in configuration and the differences in result are visible together — which is not the same as one explaining the other.
- occlusion 0.30 → 0.45
- dataset v7 → v8
- mAP 0.724 → 0.748
EXP-00142 vs EXP-00131
Illustrative comparison of two experiments Generator Blender 4.2 Blender 4.2 Seed 42 42 Weather rain rain Occlusion 0.30 0.45 Camera distance 12 12 Dataset rain_dataset:v7 rain_dataset:v8 Asset: vehicle-model v7 v7 Epochs 50 50 mAP 0.724 0.748 - 08
Reproduce
A reproduction manifest gathers what was recorded and states what was not. Missing external dependencies are listed rather than assumed away.
- recorded configuration
- external references
- known gaps
manifest.json{ "generation": { "generator": "blender", "version": "4.2.0", "seed": 42, "parameters": { "weather": "rain", "occlusion": 0.30, "camera_distance": 12 } }, "assets": [ { "name": "vehicle-model", "version": "v7" }, { "name": "forest-texture", "version": "v4" } ], "dataset": { "version": "v7", "uri": "s3://research/rain-v7", "checksum": "sha256:9c1f…e40b" }, "code": { "commit": "8f3a2b1", "branch": "rain-sweep" }, "missing": [ "external CUDA environment", "GPU driver version" ]}
Illustrative data. Shown to explain the provenance model, not a benchmark or customer result.
Your next experiment should leave a trail.
SynthGraph is currently available through a limited research pilot. Request a demo to see how provenance fits into your existing workflow.
SynthGraph is being developed with a small number of research workflows before broader access.