Skip to content

Repository files navigation

Aetheris Client

High-performance, WASM-powered browser client runtime — featuring a deterministic three-worker execution model and WebGPU rendering.

CI Rust Version Conventional Commits PRs Welcome


Browser-Native Performance

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).

📦 Workspace Components

Crate Link Documentation
aetheris-client-wasm Crates.io Docs.rs
aetheris-client-native Crates.io

Workspace Components

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.

Quickstart

# 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'

🛠️ Common Tasks

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).

The Three-Worker Architecture

  1. Game Worker — Runs the WASM simulation core at 60Hz. Owns the physics tick, entity state, and game logic.
  2. Render Worker — Reads the lock-free double-buffer via SAB and drives the WebGPU render pipeline.
  3. Main Thread — Owns the DOM, input capture, and lifecycle. Routes messages between workers.

Documentation Index


License: MIT / Apache-2.0

About

The high-performance WebAssembly client for the Aetheris Engine. It features a multi-threaded 3-worker topology, WebGPU rendering, WebTransport networking, and client-side prediction for browser-based real-time multiplayer games.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages