# ekzhang/graphics-workshop

Learn computer graphics by writing GPU shaders!

Repository: https://github.com/ekzhang/graphics-workshop
Canonical: https://ross.abutalabs.com/products/graphics-workshop
Homepage: https://github.com/ekzhang/graphics-workshop#readme
Language: GLSL
License: MIT
License Family: permissive
Topics: glsl, shaders, graphics, webgl, javascript, raytracing, rasterization, 2d, 3d
Last push: 2021-10-25T00:27:27+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 1969, "days_push": 1774, "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 2179, forks 211 (observed 2026-08-28T04:06:23.015899+00:00)

## What it is
A hands-on workshop for learning computer graphics by writing GLSL fragment shaders that render interactive 2D and 3D scenes in the browser via WebGL. It includes guided projects covering procedural patterns, rasterization, lighting, stylized rendering, and real-time ray tracing.

## Use cases
- learn computer graphics by writing gpu shaders
- practice writing glsl fragment shaders in the browser
- learn rasterization and lighting calculations hands-on
- implement a real-time ray tracer as a tutorial exercise
- generate procedural textures and 2d patterns with shaders
- teach a graphics workshop course with ready-made projects

## When to choose
- you want an interactive, browser-based way to learn shader programming
- you prefer guided projects over reading a graphics textbook
- you want to practice ray tracing and rasterization without installing native graphics tooling

## When to avoid
- you need a production graphics engine or rendering library
- you want to learn a native graphics API like Vulkan, OpenGL, or DirectX
- you need a maintained project with active development and recent updates

## Facets
- artifact type: learning-resource
- maturity: maintenance
- function: graphics, simulation, developer-tools
- domain: graphics, education, web-development, tutorials
- platform: browser
- tags: glsl, shaders, webgl, raytracing, rasterization, fragment-shaders, gpu, workshop, procedural-generation, nodejs, web-server, javascript

## Member repositories
- ekzhang/graphics-workshop (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:23.015899+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-30T02:48:46.022369+00:00, confidence not recorded.
  - readme: https://github.com/ekzhang/graphics-workshop (fetched 2026-08-28T04:06:23.015899+00:00, sha e4b925a7e70b)
  - homepage: https://github.com/ekzhang/graphics-workshop#readme (fetched 2026-08-29T10:28:38.672463+00:00, sha ea2fc58a24b3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
