Studio projects use folders that you choose. Studio writes project content to those folders and remembers folder handles in the browser.
Project storage map
The following stores have different roles:
| Store | Contents | Portable project content? |
|---|---|---|
| Project folder root | Four WorkSpec source files | Yes |
Project folder assets/ |
Asset bytes | Yes |
Project folder .uaw/ |
Studio metadata, asset metadata, recovery data, and checkpoints | Studio-specific |
| Browser project registry | Project ID, display name, and folder handle | No |
| Browser preferences | Onboarding and time-scale preferences | No |
The browser registry does not contain the four project sources. Forgetting a project in Studio leaves its folder unchanged.
Project folder structure
A complete working folder can contain these entries:
PROJECT_FOLDER/
├── start.workspec.json
├── changes.workspec.js
├── generator.workspec.js
├── constraints.workspec.js
├── assets/
│ └── ASSET_ID.EXTENSION
└── .uaw/
├── project.json
├── assets.json
├── last-valid-start.workspec.json
└── checkpoints/| Entry | Owner | Purpose |
|---|---|---|
start.workspec.json |
WorkSpec | Declarative Starting State. |
changes.workspec.js |
WorkSpec | Task-linked Changes source. |
generator.workspec.js |
WorkSpec | Optional Generator source. |
constraints.workspec.js |
WorkSpec | Constraint source. |
assets/ |
Studio host | Binary files addressed by asset ID. |
.uaw/project.json |
Studio | Project ID, name, settings, seed, and checkpoint index. |
.uaw/assets.json |
Studio | Asset IDs, filenames, media types, and update times. |
.uaw/last-valid-start.workspec.json |
Studio | Last valid Starting State recovery copy. |
.uaw/checkpoints/ |
Studio | Up to 20 local source checkpoints. |
The executable source reference defines the four source roles. Studio does not change their WorkSpec semantics.
Create a blank project
- Open Projects.
- Select New project.
- Enter the Project name.
- Select Choose location….
- Choose a parent folder in the browser picker.
Studio creates a dedicated child folder. If that name exists, Studio adds a numeric suffix such as Project (2).
Folder-backed projects require a browser with the File System Access API. Studio reports a compatibility error when the browser lacks this API.
Create a project from a template
- Open Projects.
- Select From template.
- Choose a template in Simulation Library.
- Enter the project name.
- Select a parent folder.
Studio writes the template's Starting State, Changes, Generator, and Constraints sources into the new folder.
Open an existing project folder
- Open Projects.
- Select Open project folder.
- Choose the folder that contains
start.workspec.json. - Grant read and write access when the browser asks.
Studio requires start.workspec.json. Missing executable source files receive blank source templates when Studio opens the project.
The browser can require renewed folder access after a restart. Select the project card to restore access.
Duplicate a project
- Open Projects.
- Select Duplicate on the project card.
- Choose a parent folder.
Studio creates a project named with the suffix copy. It copies the four current sources and the Generator seed.
Duplicate does not copy project assets, checkpoints, or other .uaw settings. Use Export WorkSpec for a portable copy with assets.
Save a checkpoint
Press Cmd/Ctrl+S or run Save local checkpoint from the command palette. Studio first saves current sources, then stores the checkpoint under .uaw/checkpoints/.
Studio indexes the newest 20 checkpoints. Restoring a checkpoint first creates a checkpoint named Before checkpoint restore.
Forget a remembered project
- Open Projects.
- Select Remove Project on the project card.
- Confirm the action.
Studio clears only the browser registry record. The folder, source files, assets, and .uaw data stay on disk.
To reconnect the project, select Open project folder and choose its folder again.
Migrate a legacy browser project
Studio shows Move browser projects into folders when it finds an older browser-stored project.
Select the recovered project and choose a parent folder. Studio clears the browser copy only after the folder write succeeds.