Getting Started
VisualMode is a keyboard-first design tool powered by a Rust/WASM engine with WebGPU rendering. It supports both 2D and 3D editing with vim-inspired keybindings.
PREREQUISITES
- Private alpha browser: Chrome/Edge with WebGPU enabled
- Firefox/Safari hardening is deferred to public-beta support work
- Rust + wasm-pack (for engine development)
- Vite+ with pnpm (frontend toolchain)
QUICK START
$ vp install $ vp run dev
Private Alpha
Private alpha builds are for invited Chrome/Edge users while the engine and Project File model are still moving. Treat important work as experimental and keep separate copies until public-beta durability lands.
KNOWN ISSUES
- Chrome/Edge are the only supported alpha browsers.
- Project save/load is actively hardening and is not the public-beta guarantee yet.
- Nested Screens and 3D World render targets can change as the render DAG work lands.
- Firefox/Safari support is public-beta hardening work, not an alpha blocker.
FEEDBACK
Use the private alpha thread. Include browser, route, file name, what you expected, what happened, and the smallest set of steps that reproduces it.
Selection
Editing
Gizmos
Camera & Views
Vim Mode
Vim keys are handled by the Rust engine's keymap.
Architecture
The engine is a Rust Cargo workspace compiled to WebAssembly. The frontend is SolidJS with TanStack Router, communicating with the engine via wasm-bindgen.
foundation shared types, no GPU ├── espacio flexbox layout engine ├── core-3d 3D World ECS and commands ├── core-2d 2D Canvas ECS and commands ├── renderer 3D WebGPU rasterizer ├── renderer-2d 2D SDF renderer ├── wasm 3D WASM boundary ├── wasm-2d 2D WASM boundary └── cli headless testing
Rendering runs on a Web Worker via OffscreenCanvas, keeping the main thread free for input handling. Data is transferred as zero-copy Float32Array buffers.