Make it yours
Contribute
Help improve the simulation, design an experiment or contribute better evidence.
A useful contribution can be a reproducible experiment, a better explanation, a source-backed material pack, a usability improvement or a simulation fix. Start by describing the question and the result you expected.
Set up the game
git clone https://github.com/crs48/courtyard-block.git
cd courtyard-block
godot --editor --path .
Use Godot 4.7.2 with Compatibility rendering. Press F5 to play the annual lab. Runtime code uses typed GDScript; simulation calculations remain separate from scenes and platform effects, and canonical state stays serializable.
Before submitting simulation or mod API changes, run:
godot --headless --path . --script tests/run.gd
python3 scripts/check.py
The second command also imports the project and checks both playable scenes. Godot sometimes returns success despite script errors; the helper treats those diagnostics as failures.
Change the website or docs
The website lives in website/ and uses Astro, Tailwind CSS and Node 24. Documentation is rendered directly from the repository’s Markdown files. Edit the source document, rather than a generated copy.
npm ci --prefix website
npm run dev --prefix website
Open http://localhost:4321/courtyard-block/. For the embedded game and search, export and build the full site as described in website and publishing. Run npm run check --prefix website and npm run build --prefix website before submitting website changes.
Make a reviewable change
- Create a branch for one problem or experiment.
- Explain the behavior and its boundaries. For simulation changes, include a small fixture or experiment that distinguishes correct from incorrect behavior.
- Record provenance, units, uncertainty and redistribution permissions for new data. Keep synthetic assumptions labeled.
- Preserve replay compatibility, or explicitly bump the model runtime identifier when numerical behavior becomes incompatible. Do not silently reinterpret saved experiments.
- Use conventional commits with a concise subject and bulleted details. Open a pull request with what changed and the checks you ran.
The automated workflow checks the game, builds the browser export and checks website links. Pull requests do not deploy; pushes to main publish GitHub Pages.
License
Contributions to the project’s original code and content are under the MIT license, copyright Christopher Smothers. Include attribution and applicable licenses for third-party material. The third-party notices describe the components distributed with the site and game.