{"id":29091203,"url":"https://github.com/alanesc2/3d-engine","last_synced_at":"2025-10-18T06:53:35.192Z","repository":{"id":299698604,"uuid":"1003916251","full_name":"Alanesc2/3D-Engine","owner":"Alanesc2","description":"A lightweight, modern C++ 3D engine built with OpenGL. Features a flexible rendering pipeline, efficient resource management, and a clean architecture.","archived":false,"fork":false,"pushed_at":"2025-06-17T20:50:44.000Z","size":126,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-28T06:05:53.050Z","etag":null,"topics":["3dengine","cplusplus"],"latest_commit_sha":null,"homepage":"","language":"C++","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/Alanesc2.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,"zenodo":null}},"created_at":"2025-06-17T20:45:47.000Z","updated_at":"2025-06-25T22:46:59.000Z","dependencies_parsed_at":"2025-06-17T21:40:53.345Z","dependency_job_id":"b400d7d3-5e25-40c9-96ff-00db852ef3a3","html_url":"https://github.com/Alanesc2/3D-Engine","commit_stats":null,"previous_names":["alanesc2/3dengine","alanesc2/3d-engine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Alanesc2/3D-Engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alanesc2%2F3D-Engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alanesc2%2F3D-Engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alanesc2%2F3D-Engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alanesc2%2F3D-Engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alanesc2","download_url":"https://codeload.github.com/Alanesc2/3D-Engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alanesc2%2F3D-Engine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262382732,"owners_count":23302296,"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":["3dengine","cplusplus"],"created_at":"2025-06-28T06:05:49.816Z","updated_at":"2025-10-18T06:53:29.911Z","avatar_url":"https://github.com/Alanesc2.png","language":"C++","readme":"# Simple 3D Engine\n\nA lightweight, modern 3D engine built with OpenGL, featuring a flexible rendering pipeline, efficient resource management, and a clean architecture. The engine provides core 3D graphics capabilities and includes example implementations showcasing its features.\n\n[Grass Field Demo]\n\u003cimg width=\"802\" alt=\"Screenshot 2025-06-17 at 1 34 20 PM\" src=\"https://github.com/user-attachments/assets/e12fd094-fcce-412a-a108-30605c2b03b3\" /\u003e\n\n[Basic Cube Rendering Demo]\n\u003cimg width=\"799\" alt=\"Screenshot 2025-06-17 at 1 35 08 PM\" src=\"https://github.com/user-attachments/assets/359531c3-bef8-413b-840a-3a0e373a899e\" /\u003e\n\n## Core Features\n\n- **Modern Rendering Pipeline**\n  - OpenGL 3.3+ based rendering\n  - Efficient shader management system\n  - Support for vertex and fragment shaders\n  - Texture and material system\n  - Instanced rendering support\n\n- **Math and Geometry**\n  - Vector and matrix operations\n  - Transform hierarchy\n  - Camera system with perspective/orthographic projections\n  - Collision detection\n\n- **Resource Management**\n  - Efficient mesh handling\n  - Shader program management\n  - Texture loading and management\n  - Memory-efficient resource pooling\n\n- **Scene Management**\n  - Entity component system\n  - Transform hierarchy\n  - Scene graph implementation\n  - Efficient object culling\n\n## Example Implementations\n\nThe engine includes several example implementations showcasing its capabilities:\n\n### Grass Field Demo\n- Procedural terrain generation using Perlin noise\n- 10,000+ instanced grass blades with wind simulation\n- Dynamic environment with moving sun and clouds\n- First-person camera with terrain collision\n\n### Basic Rendering Demo\n- Rotating cube with proper lighting\n- Basic shader implementation\n- Texture mapping\n- Camera controls\n\n## Requirements\n\n- C++17 or higher\n- OpenGL 3.3+\n- GLFW3\n- GLM\n- CMake 3.10+\n\n## Building\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/3Dengine.git\ncd 3Dengine\n```\n\n2. Create a build directory:\n```bash\nmkdir build\ncd build\n```\n\n3. Configure and build:\n```bash\ncmake ..\nmake\n```\n\n## Running the Examples\n\nAfter building, you can run the example implementations:\n\nGrass Field Demo:\n```bash\n./test_grass\n```\n\nBasic Rendering Demo:\n```bash\n./test_shader\n```\n\n## Project Structure\n\n```\n3Dengine/\n├── Engine/\n│   ├── Rendering/\n│   │   ├── Shaders/\n│   │   │   ├── basic.vert\n│   │   │   ├── basic.frag\n│   │   │   ├── cloud.vert\n│   │   │   └── cloud.frag\n│   │   └── Shader.h\n│   ├── Math/\n│   │   ├── Vector3.h\n│   │   └── Matrix4.h\n│   └── Mesh.h\n├── Examples/\n│   ├── test_grass.cpp\n│   └── test_shader.cpp\n├── CMakeLists.txt\n└── README.md\n```\n\n## Using the Engine\n\nThe engine is designed to be easily integrated into new projects. Here's a basic example of how to use it:\n\n```cpp\n#include \"Engine/Rendering/Shader.h\"\n#include \"Engine/Mesh.h\"\n\n// Create a shader program\nShader shader(\"path/to/vertex.shader\", \"path/to/fragment.shader\");\n\n// Create a mesh\nauto mesh = Mesh::createCube();\n\n// Main loop\nwhile (!window.shouldClose()) {\n    shader.use();\n    // Set uniforms and render\n    mesh.draw();\n}\n```\n\n## Future Improvements\n\n- [ ] Enhanced shader system with material support\n- [ ] Model loading system (OBJ, FBX)\n- [ ] Advanced lighting system (PBR)\n- [ ] Post-processing effects\n- [ ] Physics integration\n- [ ] Audio system\n- [ ] Networking capabilities\n- [ ] Editor tools\n- [ ] Documentation generation\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- OpenGL and GLFW for graphics rendering\n- GLM for mathematics\n- Perlin noise implementation for terrain generation \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanesc2%2F3d-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falanesc2%2F3d-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanesc2%2F3d-engine/lists"}