webgpu game engine
in development. not yet ready for use
- fast by default
- instant iteration
- runs anywhere
- bun
- rust with the
wasm32-unknown-unknowntarget (rustup target add wasm32-unknown-unknown) - wasm-pack
wasm-optfrom binaryen — optional, build falls back to a copy
git clone https://github.com/dylanebert/shallot
cd shallot
bun install
bun run buildbuild compiles the rust crates (transforms wasm, audio wasm, native window host) and the docs site.
run an example:
cd examples/hello-cube
bun devother examples: gym, raytracing, react-cube, svelte-cube, visualization, workstation.
packages/shallot/— the engine. published as@dylanebert/shallotpackages/shallot/editor/— Svelte editor apppackages/create-shallot/—bun create shallotscaffoldpackages/vscode-shallot/— VS Code extensionexamples/— standalone vite projects against the enginedocs/— guide, engine, standard, extras, editor. Reference tables generated from JSDoc bybun run build
run from the repo root.
bun test # unit tests (bun-webgpu)
bun bench # gpu benchmarks
bun check # format + type check
bun run format # biome + scene formatter
bun run build # rust artifacts + docsbun check and bun test should pass before pushing. bun bench after gpu changes.
bunx shallot examples/hello-cubeopens the editor on the example scene.
if you just want to use shallot in a project of your own:
bun create shallot my-gameMIT