About this project

Pebble is a low-level application and graphics framework for Rust designed to provide essential primitives without imposing a specific rendering or simulation model. It is built upon hecs (ECS), wgpu (GPU API), and winit (windowing). Key features include: - **ECS Architecture**: Utilizes a system-based approach with defined stages (Startup, Ready, Update, Render, etc.) and resource management for singleton values. - **Plugin System**: The application is composed by chaining plugins, allowing for modular addition of windowing, GPU backends, and game logic. - **Flexible Asset Pipeline**: A unified CPU/GPU asset model that handles asynchronous uploads and dependency management. It supports generic meshes (via bytemuck::Pod), textures, and raw WGSL shaders for materials and compute passes. - **GPU Resource Builders**: Provides builders for Textures, Meshes, Materials, and Compute pipelines, allowing users to define their own vertex layouts and bind-group shapes. - **Async Integration**: Uses a Promise/Fulfiller pattern for non-blocking GPU operations, such as buffer readbacks and backend acquisition. - **Cross-Platform**: Supports both native execution and wasm32-unknown-unknown for web deployment. Unlike high-level engines, Pebble deliberately excludes built-in skeletal animation, model loaders, or collision systems, leaving the implementation of these game-specific systems to the developer.