{"id":17062152,"url":"https://github.com/recp/gkern","last_synced_at":"2025-08-24T14:40:08.052Z","repository":{"id":41555473,"uuid":"80915889","full_name":"recp/gkern","owner":"recp","description":"🎥 Graphics Kernel: flexible, highly configurable, extensible render engine (realtime + offline)","archived":false,"fork":false,"pushed_at":"2023-07-16T10:05:19.000Z","size":1261,"stargazers_count":98,"open_issues_count":7,"forks_count":11,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-10-15T10:49:16.844Z","etag":null,"topics":["3d","3d-graphics","c-render-engine","engine","glsl","graphics","graphics-engine","graphics-kernel","graphics-library","graphics-rendering","opengl","pbr","rendering","rendering-2d-graphics","rendering-3d-graphics","rendering-engine","rendering-kernel","shader","shadow-mapping","transparency"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/recp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["recp"],"patreon":"recp","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2017-02-04T11:46:04.000Z","updated_at":"2024-09-23T14:07:29.000Z","dependencies_parsed_at":"2024-02-17T03:31:11.796Z","dependency_job_id":"c30e4c3b-1bc4-48d0-80f9-e51d202b679b","html_url":"https://github.com/recp/gkern","commit_stats":null,"previous_names":["recp/gkern","recp/gk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2Fgkern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2Fgkern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2Fgkern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2Fgkern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/recp","download_url":"https://codeload.github.com/recp/gkern/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221675279,"owners_count":16861860,"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","3d-graphics","c-render-engine","engine","glsl","graphics","graphics-engine","graphics-kernel","graphics-library","graphics-rendering","opengl","pbr","rendering","rendering-2d-graphics","rendering-3d-graphics","rendering-engine","rendering-kernel","shader","shadow-mapping","transparency"],"created_at":"2024-10-14T10:49:19.300Z","updated_at":"2024-10-27T12:32:47.349Z","avatar_url":"https://github.com/recp.png","language":"C","readme":"# 🫧 gkern: Graphics Kernel\n\n`gkern` is a flexible, highly configurable, and extensible render engine. It's designed for both realtime and offline rendering, with a focus on robustness, performance, and ease of use. It is written in `C` so it is easy to use with other languages.\n\n📌 Currently the library renders using OpenGL. I'm trying to integrate with `Metal`, `Vulkan`, `DirectX`\n\nHISTORY: The main purpose was render [AssetKit](https://github.com/recp/assetkit) content. Then it became general purpose rendering and graphics library.\n\n# Features:\n- Similar scene data structure with COLLADA/glTF \n- Shader generator for common materials (phong, blinn, lambert, const) \n   - This generator also supports textures, shadowmaps ... all feeatures to render scene perfectly and fast\n- Shader manager (currently for common profile)\n- Transform caching\n- Uniform location caching\n- Built-in trackball\n- Multi-pass rendering \n- Rendering to Texture\n- Multiple Render Targets\n- Textures\n- State Manager / Caching\n- Frustum Culling\n- Configurable shadowmaps: Yes you can select which technique to use! More techniques may be supportted by time\n   - Basic/Simple Shadow Maps\n   - Cascaded Shadow Maps (PSSM)\n- Order Independent Transparency\n   - Weighted, Blended OIT\n   - Some other techniques aill also be supported natively\n- PBR materials\n   - Metallic-Roughness Workflow\n   - Specular-Glossiness Workflow\n- Simple animations\n- Skeletal animations\n- Morph animations\n- ... \n- and some built-in helpers for many common tasks and more by fetures time...\n\n# Todo\n- [ ] Real-Time Path Tracing\n- [ ] Order objects before rendering\n- [x] PBR\n- [x] Transparency\n- [ ] Occlusion Culling\n- [ ] Level of Detail for mesh\n- [ ] Multithread rendering\n- [ ] Instanced Rendering\n- [ ] Animations\n  - [x] Autoreserve animations\n  - [x] Play count...\n  - [x] Simple Animations\n  - [ ] Keyframe animations\n    - [x] Animate float/vec3/vec4\n    - [ ] Interpolations\n       - [x] STEP\n       - [x] LINEAR\n       - [x] CUBIC BEZIER SPLINE\n       - [ ] CUBIC HERMITE SPLINE\n       - [ ] B-SPLINE\n       - [ ] CARDINAL SPLINE\n  - [x] Skeletal animations (working on this)\n  - [x] Morph animations\n- [ ] ... \n \n# Screenshots\n\n![](DamagedHelmet_gltf.jpg)\n\n# Build \ntodo\n\n# Notes\n- This library is still unshaped, wait this until AssetKit finished. \n- After finished this AssetKit and library, I'll publish documentation and update README.\n- Also check [simple-collada-viewer](https://github.com/recp/simple-collada-viewer) repo to see an example to how to use this\n","funding_links":["https://github.com/sponsors/recp","https://patreon.com/recp"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecp%2Fgkern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frecp%2Fgkern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecp%2Fgkern/lists"}