Expand description
§QSi
A lightweight, transparent 3D simulation library with ECS architecture. Built on wgpu and winit for cross-platform 3D graphics.
§Philosophy
- Lightweight: Minimal dependencies, easy to understand
- Transparent: You can see and modify everything
- Flexible: ECS architecture allows for custom components and systems
- Educational: Simple enough to understand completely
§Basic Usage
use qsi::prelude::*;
fn main() -> anyhow::Result<()> {
App::new()
.with_title("My App")
.add_startup_system(setup_scene)
.add_system(update_system)
.run()
}
fn setup_scene(world: &mut World, renderer: &mut Renderer) {
world.spawn()
.with(Transform::default())
.with(Camera::default());
}
fn update_system(world: &mut World, input: &InputState, time: &TimeState) {
// Your update logic here
}Re-exports§
Modules§
- camera
- Camera component and controller for 3D rendering
- ecs
- Entity Component System implementation
- graphics
- Graphics rendering system built on wgpu
- input
- Input handling system for keyboard and mouse events
- math
- Math utilities and components
- prelude
- Prelude module that exports the most commonly used types and traits.
- time
- Time management for frame timing and game loops
Structs§
- App
- Main application struct that ties everything together
Traits§
- Context
- Provides the
contextmethod forResult.
Type Aliases§
- Result
Result<T, Error>- Startup
System - Startup system function type
- Update
System - Update system function type