{"id":23902535,"url":"https://github.com/adrianocleao/motley","last_synced_at":"2025-02-23T10:44:08.090Z","repository":{"id":262548149,"uuid":"887003287","full_name":"AdrianoCLeao/motley","owner":"AdrianoCLeao","description":"MOTLEY (Model Of Torque, Load, and Engine Yield) is a rust-based engine simulator. Offering real-time analysis of torque, load response, and engine yield, combined with sound simulations.","archived":false,"fork":false,"pushed_at":"2025-01-12T20:32:33.000Z","size":7598,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T21:20:15.224Z","etag":null,"topics":["3d-engine","engine","rust","simulation"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdrianoCLeao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-12T02:02:32.000Z","updated_at":"2025-01-12T20:32:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d05b874-0af2-4c9e-86f6-605f8ad996fc","html_url":"https://github.com/AdrianoCLeao/motley","commit_stats":null,"previous_names":["adrianocleao/motley"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianoCLeao%2Fmotley","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianoCLeao%2Fmotley/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianoCLeao%2Fmotley/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianoCLeao%2Fmotley/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdrianoCLeao","download_url":"https://codeload.github.com/AdrianoCLeao/motley/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240304566,"owners_count":19780312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-engine","engine","rust","simulation"],"created_at":"2025-01-04T22:48:21.306Z","updated_at":"2025-02-23T10:44:08.060Z","avatar_url":"https://github.com/AdrianoCLeao.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MOTLEY: Model Of Torque, Load, and Engine Yield\n\n## 1. Visão Geral do Projeto\nMOTLEY é um simulador de motores baseado em Rust que permite aos usuários carregar modelos 3D de motores e explorar sua dinâmica. Ele oferece análises em tempo real de torque, resposta à carga e rendimento do motor, combinadas com simulações sonoras. O projeto será open-source, visando robustez, performance e extensibilidade.\n\n## Estrutura de pastas\nA estrutura de pastas esperada do projeto é esta\n\nmotley/\n- `src/`: Contém o código-fonte principal do projeto em Rust.\n  - `src/main.rs`: Ponto de entrada da aplicação.\n  - `src/engine/`: Módulo central da engine.\n    - `src/engine/mod.rs`: Declaração do módulo.\n    - `src/engine/rendering.rs`: Lógica de renderização 3D.\n    - `src/engine/physics.rs`: Simulação de física (torque, carga).\n    - `src/engine/audio.rs`: Simulação de som.\n    - `src/engine/utils.rs`: Funções auxiliares.\n  - `src/gui/`: Interface gráfica do usuário.\n    - `src/gui/mod.rs`: Declaração do módulo.\n    - `src/gui/window.rs`: Janela principal da GUI.\n    - `src/gui/components.rs`: Componentes visuais.\n  - `src/models/`: Manipulação de modelos 3D.\n    - `src/models/mod.rs`: Declaração do módulo.\n    - `src/models/loader.rs`: Carregamento de modelos (OBJ, GLTF).\n    - `src/models/parser.rs`: Parsing e validação de modelos.\n    - `src/models/serializer.rs`: Exportação de resultados.\n  - `src/tests/`: Testes unitários e de integração.\n    - `src/tests/integration.rs`: Testes de integração.\n    - `src/tests/performance.rs`: Benchmarks de desempenho.\n    - `src/tests/unit/`: Testes unitários específicos.\n      - `src/tests/unit/physics.rs`: Testes para simulação física.\n      - `src/tests/unit/rendering.rs`: Testes para renderização.\n      - `src/tests/unit/audio.rs`: Testes para simulação de som.\n- `assets/`: Recursos do projeto.\n  - `assets/models/`: Modelos 3D de exemplo.\n  - `assets/textures/`: Texturas usadas nos modelos.\n  - `assets/audio/`: Sons de exemplo.\n  - `assets/shaders/`: Shaders usados na renderização.\n- `docs/`: Documentação do projeto.\n  - `docs/api/`: Documentação das APIs internas.\n  - `docs/user-guide.md`: Guia do usuário final.\n  - `docs/development.md`: Guia para desenvolvedores.\n- `examples/`: Exemplos de uso da engine.\n  - `examples/minimal.rs`: Exemplo básico.\n  - `examples/advanced.rs`: Exemplo avançado com física e som.\n  - `examples/custom_plugin.rs`: Exemplo de extensão com plugin.\n- `scripts/`: Scripts auxiliares.\n  - `scripts/build.sh`: Script de build.\n  - `scripts/run.sh`: Script para rodar o projeto.\n  - `scripts/test.sh`: Script para executar os testes.\n- `.github/`: Configurações para GitHub.\n  - `.github/workflows/`: Configurações do GitHub Actions.\n    - `.github/workflows/build.yml`: Pipeline de build.\n    - `.github/workflows/test.yml`: Pipeline de testes.\n  - `.github/ISSUE_TEMPLATE.md`: Modelo para issues.\n- `Cargo.toml`: Configuração do projeto e dependências.\n- `README.md`: Documentação inicial do projeto.\n- `LICENSE`: Licença do projeto.\n- `CONTRIBUTING.md`: Regras de contribuição para o projeto.\n- `.gitignore`: Arquivos a serem ignorados pelo Git.\n\n\n## 2. Documento de Requisitos\n\n### Funcionalidades Principais:\n1. **Renderização 3D:**\n   - Suporte a modelos 3D em formatos comuns (e.g., OBJ, GLTF, FBX).\n   - Iluminação básica e texturização.\n   - Visualização interativa com controles de câmera e zoom.\n\n2. **Simulação de Dinâmica:**\n   - Cálculo de torque e resposta à carga.\n   - Simulação de rendimento do motor com base em entrada de parâmetros físicos.\n   - Exportação de resultados em formato JSON/CSV.\n\n3. **Simulação de Som:**\n   - Geração de sons em tempo real com base na dinâmica do motor.\n   - Ajuste de parâmetros como RPM e carga para alterar os sons simulados.\n\n4. **Interface Gráfica do Usuário (GUI):**\n   - Interface intuitiva para carregar modelos e configurar simulações.\n   - Exibição de gráficos em tempo real para torque, carga e rendimento.\n\n5. **Extensibilidade:**\n   - Permitir que desenvolvedores adicionem novos cálculos e componentes via plugins.\n\n### Requisitos Não-Funcionais:\n- **Desempenho:** Processamento em tempo real para simulações dinâmicas.\n- **Portabilidade:** Suporte para Windows, macOS e Linux.\n- **Segurança:** Garantir estabilidade contra entradas malformadas.\n- **Escalabilidade:** Suporte para modelos 3D complexos sem comprometimento do desempenho.\n\n---\n\n## 3. Tecnologias Utilizadas\n\n### Linguagem:\n- **Rust:** Pela performance, segurança de memória e suporte a paralelismo.\n\n### Bibliotecas e Ferramentas:\n1. **Renderização 3D:**\n   - `wgpu` (para gráficos GPU-agnósticos).\n   - `nannou` (framework para visualizações interativas).\n\n2. **Física:**\n   - `rapier` (motor de física 2D/3D).\n\n3. **Simulação de Som:**\n   - `rodio` (biblioteca de áudio).\n\n4. **Interface Gráfica:**\n   - `egui` (para GUI leve e performática).\n\n5. **Conversão e Manipulação de Modelos 3D:**\n   - `assimp` (para importação de modelos 3D).\n\n6. **Exportação de Dados:**\n   - `serde` e `csv` (para serialização de dados).\n\n7. **Gerenciamento de Projetos:**\n   - `cargo` (gerenciador de pacotes e builds do Rust).\n\n8. **Testes e Benchmarking:**\n   - `criterion` (benchmarking).\n   - `mockall` (mocking para testes).\n\n---\n\n## 4. Planejamento e Cronograma\n\n### Mês 1: Configuração Inicial (30/01/2024)\n- Estruturar repositório GitHub com documentação inicial. ✅\n- Configurar ambiente de desenvolvimento.\n- Implementar um protótipo básico de renderização 3D usando `wgpu`.\n- Entregável: Protótipo de renderização de um modelo 3D simples.\n\n### Mês 2: Física Básica (30/02/2024)\n- Integrar a biblioteca `rapier` para simulação física.\n- Implementar cálculos básicos de torque e carga.\n- Entregável: Simulação física rudimentar com visualização gráfica.\n\n### Mês 3: Simulação de Som (30/03/2024)\n- Integrar a biblioteca `rodio` para geração de áudio.\n- Sincronizar sons com a dinâmica do motor.\n- Entregável: Protótipo de simulação sonora.\n\n### Mês 4: Interface Gráfica (30/04/2024)\n- Implementar GUI usando `egui`.\n- Adicionar controles para carregar modelos e configurar simulações.\n- Entregável: Interface básica funcional.\n\n### Mês 5: Análise e Exportação de Dados (30/05/2024)\n- Implementar geração de gráficos em tempo real (e.g., torque vs. tempo).\n- Adicionar suporte para exportação de dados.\n- Entregável: Gráficos e exportação de dados de simulação.\n\n### Mês 6: Estabilidade e Extensibilidade (30/06/2024)\n- Melhorar performance e otimizar o código.\n- Documentar APIs para extensões/plugins.\n- Entregável: Lançamento de uma versão beta com documentação completa.\n\n---\n\n## 5. Escopo Futuro\n- Suporte para VR e AR.\n- Simulações mais avançadas de dinâmica de fluidos.\n- Integração com frameworks de Machine Learning para análise preditiva.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianocleao%2Fmotley","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianocleao%2Fmotley","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianocleao%2Fmotley/lists"}