{"id":23401165,"url":"https://github.com/upf-gti/wgpuengine","last_synced_at":"2026-02-28T21:32:29.208Z","repository":{"id":161092085,"uuid":"635853877","full_name":"upf-gti/wgpuEngine","owner":"upf-gti","description":"C++ WebGPU based Multiplatform 3D Engine","archived":false,"fork":false,"pushed_at":"2026-01-15T16:38:13.000Z","size":6576,"stargazers_count":62,"open_issues_count":3,"forks_count":9,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-15T19:43:53.934Z","etag":null,"topics":["desktop","engine","graphics","openxr","upf-gti","vr","web","webgpu"],"latest_commit_sha":null,"homepage":"https://upf-gti.github.io/wgpuEngine/","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/upf-gti.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":"docs/support.html","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-03T15:38:01.000Z","updated_at":"2026-01-13T18:21:29.000Z","dependencies_parsed_at":"2024-10-28T15:51:02.315Z","dependency_job_id":"72627565-891c-440d-b644-7ac04f9afa7f","html_url":"https://github.com/upf-gti/wgpuEngine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/upf-gti/wgpuEngine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upf-gti%2FwgpuEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upf-gti%2FwgpuEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upf-gti%2FwgpuEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upf-gti%2FwgpuEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upf-gti","download_url":"https://codeload.github.com/upf-gti/wgpuEngine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upf-gti%2FwgpuEngine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29952272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T18:42:55.706Z","status":"ssl_error","status_checked_at":"2026-02-28T18:42:48.811Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["desktop","engine","graphics","openxr","upf-gti","vr","web","webgpu"],"created_at":"2024-12-22T11:14:40.469Z","updated_at":"2026-02-28T21:32:29.172Z","avatar_url":"https://github.com/upf-gti.png","language":"C++","readme":"# wgpuEngine\n\n`wgpuEngine` is an open-source cross-platform engine designed for creating desktop, XR (extended reality), and 3D web applications. Built on top of the newest graphics API  WebGPU, it provides a solution to render complex scenes, animations, and immersive experiences. \n\nIt uses Dawn, which provides WebGPU for desktop and web (via [emscripten](https://emscripten.org/)). We are still using a [forked version](https://github.com/blitz-research/dawn) until the official one adds XR support. For desktop XR it uses OpenXR. \n\n\u003e [!IMPORTANT]\n\u003e Web XR still not available until WebGPU and WebXR are integrated.\n\nThe documentation is still in progress, but you can find it [here](https://upf-gti.github.io/wgpuEngine/)!\nFor an example of how to use this engine, check out [Rooms](https://github.com/upf-gti/rooms)!\n\n## Features\n\n- Web export (Still no XR enabled)\n- Flat screen + Desktop VR Rendering Supported\n- Supported platforms:\n    - **Windows**\n    - **Web Chrome**\n    - **Mac OS**\n- Supported formats:\n    - **.obj** (using [tinyobjloader](https://github.com/tinyobjloader/tinyobjloader))\n    - **.gltf**/**.glb** (using [tinygltf](https://github.com/syoyo/tinygltf))\n    - **.ply** (using [happly](https://github.com/nmwsharp/happly))\n    - **.vdb** (using [easyVDB](https://github.com/victorubieto/easyVDB))\n- Rendering features:\n    - XR Rendering\n    - Physically Based Materials (PBR)\n    - HDR + IBL Lighting\n    - Instancing\n    - Gaussian Splatting Renderer\n- Scene node management\n- Support for Rigid and Skeletal animations\n- UI Features:\n    - 2D and 3D User Interface\n    - 3D Text Rendering\n    - 2D and 3D Gizmo ([ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo) for 2D)\n\n## Roadmap\n\n- Shadow mapping\n- Support deferred rendering\n- Android support\n- Physics integration\n- Following expected WebGPU-WebXR interoperability, support web XR applications\n\n## Quick start\n\n```c++\nint main()\n{\n    Engine* engine = new Engine();\n\n    Renderer* renderer = new Renderer();\n\n    if (engine-\u003einitialize(renderer)) {\n        return 1;\n    }\n\n    engine-\u003estart_loop();\n\n    engine-\u003eclean();\n\n    delete engine;\n\n    delete renderer;\n\n    return 0;\n}\n```\n\nTo start creating your application, override the `Engine` class! You can also override the Renderer class to customize the following optional render passes:\n\n- custom_pre_opaque_pass, custom_post_opaque_pass\n- custom_pre_transparent_pass, custom_post_transparent_pass\n- custom_pre_2d_pass, custom_post_2d_pass\n\n### Engine configuration\n\nCustomize engine parameters using `sEngineConfiguration` when calling `Engine::initialize`:\n\n```c++\nsEngineConfiguration engine_config = {\n    .window_title = \"Application\",\n    .fullscren = false\n};\n\nif (engine-\u003einitialize(renderer, engine_config)) {\n    return 1;\n}\n```\n\n### Renderer configuration\n\nCustomize also renderer parameters using `sRendererConfiguration` when instancing your renderer to modify WebGPU context parameters. E.g. required limits or features:\n\n```c++\nsRendererConfiguration render_config;\n\nrender_config.required_limits.limits.maxStorageBuffersPerShaderStage = 8;\nrender_config.required_limits.limits.maxComputeInvocationsPerWorkgroup = 1024;\n\nRenderer* renderer = new Renderer(render_config);\n```\n\n## How to build\n\nYou will need to install the following tools:\n\n- [Git](https://git-scm.com/)\n- [CMake](https://cmake.org/download/)\n- [Python](https://www.python.org/) (added to your PATH)\n\nand clone the Github repository, also initializing the submodules:\n\n```bash\ngit clone https://github.com/upf-gti/rooms.git\ngit submodule update --init --recursive\n```\n\n### Desktop\n\n```bash\nmkdir build\ncd build\ncmake ..\n```\n\n### Web\n\nDownload [emscripten](https://emscripten.org/) and follow the installation guide.\n\nOn Windows you may need to download [ninja](https://ninja-build.org/) and include the folder in your PATH environment variable, then:\n\n\n```bash\nmkdir build-web\ncd build-web\nemcmake cmake -DCMAKE_BUILD_TYPE=Release ..\ncmake --build .\n```\n\n## Support\n\nThis project is being developed with partial financial support of:\n\n|  MAX-R Project (HORIZON) | Wi-XR Project (PID2021-123995NB-I00) |\n| --- | --- |\n| ![logomaxr](./docs/images/logo_maxr_main_sRGB.png#gh-light-mode-only) ![logomaxr](./docs/images/logo_maxr_main_sRGB_light.png#gh-dark-mode-only) | ![miciu](./docs/images/miciu-cofinanciadoUE-aei.png) |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupf-gti%2Fwgpuengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupf-gti%2Fwgpuengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupf-gti%2Fwgpuengine/lists"}