High-performance, WASM-powered browser client runtime — featuring a deterministic three-worker execution model and WebGPU rendering.
Aetheris Client brings authoritative multiplayer to the browser without compromising on frame times. By leveraging a native three-worker architecture, the client isolates networking (IO), simulation (Logic), and rendering (Visuals) into parallel streams. This ensures that even during heavy network spikes or complex simulation updates, the rendering thread maintains a butter-smooth 60Hz experience using modern WebGPU pipelines.
Important
🚀 Current State: VS-06 (World & Workspace Management) complete! Protocol v0.2.11 & Authoritative Input Pipeline. Foundational work for Workspace-based replication and Playground Input (VS-05) finalized.
Features introduced in recent slices:
- Protocol v0.2.11: System Manifest (extensible metadata), Possession flow, and Workspace Management components.
- Input Pipeline: Key-state forwarding (WASD+F+Space) with noise reduction.
- Workspace Architecture: Entity memberagent and spatial filtering ready for Multi-Player (VS-04).
| Crate | Link | Documentation |
|---|---|---|
aetheris-client-wasm |
||
aetheris-client-native |
— |
The client is split into focused crates for lean WASM builds and clear native/browser isolation:
aetheris-client-wasm: The browser runtime. Implements the simulation loop, WebGPU renderer, and WebTransport networking as a SharedArrayBuffer-backed WASM module.aetheris-client-native: The native runtime stub. Provides the same trait surface for desktop and server-side headless clients.
# 1. Build WASM core and asset bundle
just wasm
# 2. Run quality gate checks (fmt, clippy, tests, security, docs)
just check
# 3. Start development server (connected or sandbox mode)
just dev # or 'just playground'| Command | Category | Description |
|---|---|---|
just check |
Quality | Complete PR validation: fmt, clippy, tests, security audit, and doc lint. |
just wasm |
Build | Compile the Rust core to WASM (thread-ready, atomics enabled). |
just dev |
Flow | Start the Vite development server (connected mode). |
just playground |
Flow | Start the Vite development server (isolated sandbox mode). |
- Game Worker — Runs the WASM simulation core at 60Hz. Owns the physics tick, entity state, and game logic.
- Render Worker — Reads the lock-free double-buffer via SAB and drives the WebGPU render pipeline.
- Main Thread — Owns the DOM, input capture, and lifecycle. Routes messages between workers.
- CLIENT_DESIGN.md: Worker architecture and state synchronization.
- INPUT_PIPELINE_DESIGN.md: Client-side prediction and input gathering.
- ASSET_STREAMING_DESIGN.md: Progressive asset loading and streaming.
- PLAYGROUND_DESIGN.md: Isolated sandbox architecture for rapid QA.
License: MIT / Apache-2.0