{"id":21354735,"url":"https://github.com/iveevi/kobra","last_synced_at":"2025-07-12T22:32:09.792Z","repository":{"id":40239428,"uuid":"407718868","full_name":"iveevi/kobra","owner":"iveevi","description":"Research oriented game engine exploring state of the art rendering techniques","archived":false,"fork":false,"pushed_at":"2023-06-16T05:50:14.000Z","size":230816,"stargazers_count":20,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"development","last_synced_at":"2024-01-25T23:53:47.000Z","etag":null,"topics":["game-development","game-engine","game-engine-3d","gamedev"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iveevi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-09-18T01:03:12.000Z","updated_at":"2024-01-25T23:53:52.097Z","dependencies_parsed_at":"2024-01-26T00:03:59.383Z","dependency_job_id":null,"html_url":"https://github.com/iveevi/kobra","commit_stats":null,"previous_names":["iveevi/kobra"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iveevi%2Fkobra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iveevi%2Fkobra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iveevi%2Fkobra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iveevi%2Fkobra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iveevi","download_url":"https://codeload.github.com/iveevi/kobra/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225839600,"owners_count":17532307,"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":["game-development","game-engine","game-engine-3d","gamedev"],"created_at":"2024-11-22T04:14:26.449Z","updated_at":"2024-11-22T04:14:27.181Z","avatar_url":"https://github.com/iveevi.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](kobra_logo.svg)\n\n# Kobra\n\nKobra is a 3D rendering engine written in C++ using the Vulkan API. It is\ndesigned with research development in mind, so that more time can be spent\ntowards experimentation rather than implementation. This project is still in\nprogress.\n\n## Current Features\n\nKobra targets physically-based path-tracing pipelines. Currently, only\npath-tracing with OptiX/CUDA is supported (see the **Upcoming** section\nfor platforms that will be supported in the future).\n\nHowever, Kobra provides other facilities that enables convenient development of\nrendering applications, such as rasterization (with customizable shader\nprograms) and UI rendering (currently built directly off of ImGui).\n\nThese facilities can be accessed as *layers*; for example, `ForwardRenderer`,\n`UI`, and `Denoiser` are layers which perform computations related to forward\nrendering, UI rendering, and image denoising. Multiple layers can be\nsequentially dispatched in the same command buffer. The documentation for such\noperations are still in development.\n\nFurthermore, Kobra provides an (basic) interface for editing scenes and\nrendering, shown below:\n\n![](media/editor.png)\n\nNote that this is not final by any means, and any suggestions for improving this\ninterface are welcome.\n\nScenes are currently specified with a file describing components in\nthe entity-component system; see `scenes/` for examples. The file specification\nfor scenes is not fixed, and still being developed.\n\n### Layers\n\nThe following list includes the currently available layers.\n\n- `MeshMemory`: manages mesh memory, which is often shared across other layers\n- `ForwardRenderer`: performs forward rendering, with customizable `ShaderProgram`s\n- `UI`: does UI rendering, by attaching user-defined `ImGuiAttachment` objects\n- `Denoiser`: denoises input images\n- `Framer`: renders a plain image to the swapchain; useful for raytracing, where\n  the image is generated outside of Vulkan\n- `System`: manages raytracing buffers and acceleration structures for a given\n  scene\n- `ArmadaRTX`: performs raytracing of arbitrary programs; the functionality of\n  the RTX kernels can be programmed via `AttachmentRTX` objects -- see\n  `path_tracer.cuh` and `restir.cuh` in the `include/armada/` directory for\n  examples\n\n## Renders\n\nThe following are example renders generated from Kobra's OptiX path tracer (+AI\ndenoising).\n\n### Bathroom [1]\n![](media/bathroom.png)\n\n### Breakfast Room [1]\n![](media/breakfast-room.png)\n\n### Fireplace [1]\n![](media/fireplace.png)\n\n### Kitchen [2]\n![](media/kitchen.png)\n\n### Living Room [1]\n![](media/living-room.png)\n\n### San Miguel [1]\n![](media/san-miguel.png)\n\n### Sibenik [1]\n![](media/sibenik.png)\n\n[1] [McGuire Computer Graphics Archive](https://casual-effects.com/data/)\n\n[2] [Rendering Resources](https://benedikt-bitterli.me/resources/)\n\n# Upcoming\n\n- [ ] Revive the GLSL path tracer (using RadeonRays as backend)\n- [ ] VulkanRTX port\n- [ ] Implement an applet for presenting image difference with various metrics\n  (e.g. MAPE, FLIP)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiveevi%2Fkobra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiveevi%2Fkobra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiveevi%2Fkobra/lists"}