# Move the Starter Civilization workshop

Carry two files: the simulator ZIP and an export of the retained browser archives. The ZIP does not contain the browser's IndexedDB databases.

## On this computer

1. Open [the transfer desk](http://127.0.0.1:43127/transfer).
2. Download the simulator package. Its manifest lists every included file and SHA-256 hash.
3. Choose **Save archive to project**. The validated JSON is written to `handoff/browser-archives/` and appears as a downloadable file on the page. **Export all retained records** also provides visible JSON for copying or downloading directly.
4. Keep both files together. The ZIP does not include another copy of itself; retain the downloaded ZIP alongside the extracted destination folder. Record counts should match the ten archive counts shown by the transfer desk.

The export includes saved timber journeys, laboratory runs, calibration-linked worksheets, scale design studies, device studies, patterning studies, passive-component studies, discovery plans / evidence, the living-systems progress journal and specimen / process histories. Unsaved controls (including the living-systems calculators and scans), electronic monitor samples and work retained only in a tab's memory fallback are excluded. Export memory-only work from its original workbench before closing that tab.

The bundle validates records, carries SHA-256 checksums and preserves worksheet/calibration relationships and discovery plan / parent / evidence relationships. Version 5 adds specimen / process histories with exact parent hashes and explicit branches. Version 4 adds the progress journal, including withdrawal records. Version 3 adds the discovery archive; older version 1 through 4 bundles retain their original archive boundaries and remain readable. Checksums detect changed bytes or content; they do not identify or authenticate an author. Collection reads each archive separately, so pause recording while taking a transfer snapshot if you need one consistent work-session boundary.

Project-file saving accepts only validated transfer bundles from this preview's own origin, limits files to 5 MB, and never replaces an existing transfer identity. Save again after creating more studies; each snapshot is a separate file. The simulator ZIP intentionally excludes these browser archive files, so copy the chosen JSON alongside it.

Patterning result verification allows a numerical difference of at most `1e-12 × max(1, |saved|, |recomputed|)` per derived number, because trigonometric results can differ in their final digits between JavaScript runtimes. Inputs, metadata, structural fields, saved values and transfer checksums remain exact. This numerical tolerance is not a physical measurement uncertainty.

## On the destination computer

1. Install Node.js. This project was checked with Node 22.16.0 on Windows; the runtime is not included in the ZIP.
2. Extract the ZIP into a normal working folder. Keep its directory structure.
3. Open a terminal in the extracted folder and run:

```powershell
node environment/server.mjs
```

4. Open `http://127.0.0.1:43127/transfer` in the browser you intend to use. The included Three.js package supplies the current preview dependencies; a fresh `npm install` is not necessary for this packaged preview.
5. Choose the transfer JSON or paste it, then choose **Check contents & identities**. Review the new / identical / conflicting counts.
6. Choose **Import missing records**. Open the workbenches to inspect the restored histories.

The preview listens only on `127.0.0.1`. Browser storage belongs to an origin: changing the host name, port or browser creates a different archive location. Keep using the same local address. A port conflict can be resolved by stopping the other verified preview or setting `FARM_PREVIEW_PORT`; use the transfer desk at the chosen address afterward.

Import first validates the whole file and checks all destination identities. It never replaces an existing history. Separate browser databases cannot share a single transaction; if storage fails midway, the report lists the stopped record and the number remaining. Check the same bundle again to resume: already imported identical records are skipped. Conflicting revisions require deliberate reconciliation in their original workbench, not overwrite during transfer.

## Check the package

`handoff/portable-manifest.json` lists the included files. The archive contains `scripts/verify-portable.py`; with Python installed, run:

```powershell
python scripts/verify-portable.py
```

For the model, mathematical and source-asset checks:

```powershell
cd environment
npm run check
```

Native KiCad editing and regeneration require KiCad separately. The checks inspect the retained CAD reports and source hashes; they do not perform a new KiCad DRC run. Python packaging scripts require Python. No Unreal project, engine installation, Node runtime, physical instrument connection or browser profile is included.

The ZIP includes original simulator code and geometry plus Three.js 0.180.0 with its MIT license. External documentation is linked, not mirrored. File packaging and local preview checks do not establish that the new computer or Unreal importer has been tested. Use the one-meter reference cube and asset manifests in `UNREAL-HANDOFF.md` when setting up the next environment.

### Power and recovery drafts

The power load register and material-stream editor retain individual editable planning drafts. Export each from Living systems → Power & wires or Chemistry & recovery; the Transfer desk links both. These drafts are not included in the ten-archive history bundle or in the simulator ZIP. Restore each using its own Import control, then Save. Keep the original files. Motor energy-study exports are separate calculation documents; a motor demand copied into a power plan travels with that exported plan.

### Specimen and process histories

Chemistry & recovery → Specimen & process histories keeps full versions of an account, including specimen lots, added inputs, splits, process descriptions, quantities, composition claims and reported destinations. Saved versions join the tenth archive. Imports validate all parent relationships, and transfer writes parents before child revisions. A standalone material-history import is atomic within its database; the complete ten-archive transfer remains resumable across databases.

An unsaved material-case draft has its own export and is excluded from retained histories. Restore its parent histories before importing a revision draft. A corrected quantity or process account is a new version; earlier versions remain inspectable. These records do not release inventory or establish physical process qualification.

### Site and seasonal planning workspace

Crops & animals → Site & seasonal reserves exports all candidate scenarios in a `starter-provision-workspace/1` file. It includes their site notes, resources, monthly quantities and source references. These editable drafts are separate from the ten retained-history archives and the simulator ZIP. Restore with Import seasonal workspace, then choose Save seasonal workspace. A calculated-scenario export is a separate explanatory document and is not the editable workspace import format.

### Display studies and workshop research plans

Screens exports the current pixel dimensions and assumptions as a complete JSON study, a parametric OpenSCAD file and an SVG dimension sheet. The two GLB links retain the labeled default dimensions. These calculation/geometry exports are separate from the ten retained archives and currently have no workbench JSON-import control. Preserve the editable OpenSCAD and the complete JSON for the next computer.

Each of the six pixel comparisons can open an unsaved Discovery plan with a copied proposal and references. Save the plan to include it in the existing Discovery archive; its open definition fields remain visible. Later revisions get new identities, and evidence stays linked to the exact saved plan. Current pixel-calculator edits are not automatically copied into these source-question links.

Use the refreshed application package when importing workshop-source Discovery plans. Older materials/seasons packages do not recognize the new workshop source type, even though the transfer container remains version 5. Existing museum-origin plans and older version 1–4 transfer bundles remain readable in the refreshed package.


### Optical comparison worksheets

Screens → Measure light exports the current OM-001 worksheet as `starter-optical-worksheet/1`. This document contains raw entries, calculated comparisons, units, the limited uncertainty model and omitted effects, authored-example provenance when applicable, bench parts and sources. It is separate from the ten retained histories and has no worksheet-import control. Invalid entries block export. Switching between the two Screens panels preserves the draft, but leaving or reloading the page clears it; export before leaving. The default bench GLB carries original teaching geometry in meters, not a fabrication release.


### Crop trials and harvest station

Crops & animals → Crop trials & discovery exports the proposed allocation diagram and its current draft as `starter-season-layout-export/1`. The harvest station exports the selected proposed plot, part, presentation settings and source context as `starter-harvest-station-export/1`. These are reference documents with no import controls; they carry no physical observations, actual plot identity or saved-plan identity. The station is a visual bridge into the existing scale, component and calibration workbenches.

Save an edited Discovery plan to retain that exact plan version in the existing Discovery archive, then take a new transfer snapshot. The diagram and station exports do not save it for you. The portable application includes the default station's assembled/exploded GLBs, dimension drawing and geometry manifest. Those authored envelopes use meters and are not a fabrication release.

### Reference masses and load plan

Crops & animals → Crop trials & discovery → harvest station → Reference masses & scale suitability (RM-001) has two separate exports. **Export the blank reference register** writes `starter-mass-reference-register/1`, the empty template also kept at `instruments/SC-001/mass-reference-register.json`; it contains no candidate rows, physical assets or observations. **Export this proposed load plan** writes `starter-scale-suitability-plan/1` with the five proposed-mass entries exactly as typed, exact-decimal sums and comparisons against the proposed SC-001 targets, the equations, the candidate requirements and source references. The decimal strings are authoritative; the numeric fields are approximate conveniences. Invalid entries block the load-plan export.

Neither document has an import control or a saved-plan identity. Neither is part of the ten retained archives or the simulator ZIP, and neither is calibration evidence. The desk keeps its draft, selected stage and open state when you switch panels or change region, but reloading the page clears them; export first. The harvest-station export carries none of these inputs, and the load plan carries no plot or station context.
