{"id":25473803,"url":"https://github.com/qbart/diye","last_synced_at":"2025-11-05T09:30:33.000Z","repository":{"id":275652989,"uuid":"868279598","full_name":"qbart/diye","owner":"qbart","description":"Opinionated toolkit for 3D-based applications and games","archived":false,"fork":false,"pushed_at":"2025-02-05T17:38:27.000Z","size":2518,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T17:08:10.848Z","etag":null,"topics":[],"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/qbart.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-10-06T00:25:02.000Z","updated_at":"2025-02-05T17:38:26.000Z","dependencies_parsed_at":"2025-02-03T21:35:17.324Z","dependency_job_id":null,"html_url":"https://github.com/qbart/diye","commit_stats":null,"previous_names":["qbart/diye"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbart%2Fdiye","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbart%2Fdiye/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbart%2Fdiye/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbart%2Fdiye/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qbart","download_url":"https://codeload.github.com/qbart/diye/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239453914,"owners_count":19641450,"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":[],"created_at":"2025-02-18T10:37:56.000Z","updated_at":"2025-02-18T10:37:56.425Z","avatar_url":"https://github.com/qbart.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DIYE\n\nDIY engine (DIYE for short) is a highly opinionated toolkit for 3D-based applications and games.\n\nIt's not meant to be a general-purpose engine, but rather a collection of mid-level abstractions that can give you a head start on your project\nwithout having to worry about the boilerplate code but still giving you the flexibility to customize it to your needs.\n\nIt's not a library so copy and paste the parts you need and modify them to your liking then throw away things you don't want.\nYou can even copy single file or function to your project if you like (link attribution is appreciated but not required).\n\n## Roadmap\n\nPlan for the next release:\n\n- [ ] Half-Edge data structure with simple set of operations\n- [ ] Vulkan Allocator\n- [ ] RenderDoc integration\n- [x] OSX compilation without errors\n\n## Screenshots\n\n### OBJ Loader and rotation gizmo\n\n![Screenshot](.github/docs/viking_scene.png)\n\n### Debug primitives renderer\n\n![Screenshot](.github/docs/debug.png)\n\n### ImGui integration\n\n![Screenshot](.github/docs/imgui.png)\n\n### Animation Curve with Editor\n\nWatch video [here](.github/docs/curve.mp4)\n\n![Screenshot](.github/docs/curve.png)\n\n## Development\n\nMake sure to go through the setup steps before starting development.\n\nConsider installing everything to `C:\\\\sdk`.\n\nUseful links:\n- https://cmake.org/download/\n- https://learn.microsoft.com/en-gb/vcpkg/get_started/get-started?pivots=shell-cmd\n- https://vulkan-tutorial.com/Development_environment\n- https://github.com/ninja-build/ninja/releases\n\nAdd to user env `PATH`:\n\n- C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\bin\\Hostx64\\x64\n- C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\n- C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja\n- C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\n\nSet `CXX` to:\n- C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\bin\\Hostx64\\x64\\cl.exe\n\n## Setup\n\nInit CMake:\n\n```\ncmake --preset debug .\n``` \n\nCopy assets to build directory and download modified viking model from https://vulkan-tutorial.com/Loading_models.\n\n## Dependencies\n\nLibraries:\n\n- Vulkan\n- ImGui\n- ImGuizmo\n- SDL2\n- SDL2_image\n- GLEW\n- fmt\n- GLM\n- TinyOBJLoader\n- imdd\n\nStack:\n- C++17\n- GLSL\n- CMake\n- vcpkg\n- ninja (optional for shader compilation)\n\n## Timeline\n\nReleases:\n- 2025.Q1: Initial release with basic rendering, UI, camera, debug primitives renderer, input and OBJ loader\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbart%2Fdiye","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqbart%2Fdiye","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbart%2Fdiye/lists"}