Crate qsi

Crate qsi 

Source
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§

pub use cgmath;
pub use wgpu;
pub use winit;

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 context method for Result.

Type Aliases§

Result
Result<T, Error>
StartupSystem
Startup system function type
UpdateSystem
Update system function type