Architectural Program Creator is a browser-based spatial planning tool for turning a list of spaces and their relationships into an interactive 3D program diagram.
It is designed for early-stage architectural thinking, when the goal is to test adjacencies, relative sizes, clustering, and overall spatial composition before moving into detailed modeling.
The app reads:
- a program CSV with space dimensions and metadata
- a relationship matrix CSV with positive and negative adjacency weights
It then places those spaces as 3D blocks inside a configurable boundary, visualizes them in real time, and exports the arrangement as JSON.
Full interface view:
3D viewport detail:
program_creator.html: main applicationspace_parameters.csv: minimal example program inputrelationship_matrix.csv: minimal example relationship matrix
- Loads a program table from CSV
- Loads a relationship matrix from CSV
- Packs and repositions spaces inside a configurable box
- Supports isometric view, labels, and PNG export
- Exports the current 3D arrangement as JSON
This project does not require a build step.
- Open
program_creator.htmlin a modern browser. - If your browser blocks local file features, serve the folder with a simple static server instead.
- Load
space_parameters.csvandrelationship_matrix.csvthrough the file inputs in the sidebar.
Notes:
- The viewer loads
three.jsfromhttps://unpkg.com, so an internet connection is required unless you vendor that dependency locally. - The HTML references an optional
HelveticaNowDisplay-Regular.ttffile in the same folder. If it is missing, the app falls back to system fonts. - The bundled CSVs are intentionally small examples, not a full project dataset.
The loader accepts flexible column names. Core fields are:
codespace_typefamilycountlength_morlengthdepth_mordepthceiling_height_m,height_m, orheight
Optional fields:
inseparable_groupor similar group identifiers- preferred position columns such as
preferredx,preferredy,preferredz
For rows with count > 1, the app generates numbered instances automatically.
Expected format:
- first column: row type id
- remaining columns: target type ids
- cell values: numeric weights
Interpretation:
- positive values pull space types closer together
- negative values push them apart
0means no relationship
The app normalizes relationship values internally.
The Export JSON button outputs:
- box dimensions
- view settings
- type definitions
- per-space geometry, color, center point, and rotation
- This repository currently contains a single-file HTML application.
- If you want fully offline use, download
three.min.jslocally and update the script tag inprogram_creator.html.
This project is source-available for personal, educational, research, and non-commercial evaluation use only.
Commercial use requires separate permission from the repository owner. See
LICENSE.txt.

