Create a project space
A project space is the folder a study lives in. It holds a manifest, the run store, the artifacts studies produce, and a list of the scenes they read. It does not hold copies of your scenes: it references each one by path and pins it by the hash of its bytes, so the scene stays where you keep it and under whatever version control you use.
Create one and open it
A project space is created and opened through OPAL, from an agent or a plan:
{"task": "project.create", "args": {"path": "/work/drone.projectspace", "name": "Drone"}}
{"task": "project.open", "args": {"path": "/work/drone.projectspace"}}
project.create refuses a folder that already holds a project. Open the
Project Space activity to see the open project: its assets, studies, findings and workers, with a strip along the
bottom that always shows what is running and how many runs have failed.
Add and pin a scene
{"task": "project.asset.add", "args": {"path": "/work/cad/airframe.construct", "id": "hull"}}
The id is how a study names the scene. A design variable on that scene is
written hull.span, and an unqualified name is refused rather than guessed. An
id may not contain a dot, and study is reserved for variables that belong to
the study itself.
A new asset is pinned: its BLAKE3 hash is recorded, and a run that finds the file changed fails rather than reading bytes the pin does not describe. That is what keeps every run of a study comparable with every other. When you change the scene on purpose, re-pin it:
{"task": "project.asset.repin", "args": {"id": "hull"}}
The Project Space activity marks an asset whose file no longer matches its pin as PINNED AND DRIFTED, on its row.
What the folder holds
| Entry | What it is |
|---|---|
project.json |
The manifest: the name, and every asset's path, kind and pin |
runs.db |
Every run of every study, with its status, one SQLite file |
artifacts/ |
Meshes and other large outputs, stored once per content |
studies/, findings/ |
Reserved for the studies and findings of later versions |
Back up or hand over the folder, together with the scenes it references.