https://github.com/deadronos/planet-life-3d
A 3D Conway-style cellular automaton that runs on a lat/lon grid wrapped onto a planet. Click the planet to shoot a meteor. On impact it seeds the grid using a configurable pattern.
https://github.com/deadronos/planet-life-3d
Last synced: 3 months ago
JSON representation
A 3D Conway-style cellular automaton that runs on a lat/lon grid wrapped onto a planet. Click the planet to shoot a meteor. On impact it seeds the grid using a configurable pattern.
- Host: GitHub
- URL: https://github.com/deadronos/planet-life-3d
- Owner: deadronos
- License: mit
- Created: 2025-12-13T14:48:22.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-12-22T20:12:33.000Z (5 months ago)
- Last Synced: 2025-12-23T08:44:33.250Z (5 months ago)
- Language: TypeScript
- Homepage: https://deadronos.github.io/planet-life-3d/
- Size: 3.23 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Planet Life 3D (Conway on a Sphere)
A 3D Conway-style cellular automaton that runs on a lat/lon grid wrapped onto a planet.
Click the planet to shoot a meteor. On impact it seeds the grid using a configurable pattern.
## Demo Screenshot

## Run
```bash
npm install
npm run dev
```
## Controls
- Orbit with mouse (right drag to pan, wheel zoom).
- Click the planet to fire a meteor at the clicked spot.
- Tune grid/rules/speed/meteor + seeding parameters via the Leva UI.
## Testing
- Run the test suite: `npm run test`
- Run in watch mode: `npm run test:watch`
- Open the Vitest UI: `npm run test:ui`
## Pre-commit hook (automatic formatting)
This repo uses lint-staged to automatically format and lint staged files before commit. A lightweight git hook lives in `.githooks/pre-commit` and runs `npm run format:staged` for JS/TS and other file types.
- Run `npm install` to install dependencies and configure the hook (the `postinstall` script runs `npm run install:hooks`).
- To install hooks manually, run `npm run install:hooks`.
- To format staged files manually, run `npm run format:staged`.
If you prefer not to use the hook, unset your local git hooks path with `git config --unset core.hooksPath`.
## Deployment
The site is deployed to GitHub Pages when a new tag starting with `v` is pushed (for example `v1.0.0`). The Actions workflow `\.github/workflows/deploy-pages.yml` builds the project and deploys the `dist` output using Node.js 20.x and the official GitHub Actions for Pages (`actions/configure-pages@v5`, `actions/upload-pages-artifact@v4`, `actions/deploy-pages@v4`).
To test the build locally before tagging, run:
```bash
npm install
npm run build
```