- TypeScript 56.2%
- Rust 34%
- JavaScript 2.7%
- Makefile 2.4%
- CSS 1.9%
- Other 2.8%
Move the repo-local skill directory from .claude/skills/ to .agents/skills/, the agent-neutral canonical home. The global ~/.claude/skills/ harness aggregation dir is unchanged. Closes #74 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Audit-log: coily://1779433758/AGPE5BC6 - coily ops gh issue create |
||
|---|---|---|
| .agents/skills | ||
| .cargo | ||
| .claude | ||
| .coily | ||
| .github/workflows | ||
| .vscode | ||
| benches | ||
| deploy | ||
| docs | ||
| e2e | ||
| src | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| coily.yaml | ||
| development.md | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| LICENSE | ||
| makefile | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.js | ||
| readme.md | ||
| tsconfig.json | ||
| webpack.config.js | ||
galaxy-gen
{ rust → wasm → js } galaxy generation simulation. Gravitational physics
(Newton's law on a cell grid) computed in Rust, compiled to WebAssembly via
wasm-pack, rendered in the browser
with React + D3.
Quick start
make install # cargo build + wasm-pack + npm install + playwright browsers
make dev # rust/wasm watcher + webpack-dev-server (dual auto-reload)
make test # rust unit tests + Playwright E2E
See the makefile for the full set of targets and AGENTS.md for the conventions.
Architecture
src/rust/galaxy.rs— core simulation (Galaxy+Cellstructs, cell types Gas / Star / Planet / White Hole, gravity, seeding,tick). Unit tests live inmod tests_*blocks at the bottom of the file.src/rust/lib.rs— crate root; re-exportsgalaxy.pkg/—wasm-packoutput:.wasm+.js+.d.ts. Gitignored; linked intonode_modules/galaxy_gen_backendbynpm install ./pkg.src/js/lib/galaxy.ts—Frontendclass; the JS ↔ WASM boundary.src/js/lib/application.tsx— React UI (inputs, buttons,data-testids).src/js/lib/dataviz.tsx— D3 scatter plot into#dataviz.src/js/lib/styles.css— Tailwind v4 + custom coilysiren palette.e2e/galaxy.spec.ts— Playwright end-to-end tests.dist/— production webpack build output (gitignored).
Tooling
- Rust:
cargo check/cargo test/cargo fmt/cargo clippy. - WASM:
wasm-pack buildcompiles Rust to WebAssembly. The dev server watchespkg/**/*and hot-reloads on rebuild (viacargo watch). - JS: webpack 5 + babel (React + TypeScript presets). Tailwind v4 via PostCSS.
- Lint/format: ESLint flat config (
eslint.config.mjs) + Prettier. - Tests: Rust unit tests via
cargo test; browser end-to-end via Playwright (npm run test:e2e). - CI: GitHub Actions runs
rust,js, ande2ejobs on every push/PR tomain.
Similar projects
Open-source galaxy / n-body / WASM-sim projects worth studying. Surfaced with admiration.
- andrewdcampbell/galaxy-sim - real-time browser N-body, Three.js + WebGL, runtime controls and free-orbit camera.
- magwo/fullofstars - the original real-time N-body galaxy toy this project's art direction takes after. Pure JS + WebGL, no build step.
- simbleau/nbody-wasm-sim - 2D N-body, Rust + wgpu, force kernel runs as a WebGPU compute shader.
- MichaelJCole/n-body-wasm-webvr - browser universe in WebVR, physics in a Web Worker, AssemblyScript -> WASM.
- someguynamedmatt/gravity - compact gravity sim on the same Rust + wasm-bindgen toolchain. Bare-surface reference.
- zotho/rust_n_body - Rust N-body with native + WASM builds from one crate. Integrator-focused.
- aestuans/blob - Rust -> WASM showcase, 2D fluid + gravity in one sim, renders WebGL from the WASM side.
- DrA1ex/JS_ParticleSystem - 1M particles in real time. Hierarchical spatial-tree O(N log N) + pluggable CPU/GPGPU backends + record-replay.
- davrempe/webgl-nbody-sim - 3D N-body in vanilla WebGL, no build step.
- holmgr/gemini - sci-fi trading-and-smuggling over a procedurally generated galaxy. Terminal UI over a Rust core.
Contributing
External contributors are welcome. One non-obvious prerequisite: the pre-commit pipeline includes a coily-trailer hook that calls coily, a CLI used to audit and trail commits across this workspace. Install it before your first commit, or the hook will fail.
Deployment
Deployed to galaxy-gen.coilysiren.me.
Docker image published to GitHub Container Registry, served through Caddy
on k3s on kai-server via Tailscale. See the deploy GitHub Actions
workflow for the pipeline.
Commands
Dev commands are declared in .coily/coily.yaml. Run them as coily exec <verb>.
See also
- AGENTS.md - agent-facing operating rules.
- docs/FEATURES.md - inventory of what ships today.
- .coily/coily.yaml - allowlisted commands.
Cross-reference convention from coilysiren/agentic-os#59.