# Oxide Engine

![Oxide Engine](assets/oxide.png)

> **Notice:** This project was developed with the assistance of [Claude Code](https://claude.ai/code) (Anthropic's AI coding assistant).
> All generated code, configuration, and documentation has been reviewed and tested by the author.
> Claude Code was used as a development tool; all design decisions, requirements, and sign-offs are the author's own.

A general-purpose 3D game engine written in Rust, built for simulation, non-linear gameplay, and open world experiences.

---

## Features (planned — see [PLAN.md](PLAN.md))

- Scene graph and entity management (ECS-based)
- Skeletal animation system
- Rigid body physics (`rapier3d`)
- GPU-driven particle system
- Shader hot-reload and post-processing stack
- Ray-traced spatial sound (wave propagation, occlusion, reverb)
- Procedural generation (noise, heightmap terrain, biomes)
- Open world streaming (chunking, async asset loading, LOD)
- **In-engine editor** (`oxide-editor`) built alongside the engine

---

## Requirements

- Rust stable toolchain (`rustup` recommended)
- Linux (primary target; other platforms not yet tested)
- A GPU with Vulkan or Metal support (for `wgpu`)

Install Rust if you don't have it:

```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

---

## Building

```sh
cargo build --release
```

To build and run the editor directly:

```sh
cargo run -p oxide-editor --release
```

---

## Installing (Linux)

The `install.sh` script compiles the project and installs it to your system (`/usr/local`):

```sh
chmod +x install.sh
./install.sh
```

After installation the editor is available as:

```sh
oxide-editor
```

To uninstall:

```sh
sudo rm /usr/local/bin/oxide-editor
sudo rm -rf /usr/local/share/oxide
```

---

## Running tests

```sh
cargo test
```

Lint and format checks:

```sh
cargo clippy -- -D warnings
cargo fmt --check
```

---

## Project layout

```
Oxide/
├── assets/          # Project logos and shared assets
├── engine/          # Core engine library (oxide-engine)
├── editor/          # In-engine editor binary (oxide-editor)
├── examples/        # Runnable stage examples
├── tests/           # Integration test harness
├── install.sh       # Build + system install script
├── PLAN.md          # Staged development roadmap
└── CLAUDE.md        # Context and rules for Claude Code
```

---

## Development roadmap

Development follows a staged plan — each stage is fully tested before the next begins.
See [PLAN.md](PLAN.md) for the complete roadmap.

---

## License

MIT
