Sobre o projeto

Pebble é um framework de aplicações e gráficos de baixo nível para Rust, projetado para fornecer primitivas essenciais sem impor um modelo específico de renderização ou simulação. Ele é construído sobre hecs (ECS), wgpu (GPU API) e winit (windowing). Os principais recursos incluem: - **Arquitetura ECS**: Utiliza uma abordagem baseada em sistemas com estágios definidos (Startup, Ready, Update, Render, etc.) e gerenciamento de recursos para valores singleton. - **Sistema de Plugins**: A aplicação é composta pelo encadeamento de plugins, permitindo a adição modular de windowing, backends de GPU e lógica de jogo. - **Pipeline de Assets Flexível**: Um modelo de asset unificado de CPU/GPU que lida com uploads assíncronos e gerenciamento de dependências. Suporta meshes genéricas (via bytemuck::Pod), texturas e shaders WGSL brutos para materiais e passes de computação. - **Builders de Recursos de GPU**: Fornece builders para Textures, Meshes, Materials e pipelines de Compute, permitindo que os usuários definam seus próprios layouts de vértice e formas de bind-group. - **Integração Async**: Utiliza um padrão Promise/Fulfiller para operações de GPU não bloqueantes, como readbacks de buffer e aquisição de backend. - **Multiplataforma**: Suporta execução nativa e wasm32-unknown-unknown para implantação na web. Ao contrário de engines de alto nível, o Pebble exclui deliberadamente animação esquelética integrada, carregadores de modelos ou sistemas de colisão, deixando a implementação desses sistemas específicos de jogo para o desenvolvedor.