Saving, opening, and sharing projects
A project is one .openchip file — plain JSON you can read, diff, and put in a
repository next to the paper. See
The .openchip file format for what is in it.
Saving
Section titled “Saving”⌘S / Ctrl+S, or Save in the top bar.
What happens depends on your browser:
Chromium-based browsers (Chrome, Edge, Arc, Brave) support the File System Access API. The first save asks where to put the file; every save after that overwrites it in place, the way a desktop application does.
Firefox and Safari do not. Every save is a download, so you end up managing versions in your downloads folder. It works; it is just less pleasant.
The app tells you which mode it is in, and the state beside the project name is honest about it: green and “Saved to …openchip” means it is on disk. Anything else means it is only in browser storage.
⇧⌘S is Save as…, which always asks for a new location and then makes that file the project’s file — every save after it goes there.
Saving a copy
Section titled “Saving a copy”The chevron beside Save, or Project → Save a Copy…, writes a copy without leaving the file you are working in. It is how you park an iteration.
The difference from Save as… is the part that bites:
| Opens the dialog on | Where your next Save goes | |
|---|---|---|
| Save as… | The current file’s name | The new file |
| Save a Copy… | The project name, as .openchip |
The original file, unchanged |
So rename the project to Mixer v3, choose Save a Copy…, and you get
Mixer-v3.openchip on disk while you carry on editing the file you opened.
The copy does not clear the unsaved-changes dot, and that is deliberate: your edits are now in a snapshot, but they are still not in the file you are editing.
In Firefox and Safari a copy is a download, like every other save.
Opening
Section titled “Opening”⌘O / Ctrl+O, or Project → Open.
You can also drag a .openchip file onto step 3 of the Design with AI
dialog. It opens as a new project, with the same unsaved-changes check and the
same validation. A dropped file comes without a file handle, so the first save
afterwards asks where to put it, even in a browser that saves in place.
The file is validated on load. If something is wrong, the message names the field and says what was expected — the loader rewrites raw validation paths into sentences for exactly this reason.
Two kinds of problem are rejected outright:
- Structural. A required field missing or the wrong type.
- Referential. An edge pointing at a node that is not there, or two nodes sharing an id.
Everything else is accepted. A file from an older build gets defaults for fields that did not exist yet; a file from a newer build keeps its unrecognised fields through a save round-trip.
Draft recovery
Section titled “Draft recovery”The app writes your work to browser storage as you go, debounced so a drag is not serialising on every frame.
Close the tab mid-design and it is there when you come back. If what was restored had never been written to a file, the app says so on load rather than letting you assume it was saved.
This is a safety net, not a backup:
- It is per-browser and per-machine.
- Clearing site data clears it.
- A private window may not keep it at all.
- Browser storage is small. If a project outgrows it, usually because of high-resolution saved images, the draft keeps your design but leaves the saved images out, and the app warns “Autosave is leaving out your saved images”. If even that doesn’t fit, it warns “Autosave is off”. When a draft like that is restored, the restore message says how many images couldn’t be kept.
Save to a file. The draft is there to stop you losing an afternoon, not to hold your work long-term.
If your browser has storage disabled entirely, the app says so when you start a project and tells you to save as you work.
Sharing
Section titled “Sharing”Send the .openchip file. It carries:
- the channel network, chip parameters and every dimension;
- the printer profile it was designed against, so the recipient’s checks measure the same things you did;
- fluid profiles and the run setup;
- drainage vents;
- any saved images.
It does not carry anything about you or your machine. No paths, no identifiers, no settings.
Exports are not projects
Section titled “Exports are not projects”An STL is a mesh. It has no channel graph, no parameters, no checks. You cannot open one in OpenChip and get your design back.
Keep the .openchip. Send both if the recipient needs to print and modify.
See Exporting.