| Crates.io | haggis |
| lib.rs | haggis |
| version | 0.1.5 |
| created_at | 2025-07-23 08:23:10.620914+00 |
| updated_at | 2025-07-23 19:00:40.76732+00 |
| description | A 3D rendering and simulation engine built in Rust using wgpu for graphics rendering and winit for windowing, supporting both CPU and GPU-based simulations with real-time visualization |
| homepage | https://github.com/ejb004/haggis |
| repository | https://github.com/ejb004/haggis |
| max_upload_size | |
| id | 1764484 |
| size | 908,097 |
A general-purpose GPU compute and render engine for simulation visualizations built in Rust.
Haggis provides a high-level API for creating real-time 3D simulations with GPU acceleration, featuring both CPU and GPU compute capabilities, modern PBR rendering, and interactive visualizations.

Add haggis to your Cargo.toml:
[dependencies]
haggis = "0.1.5"
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create the application
let mut app = haggis::default();
// Add a 3D object
app.add_object("src/monkey.obj")
.with_material("gold")
.with_transform([0.0, 0.0, 0.0], 1.0, 0.0);
// Create materials
app.app_state
.scene
.add_material_rgb("gold", 1.0, 0.84, 0.0, 1.0, 0.5);
// Run the application
app.run();
Ok(())
}
cargo run --example test - Basic 3D object loading and renderingcargo run --example conways_game_of_life - GPU-accelerated Conway's Game of Lifecargo run --example conways_game_of_life_cpu - CPU implementation for comparisoncargo run --example three_body - N-body gravitational simulationcargo run --example quickstart - Comprehensive getting started guideexamples/simulation_usage/high_level/examples/simulation_usage/low_level/
Zoom - Mouse or trackpad scrollOrbit - Click and dragPan - Shift + Click and dragHaggisApp: Main application entry point with simple builder APIScene: 3D scene management with objects, materials, and cameraSimulation: Trait for implementing custom simulations (CPU/GPU)CutPlane2D: 2D data visualization component with filtering optionsMaterialManager: PBR material system with metallic/roughness workflowHaggis uses a Z-up coordinate system:
This matches industry standards and provides intuitive 3D object placement.
git clone https://github.com/ejb004/haggis.git
cd haggis
cargo build --release
# Basic 3D rendering
cargo run --example test
# Conway's Game of Life (GPU)
cargo run --example conways_game_of_life
# Three-body simulation
cargo run --example three_body
cargo fmt
cargo clippy
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
cargo fmt)cargo test)This project is licensed under the MIT License - see the LICENSE file for details.
Haggis - Because every good simulation needs a bit of Scottish engineering đ´ó §ó ˘ó łó Łó ´ó ż