docker-opengl - Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

  •        485

Minimal Docker container bundled with the Mesa 3D Gallium Drivers: LLVMpipe & OpenSWR, enabling OpenGL support inside a Docker container without the need for a GPU. I build this image primarily to extnend from for other projects, but below are some simple examples. This image is already loaded with a trivial entrypoint script.



Related Projects

fauxgl - Software-only 3D renderer written in Go.

  •    Go

3D software rendering in pure Go. No OpenGL, no C extensions, no nothin'.It's like OpenGL, but it's not. It's FauxGL.

globjects - C++ library strictly wrapping OpenGL objects.

  •    C++

globjects is a cross-platform C++ wrapper for OpenGL API objects. globjects provides object-oriented interfaces to the OpenGL API (3.0 and higher). It reduces the amount of OpenGL code required for rendering and facilitates coherent OpenGL use by means of an additional abstraction layer to glbinding and GLM. Common rendering tasks and processes are automated and missing features of specific OpenGL drivers are partially simulated or even emulated at run-time.

Pangolin - Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input

  •    C++

Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. At its heart is a simple OpenGl viewport manager which can help to modularise 3D visualisation without adding to its complexity, and offers an advanced but intuitive 3D navigation handler. Pangolin also provides a mechanism for manipulating program variables through config files and ui integration, and has a flexible real-time plotter for visualising graphical data. The ethos of Pangolin is to reduce the boilerplate code that normally gets written to visualise and interact with (typically image and 3D based) systems, without compromising performance. It also enables write-once code for a number of platforms, currently including Windows, Linux, OSX, Android and IOS.

DiligentEngine - Master repository for Diligent Engine project

  •    C++

Diligent Engine is a lightweight cross-platform abstraction layer between the application and the platform-specific graphics API designed to take advantages of next-generation APIs such as Direct3D12 and Vulkan, while providing support for older platforms via Direct3D11, OpenGL and OpenGLES. Diligent Engine exposes common front-end for all supported platforms and provides interoperability with underlying native API. Shader source code converter allows HLSL shaders to be used on all supported platforms and rendering backends. The engine is intended to be used as a graphics subsystem in a game engine or any other 3D application, and supports integration with Unity. Diligent Engine is distributed under Apache 2.0 license and is free to use. Alternatively, you can get master repository fisrt, and then individually clone all submodules into the engine's root folder.

tangram-es - 2D and 3D map renderer using OpenGL ES

  •    C++

Tangram ES is a C++ library for rendering 2D and 3D maps from vector data using OpenGL ES. It is a counterpart to Tangram. This repository contains both the core rendering library and sample applications that use the library on Android, iOS, macOS, Ubuntu, Windows, and Raspberry Pi.

tinyrenderer - A brief computer graphics / rendering course

  •    C++

Check the wiki for the detailed lessons. My source code is irrelevant. Read the wiki and implement your own renderer. Only when you suffer through all the tiny details you will learn what is going on. I do want to get emails for feedback (; do not hesitate to contact me if you have any questions.

veldrid - A low-level, portable graphics and compute library for .NET.

  •    CSharp

Veldrid is a cross-platform, graphics API-agnostic rendering and compute library for .NET. It provides a powerful, unified interface to a system's GPU and includes more advanced features than any other .NET library. Unlike other platform- or vendor-specific technologies, Veldrid can be used to create high-performance 3D applications that are truly portable. Veldrid uses the standard .NET Core tooling. Install the tools and build normally (dotnet build).

nanogui - Minimalistic GUI library for OpenGL

  •    C++

NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher. It supports automatic layout generation, stateful C++11 lambdas callbacks, a variety of useful widget types and Retina-capable rendering on Apple devices thanks to NanoVG by Mikko Mononen. Python bindings of all functionality are provided using pybind11. NanoGUI builds on GLFW for cross-platform OpenGL context creation and event handling, GLAD to use OpenGL 3.x or higher Windows, Eigen for basic vector types, and NanoVG to draw 2D primitives.

OpenGL-Examples - A collection of simple single file OpenGL examples

  •    C++

The purpose of thise example collection is to provide short and self contained code that showcases OpenGL api functionality/features. The examples have no dependencies on any custom framework or basecode except for "canonical" libraries such as glfw, gl3w and glm. All the examples are written against core profiles of version OpenGL version 3.3 or higher. Most of the examples try to show the targeted features in a relevant use case such as using Frame Buffer Objects for FXAA, Transform Feedback to update particles on the GPU or Occlusion Queries + Conditional Render to optimize rendering a Cube (Minecraftlike) Cave. At the same time the goal is to keep the examples short and simple enough to not lose the focus.

Glitter - Dead Simple OpenGL

  •    CMake

Glitter is a dead simple boilerplate for OpenGL, intended as a starting point for the tutorials on and Glitter compiles and statically links every required library, so you can jump right into doing what you probably want: how to get started with OpenGL. Glitter has a single dependency: cmake, which is used to generate platform-specific makefiles or project files. Start by cloning this repository, making sure to pass the --recursive flag to grab all the dependencies. If you forgot, then you can git submodule update --init instead.

herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs.

  •    C

Hic sunt dracones. This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on various platforms. The goal is to provide a comparison between multiple rendering methods. This is inherently biased due to the variety of algorithms used and available CPU/GPU configurations, but can hopefully still provide interesting insights on 3D rendering.

docker-compose-ui - web interface for Docker Compose

  •    Javascript

Docker Compose UI is a web interface for Docker Compose. The aim of this project is to provide a minimal HTTP API on top of Docker Compose while maintaining full interoperability with Docker Compose CLI.

datoviz - ⚡ High-performance GPU interactive scientific data visualization with Vulkan

  •    C

Datoviz is an open-source high-performance interactive scientific data visualization library leveraging the graphics processing unit (GPU) for speed, visual quality, and scalability. It supports both 2D and 3D rendering, as well as minimal graphical user interfaces (using the Dear ImGUI library). Written in C, Datoviz has been designed from the ground up for performance. It provides native Python bindings (based on Cython). Bindings to other languages could be developed thanks to community efforts (Julia, R, MATLAB, Rust, C#, and so on). Datoviz uses the Vulkan graphics API created by the Khronos consortium, successor of OpenGL. Supporting other modern graphics API, such as WebGPU, would constitute interesting developments.

filament - Filament is a real-time physically based rendering engine for Android, Windows, Linux and macOS

  •    C++

Filament is a real-time physically based rendering engine for Android, Linux, macOS and Windows. This rendering engine was designed to be as small as possible and as efficient as possible on Android. Filament is currently used in the Sceneform library both at runtime on Android devices and as the renderer inside the Android Studio plugin.

pyrender - Easy-to-use glTF 2.0-compliant OpenGL renderer for visualization of 3D scenes.

  •    Python

Pyrender is a pure Python (2.7, 3.4, 3.5, 3.6) library for physically-based rendering and visualization. It is designed to meet the glTF 2.0 specification from Khronos. Pyrender is lightweight, easy to install, and simple to use. It comes packaged with both an intuitive scene viewer and a headache-free offscreen renderer with support for GPU-accelerated rendering on headless servers, which makes it perfect for machine learning applications.

docker-cheat-sheet - Docker Cheat Sheet


"With Docker, developers can build any app in any language using any toolchain. “Dockerized” apps are completely portable and can run anywhere - colleagues’ OS X and Windows laptops, QA servers running Ubuntu in the cloud, and production data center VMs running Red Hat. Developers can get going quickly by starting with one of the 13,000+ apps available on Docker Hub. Docker manages and tracks changes and dependencies, making it easier for sysadmins to understand how the apps that developers build work. And with Docker Hub, developers can automate their build pipeline and share artifacts with collaborators through public or private repositories.

mix_docker - Put your Elixir app production release inside minimal docker image

  •    Elixir

and standard docker build. Put your Elixir app inside minimal Docker image. Based on alpine linux and distillery releases.

Desktop OpenGL ES


Desktop OpenGL ES is an OpenGL ES 1.1 to desktop OpenGL wrapper. dgles intends to ease development of software that uses OpenGL ES.

Doris - OpenGL scripting

  •    Lua

Doris is a Lua script driven OpenGL viewer with GUI widget extensions. Lua is a fast, powerful, portable scripting language. Lua bindings are provided to OpenGL, GLUT, GLUI (a GL widget library) and Luasocket (networking).


  •    C

GamePower 3D (GP3D) and GamePower 2D (GP2D) are a portable OpenGL/SDL wrapper using C/C++ designed specifically for professional game making in various platforms such as Windows, Linux and Macintosh by exploiting the portable capabilities of OpenGL and S