# Interstices — source and reproduction This website download contains the complete Python and browser source, both selected artwork states, reproduction settings and recorded numerical checks. Run the commands below from the extracted `Interstices_Source` folder. ## What is included - `original/` — the original tissue simulation, material renderer and selected `final_state.npz` (step 1350). - `expanded/` — the landscape simulation, material renderer and selected `final_state.npz` (step 1050). - `live/` — the complete browser simulation: page, worker, Canvas renderer and initial state. - `reproduce.py` and `presets.json` — the rendering/regeneration entry point and exact selected settings. - Run parameters, division histories, validation scripts, recorded results and source checksums. This compact edition omits reference PNGs, separate rendered layers and intermediate/control `.npz` checkpoints. The two selected final states are retained unchanged. All simulation, rendering and browser code is unchanged. New images and layers can be rendered from the retained states; new growth sequences can be generated from the code. ## Set up Python Use Python 3.12. From this package folder: ```bash python -m venv .venv ``` Activate it on macOS/Linux: ```bash source .venv/bin/activate ``` Or on Windows PowerShell: ```powershell .venv\Scripts\Activate.ps1 ``` Then install the recorded dependencies: ```bash python -m pip install -r requirements.txt ``` The requirements pin NumPy 2.3.5, SciPy 1.17.0 and Pillow 12.3.0. The optional geometry validator also uses Shapely 2.2.0. If your system calls Python `python3`, substitute that command. The browser version needs none of the scientific Python packages. ## Render the included artwork states These commands do not rerun growth. Start with quick 800-pixel previews: ```bash python reproduce.py original --preview python reproduce.py expanded --preview ``` For full-size images and separate material layers: ```bash python reproduce.py original --layers python reproduce.py expanded --layers ``` Full-size outputs are `output/original/Interstices.png` (2400 × 2688) and `output/expanded/Interstices.png` (6400 × 4608). Preview folders have `_preview` appended. The layers and render settings appear beside each image. Use `--out another_folder` to choose a different destination. The full expanded renderer needs substantially more memory than an 800-pixel preview. The retained `final_state.npz` files mean selected artwork states, not the final simulated steps. The full-size renders matched the original reference images pixel-for-pixel in the source package's recorded environment; those reference outputs are omitted here. See `verification.json` for the original recorded checks. ## Regenerate growth from the founders ```bash python reproduce.py original --regenerate --layers python reproduce.py expanded --regenerate --layers ``` This runs the model from its founders, saves checkpoints and renders the selected step. New runs go under `output/EDITION/simulation/`. The included selected states remain unchanged. If a generated simulation folder is already populated, select a fresh output directory with `--out`. Add `--preview` for a smaller final image; that option reduces rendering size, not the number of simulation steps. | Setting | Original | Expanded | | --- | --- | --- | | Founders | 102 | 634 | | Authored starting regions | 3 | 17 | | Selected cells | 1033 | 3931 | | Selected step | 1350 | 1050 | | Regenerated run length | 1500 steps | 1350 steps | | Simulation / rendering seeds | 417 / 919 | 417 / 919 | | Growth coefficient | 0.0035 | 0.0035 | | Matrix reaction | 0.65 | 0.65 | | Cell boundary points | 24 | 24 | Growth trajectories can vary across platforms or library versions. Model distances and steps are not calibrated biological units. ## Run the live version From the package root: ```bash python -m http.server 8000 --bind 127.0.0.1 --directory live ``` Open in a desktop browser. Stop the server with Ctrl+C. Use a local server instead of double-clicking `index.html`, because the page fetches its initial state and starts a Web Worker. No Node installation or build step is needed. The computation begins with 634 founders, grows toward 4200 cells, then continues mechanical settling. It pauses in hidden tabs; reloading restarts it. Its lighter JavaScript solver and renderer use fewer fibres than the offline Python model, so exact contours and division timings differ from the stills. This download includes the live model, not the MP4 recording shown on the website. ## Change the work - `--seed`, `--growth`, `--matrix-reaction`, `--steps` and `--snapshot` in each `tissue.py` control new simulations. - The `regions` list in `initialise()` controls the founding arrangement. - Renderer `--size`, `--width`, `--cx`, `--cy`, `--seed` and the expanded `--aspect` control resolution, framing and material variation. - `render_section.py` contains the palette, stain, nuclear marks and fine material treatment. - `live/model.js` contains the live model and population limit; `live/renderer.js` contains its material treatment. Geometry and rendering are separate. Nuclear marks, pigment texture and extra fine strands are artistic additions attached to the simulated geometry. Direct selected-state render commands (the direct renderer names the result `Tissue_Study.png`): ```bash python original/render_section.py original/final_state.npz --out output/original_direct --size 2400 --width 88 --cx -1 --cy -3 --seed 919 --layers python expanded/render_section.py expanded/final_state.npz --out output/expanded_direct --size 6400 --width 218 --cx 0 --cy 2 --aspect 0.72 --seed 919 --layers ``` ## Recorded checks and archive scope The edition `README.txt` files and JSON validation records are retained from the original archives and may refer to reference images or intermediate/control states omitted from this compact download. They describe the original runs. The original validator requires those control and intermediate checkpoints and therefore cannot be rerun against this compact archive alone. All validator source is retained for inspection or use with regenerated matching runs. Neither full growth trajectory was repeated while preparing this website download.