Skip to main content
Version: 0.2

Development

Start the dev server:

pnpm dev

pnpm dev runs three steps in order (from package.json):

package.json
"dev": "pnpm run build:wasm && pnpm run build:vanilla-logger && vite"
  1. build:wasm: compiles rust/brain_sim to WebAssembly via wasm-pack.
  2. build:vanilla-logger: bundles the diagnostics logger into a standalone IIFE for the legacy reference pages (see Diagnostics Logger and Reference Pages).
  3. vite: starts the Vite dev server on port 9001.

Open http://localhost:9001 once Vite reports it is ready.

Keyboard shortcuts

The shortcuts are registered in src/events.ts:

KeyAction
SpaceToggle simulation pause.
AToggle the grid helper.
SToggle the axis helper.

The diagnostics panel adds one more, handled in src/diag/logger.ts:

KeyAction
Ctrl + Shift + LToggle the in-app diagnostics panel.

Hot reload

Vite handles HMR for the TypeScript and CSS. Changes to the Rust code are not hot-reloaded: rerun pnpm run build:wasm (or restart pnpm dev) to pick up simulation changes.

Docs site

cd docs-site
pnpm install
pnpm start # Live-editing dev server at http://localhost:3000
pnpm build # Production build, including the local search index
pnpm serve # Serve the production build
pnpm preview:search # Build, serve, and verify local search

The docs search box uses @easyops-cn/docusaurus-search-local. pnpm start is useful for editing layout and content, but it does not serve the generated search index. To test search, run pnpm build followed by pnpm serve, or use pnpm preview:search.

Security note for shared dev servers

vite.config.ts sets server.fs.allow: ['..'] and binds the dev server on port 9001 with no authentication. That is convenient locally because the build serves sibling reference directories, but it means anyone who can reach the port can read files from the parent directory. Do not expose the dev server on a public or shared network as-is. For sharing a build, use the static output from pnpm build behind your own server instead.