{"id":31755359,"url":"https://github.com/hilbertcube/3dgl-render-engine","last_synced_at":"2026-05-09T19:35:29.261Z","repository":{"id":279140700,"uuid":"937560155","full_name":"hilbertcube/3DGL-Render-Engine","owner":"hilbertcube","description":"A lightweight 3D rendering engine built with OpenGL, featuring a collection of convenient wrapper classes to simplify development.","archived":false,"fork":false,"pushed_at":"2025-09-23T09:08:49.000Z","size":11628,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-28T22:32:35.080Z","etag":null,"topics":["c","cmake","cpp","glad","glew","glfw3","glm","glut","low-level","opengl"],"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/hilbertcube.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-23T11:14:27.000Z","updated_at":"2025-09-23T09:30:35.000Z","dependencies_parsed_at":"2025-02-24T02:38:50.806Z","dependency_job_id":"2f358fbc-01c5-473c-9f88-0eeb6c387cf2","html_url":"https://github.com/hilbertcube/3DGL-Render-Engine","commit_stats":null,"previous_names":["continuum3416/opengl-project-setup","hilbertcube/opengl-object-rendering","continuum3416/opengl-object-rendering"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hilbertcube/3DGL-Render-Engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilbertcube%2F3DGL-Render-Engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilbertcube%2F3DGL-Render-Engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilbertcube%2F3DGL-Render-Engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilbertcube%2F3DGL-Render-Engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hilbertcube","download_url":"https://codeload.github.com/hilbertcube/3DGL-Render-Engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilbertcube%2F3DGL-Render-Engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32660364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["c","cmake","cpp","glad","glew","glfw3","glm","glut","low-level","opengl"],"created_at":"2025-10-09T18:46:53.964Z","updated_at":"2026-05-05T17:33:29.270Z","avatar_url":"https://github.com/hilbertcube.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3D Render Engine\n\n![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge\u0026logo=c\u0026logoColor=white)\n![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white)\n![OpenGL](https://img.shields.io/badge/OpenGL-%23FFFFFF.svg?style=for-the-badge\u0026logo=opengl)\n![CMake](https://img.shields.io/badge/CMake-%23008FBA.svg?style=for-the-badge\u0026logo=cmake\u0026logoColor=white)\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white)\n![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)\n![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white)\n\n[comment]: \u003c\u003e (Source: https://ileriayo.github.io/markdown-badges/)\n\n## Overview\n\n3D Object Renderer for common geometric shapes, including triangles, cubes, spheres, and torus (donut) with texture support. Built with OpenGL, a cross-platform, low-level API for rendering 2D and 3D vector graphics alongside CMake, GLFW, GLAD, glm, and fmt.\n\nMinimum Requirements:\n1. C++17\n2. C17\n3. [CMake](https://cmake.org/) 3.10\n\n### Preview:\n![Earth and Moon](media/render_engine.png \"Earth and Moon\")\n![Cube](media/cube.png \"Cube demo\")\n\n## Installations\n\n* [GLFW](https://www.glfw.org/download). There are two options: build from source using CMake or use prebuilt binaries.\n* [GLAD](https://glad.dav1d.de/). Select API \u003e gl \u003e Latest Version. The API version doesn't matter, as long as it is greater than the GLFW version you're using. After that, go to Profile \u003e Core, then press \"Generate\" and download the zip folder.\n* [GLM](https://github.com/g-truc/glm/tags). This is a header-only library, so linking is very straightforward.\n* [FMT](https://github.com/fmtlib/fmt). The easiest, and best way is to install with vcpkg and then link it with CMake.\n\n## Build\n\nCreate a `build` directory\n\n```bash\nmkdir build\ncd build\n```\n### Windows (MSVC)\n**Configure**, **build**, and **run** the project with **release** (recommended)\n\n```bash\ncmake --build .\\build\\ --config Release\n.\\build\\Release\\{file-name}\n```\n\nor with **debug**:\n\n```bash\ncmake --build .\\build\\ --config Debug\n.\\build\\Debug\\{file-name}\n```\n\n### Linux / macOS\n\nOn Linux and macOS, CMake does not use the --config flag in the same way. Instead, you specify the build type when configuring:\n\n```bash\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build\n./build/{file-name}\n```\n\n\nOr for Debug mode:\n\n```bash\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Debug\ncmake --build build\n./build/{file-name}\n```\n\n## Usage\n\n### Controls\n\n| Key / Input | Action           |\n|-------------|------------------|\n| **W**       | Move forward     |\n| **A**       | Move left        |\n| **S**       | Move backward    |\n| **D**       | Move right       |\n| **Mouse**   | Look around      |\n| **Esc**     | Close the window |\n\n\n## Read more: some libraries for OpenGL applications\n\n*Reference: https://github.com/eug/awesome-opengl*\n\n* [assimp](https://github.com/assimp/assimp) - Portable library to import 3D models in a uniform manner.\n* [Bullet](http://bulletphysics.org/wordpress) - It provides state of the art collision detection, soft body and rigid body dynamics.\n* [fltk](https://www.fltk.org/) - C++ Toolkit to generate UI widgets portably. [LGPLv2](https://www.fltk.org/COPYING.php)\n* [freeGLUT](http://freeglut.sourceforge.net) - Mature library that allows to create/manage windows containing OpenGL contexts.\n* [GLFW](http://www.glfw.org) - Modern library for creating/interact windows with OpenGL contexts.\n* [GLFM](https://github.com/brackeen/glfm) - Supplies an OpenGL ES context and input events for mobile devices and the web.\n* [glm](http://glm.g-truc.net/0.9.6/index.html) - Mathematics library for graphics software based on the GLSL specifications.\n* [Magnum](https://github.com/mosra/magnum) - It is a 2D/3D graphics engine for modern OpenGL.\n* [MathFu](http://google.github.io/mathfu/) - C++ math library developed primarily for games focused on simplicity and efficiency.\n* [Newton](http://newtondynamics.com/forum/newton.php) - It is a cross-platform life-like physics.\n* [OGLplus](http://oglplus.org) - Collection of libraries which implement an object-oriented facade over OpenGL.\n* [SDL](http://www.libsdl.org) - Designed to provide low level access to multimedia and graphics hardware.\n* [SFML](http://www.sfml-dev.org) - Simple interface to ease the development of games and multimedia applications.\n* [SOIL](http://www.lonesock.net/soil.html) - Tiny C library used primarily for uploading textures into OpenGL. (see [SOIL2](https://bitbucket.org/SpartanJ/soil2))\n* [Pangolin](https://github.com/stevenlovegrove/Pangolin) - Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.\n* [morphologica](https://github.com/ABRG-Models/morphologica) - OpenGL graphics engine for data visualization, especially of numerical simulations.\n* [raylib](https://github.com/raysan5/raylib) - A simple and easy-to-use library to enjoy videogames programming.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhilbertcube%2F3dgl-render-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhilbertcube%2F3dgl-render-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhilbertcube%2F3dgl-render-engine/lists"}