A modular, open-source VR engine built in Rust for creating immersive virtual worlds.
Status: Early development (v0.1.0). APIs are unstable and subject to change.
Building virtual worlds today means stitching together dozens of disparate libraries, dealing with C++ interop, and fighting runtime crashes. Aether takes a different approach:
- Rust-native from day one — Memory safety, fearless concurrency, and zero-cost abstractions without sacrificing performance.
- Modular by design — 26 crates, each a self-contained subsystem. Use only what you need, swap out what you don't.
- Built for multiplayer — Networking, state synchronization, and server-side validation are first-class citizens.
- Social VR focus — Avatars, social graphs, economies, and user-generated content are part of the core engine, not plugins.
Aether is organized as a Rust workspace with 26 crates spanning six domains:
aether/
├── crates/
│ ├── Core Engine ──── aether-ecs, aether-physics, aether-renderer, aether-audio, aether-input
│ ├── Scripting ────── aether-scripting
│ ├── World ────────── aether-world-runtime, aether-network, aether-zoning, aether-federation
│ ├── Social ───────── aether-avatar, aether-social, aether-economy, aether-ugc
│ ├── Platform ─────── aether-gateway, aether-registry, aether-asset-pipeline, aether-platform
│ └── Safety ───────── aether-security, aether-trust-safety, aether-compliance,
│ aether-content-moderation, aether-deploy, aether-persistence
├── examples/
│ └── 3d-demo ──────── Interactive 3D scene with software renderer
└── docs/design/ ─────── 62 design documents
| Crate | Description |
|---|---|
| aether-ecs | Archetype-based ECS with parallel queries, event bus, and network-aware components |
| aether-physics | Rapier3D integration with rigid bodies, joints, triggers, collision layers, and VR interaction physics (grab, throw, hand collision, haptics) |
| aether-renderer | Rendering pipeline with GPU scheduling, foveated rendering, frame budgeting, and a software rasterizer for prototyping |
| aether-audio | Spatial audio with HRTF, Opus codec, acoustic zones, attenuation models, and audio capture |
| aether-input | VR input abstraction with OpenXR session/tracking/haptics, desktop fallback, locomotion comfort policies, and action mapping |
| Crate | Description |
|---|---|
| aether-scripting | WASM script runtime with per-script resource caps, rate limiting, priority scheduling, and world-level orchestration |
| aether-creator-studio | Creator tools: terrain/prop/lighting editors, undo/redo, and a visual scripting editor with node graph, type system, validation, and IR compiler |
| Crate | Description |
|---|---|
| aether-world-runtime | World lifecycle, chunk-based streaming with LOD, manifest loading, tick scheduling, input buffering, and client-side prediction |
| aether-network | QUIC transport, delta compression, interest management, voice channels, client-side prediction, and server reconciliation |
| aether-zoning | Spatial load balancing with zone split/merge, cross-zone ghost entities, portal system with aether:// URLs, and session handoff |
| aether-federation | Cross-instance interoperability with handshake protocol, server registry, asset transfer, and federated auth |
| Crate | Description |
|---|---|
| aether-avatar | Avatar system with skeletal animation, FABRIK IK, blend shapes, lip-sync, LOD, GPU skinning, and performance rating |
| aether-social | Social graph with friends, blocking, groups, presence, real-time chat, and horizontal sharding |
| aether-economy | Double-entry ledger, wallet management, fraud detection, transaction processing, and settlement/payout |
| aether-ugc | User-generated content pipeline: upload, scanning, approval workflow, artifact storage, and moderation integration |
| aether-asset-pipeline | Asset import (glTF), processing, compression, hashing, and bundle packaging |
| Crate | Description |
|---|---|
| aether-gateway | API gateway with auth middleware, rate limiting, geo routing, health checks, and voice relay |
| aether-registry | World discovery, search, ranking, matchmaking, analytics, and portal registration |
| aether-security | Anti-cheat (movement validation, teleport detection, hit validation), JWT auth, encryption, and action rate limiting |
| aether-trust-safety | Runtime safety controls: personal space bubbles, safety zones, visibility filtering, parental controls, and block enforcement |
| aether-content-moderation | Automated scanning (text/image/WASM), human review queue, severity classification, and report system |
| aether-compliance | GDPR data deletion/export, pseudonymization, retention scheduling, and legal hold management |
| aether-platform | Multi-platform client support with capability detection, quality profiles, and platform-specific builds |
| aether-deploy | Kubernetes deployment, autoscaling, health probes, failover, and region-aware topology |
| aether-persistence | WAL-backed durable state with PostgreSQL/Redis/NATS backends and ephemeral checkpointing |
Download the latest release for your platform from GitHub Releases, or install with:
curl -fsSL https://raw.githubusercontent.com/<org>/aether/main/install.sh | shThen run:
aether run --list # See available examples
aether run 3d-demo # Launch the 3D demoPrerequisites: Rust (stable toolchain)
cargo build
cargo test # 3,074 tests across all crates, 0 failuresInteractive scene with software renderer, physics, and keyboard controls:
aether run 3d-demo # using pre-built binary
cargo run -p aether-3d-demo # from source| Key | Action |
|---|---|
W A S D |
Move |
| Arrow keys | Orbit camera |
Q / E |
Zoom in / out |
ESC |
Quit |
A web-based node editor for building game logic visually:
aether run visual-editor # using pre-built binary
cargo run -p aether-visual-scripting-demo # from sourceThe visual editor supports 33 node types across 6 categories (events, flow control, actions, math, logic, variables), type-safe connections, graph validation, cycle detection, and compilation to an IR instruction set. Drag nodes from the sidebar, connect ports, and click Compile to see the generated output.
PBR scene rendered with wgpu (shadows, MSAA, metallic-roughness materials):
cargo run -p gpu-demoServer-authoritative multiplayer with QUIC transport and avatar sync:
cargo run -p multiplayer-demo --bin mp-server # Terminal 1: start server
cargo run -p multiplayer-demo --bin mp-client # Terminal 2: connect clientThe Phase 1 milestone demo — ties together GPU rendering, physics, multiplayer networking, visual scripting, and asset hot-reloading through the ECS:
cargo run -p single-world-demo| Key | Action |
|---|---|
W A S D |
Move camera |
| Arrow keys | Rotate camera |
Space / Shift |
Move up / down |
ESC |
Quit |
Design documentation lives in docs/design/ with 62 documents covering architecture decisions, data models, and implementation plans for every subsystem. Key documents:
- ECS Core Architecture
- Visual Scripting Editor
- Multiplayer Runtime
- WASM Scripting Runtime
- Federation Protocol
- Portal System
- Archetype-based ECS with parallel queries
- Rapier3D physics integration
- Software renderer and interactive 3D demo
- Input handling with OpenXR integration
- Visual scripting editor (node graph + IR compiler)
- VR interaction physics (grab, throw, haptics)
- Avatar rendering pipeline (skinning, blend shapes, LOD)
- Anti-cheat server-side validation
- World chunk streaming system
- Portal system with cross-world navigation
- Server-side WASM runtime with hot-reload
- GPU-accelerated rendering (wgpu)
- Networked multiplayer prototype
- Visual script runtime execution
- Asset hot-reloading
- First public release
Contributions are welcome! Whether it's a bug report, feature request, or pull request — all forms of participation are appreciated.
Please see CONTRIBUTING.md for development setup, coding guidelines, and the PR process.
- Issues — GitHub Issues for bug reports and feature requests
- Discussions — GitHub Discussions for questions and ideas
Aether is licensed under the Apache License, Version 2.0.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you shall be licensed under Apache-2.0, without any additional terms or conditions.

