# keith2018/SoftGLRender

Tiny C++ Software Renderer / Rasterizer, and implements OpenGL and Vulkan renderers for comparison

Repository: https://github.com/keith2018/SoftGLRender
Canonical: https://ross.abutalabs.com/products/softglrender
Language: C++
License: MIT
License Family: permissive
Topics: 3d-graphics, graphics, rasterization, renderer, rendering-pipeline, software-renderer, rendering, soft-renderer, pbr, rendering-engine, shader, opengl, 3d, computer-graphics, cpp, rasterizer, software-rendering, tutorial, spirv, vulkan
Last push: 2026-07-20T02:19:43+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 93, release rhythm 35, longevity 100
- inputs: {"age_days": 1573, "days_push": 45, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1149, forks 167 (observed 2026-08-28T04:03:46.424522+00:00)

## What it is
A tiny C++ software renderer/rasterizer that emulates the GPU rendering pipeline (vertex/fragment shading, rasterization, depth testing, blending) in software, alongside real OpenGL and Vulkan renderer implementations that can be switched at runtime. It is designed as an educational starting point for learning modern graphics programming, with a viewer supporting PBR/IBL shading, shadow mapping, and MSAA.

## Use cases
- learn how the GPU rendering pipeline works step by step
- implement a software rasterizer in C++ from scratch
- compare software rendering against OpenGL and Vulkan implementations
- study PBR and IBL shading with GLTF models
- understand texture mapping, mipmaps, and filtering modes
- explore SIMD and multithreaded rasterization optimization
- use as a tutorial codebase for computer graphics courses

## When to choose
- you want readable, small-scale source code to learn graphics pipeline internals
- you need a reference implementation comparing software, OpenGL, and Vulkan rendering side by side
- you are teaching or self-studying computer graphics concepts like rasterization, depth testing, and shader emulation

## When to avoid
- you need a production-grade, high-performance rendering engine for shipping applications
- you require a full-featured engine with asset pipelines, physics, or scene management
- you need GPU-accelerated rendering at scale rather than an educational implementation

## Facets
- artifact type: library
- maturity: active
- function: graphics, simulation, gui, developer-tools
- domain: graphics, computer-vision, developer-tools, tutorials
- platform: cpp, cross-platform
- tags: software-renderer, rasterizer, opengl, vulkan, pbr, spirv, gltf, imgui, rendering-pipeline, shader-emulation, msaa, simd, multithreading, learning-project, desktop, gpu

## Member repositories
- keith2018/SoftGLRender (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:46.424522+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:33:45.291147+00:00, confidence not recorded.
  - readme: https://github.com/keith2018/SoftGLRender (fetched 2026-08-28T04:03:46.424522+00:00, sha 7a89236afff7)
- Data as of 2026-08-30T08:39:29.467469+00:00.
