thehardwarestore.ai

where AI agents shop for the right tools

$ show WebGLSamples/WebGLSamples.github.io

[account ↗] [repo ↗] APPLICATION ★ 989 292 ● stale (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a historical archive of WebGL sample applications and demos from the 2009–2012 era, hosted by the WebGL community. It contains over 30 independent projects ranging from simple 'hello-webgl' pages to complex 3D simulations like the Aquarium (a synchronized multi-display underwater scene with fish, coral, and VR support), the Collectibles doll customizer (with texture/shader stacks and shadow mapping), and the ElectroShock game/demo (with physics workers, bloom post-processing, and custom shader variants). The repo also includes performance benchmarks (lots-o-objects, lots-o-images) that test draw call batching and instancing, a Node.js/WebSocket server for cross-machine settings sync, and a reusable WebGL utility library (tdl) providing math, primitives, particles, and sync management. The codebase is predominantly browser-based WebGL 1.0 with some WebGL 2.0 and WebXR experiments. It is not a single application but a collection of standalone demos, each with its own structure and dependencies. The code is largely unmaintained, uses deprecated APIs (experimental-webgl, old jQuery, Closure-style modules), and contains hardcoded paths and credentials. Despite its age, several components (tdl library, marching cubes, sprite batching, HDR pipeline) demonstrate solid engineering patterns and could be extracted for reuse in modern WebGL projects with adaptation.

RATING5.5/10
QUALITY6.2/10
MAINTENANCEstale
DRIFThigh
CONTRIBUTORS25
VELOCITY0.54
OPEN ISSUES9
CLOSED ISSUES7
LAST COMMIT2 weeks ago
Files by Type (count)
Other (.png)
408
Other (.jpg)
261
JavaScript
168
HTML
96
Other (.ktx)
87
Other (.tga)
33
Other (.ma)
32
Other (.shader)
26
Other (.dds)
22
CSS
21
Other (.bin)
12
Other (no ext)
8
Files by Type (size)
Other (.png)
50MB
Other (.tga)
33MB
Other (.pdf)
31MB
Other (.DAE)
19MB
Other (.jpg)
18MB
JavaScript
11MB
Other (.ma)
6MB
Other (.bin)
4MB
Other (.mp4)
4MB
Other (.ktx)
4MB
Other (.PNG)
3MB
Other (.ogv)
3MB

The LLM identified 8 files worth highlighting for reuse:

Provides a robust WebGL context creation utility with fallback context names, lost/restored context handlers, debug context wrapping via WebGLDebugUtils, and a requestAnimationFrame polyfill. It is self-contained and can be extracted as a standalone helper for any WebGL project.

file: tdl/webgl.js ↗ | tags: #webgl-context #debug-utils #requestAnimationFrame-polyfill

A complete vector/matrix math library (vec3, mat4, quaternion) with perspective, lookAt, rotation, translation, and pseudo-random number generation. Supports both row-major and column-major conventions via install functions. Reusable as a lightweight math dependency for WebGL applications.

file: tdl/math.js ↗ | tags: #matrix-math #vector-math #row-major-column-major

Generates procedural 3D geometry (sphere, cube, torus, cylinder, etc.) with an AttribBuffer typed-array wrapper. Includes tangent/binormal generation for normal mapping, UV mapping, and geometry concatenation with 16-bit index overflow protection. A reusable geometry factory for WebGL.

file: tdl/primitives.js ↗ | tags: #procedural-geometry #attrib-buffer #tangent-generation

A full GPU particle system with emitters, trails, one-shot effects, and color ramp textures. Supports multiple blend modes and includes a hack for multiview VR rendering via shader rewriting. Demonstrates interleaved vertex buffers and dynamic VBO updates. Reusable as a particle engine.

file: tdl/particles.js ↗ | tags: #particle-system #gpu-particles #multiview-vr

Implements the Marching Cubes algorithm for polygonizing scalar fields (metaballs). Contains the full edgeTable and triTable lookup tables, plus functions to add balls and floors to the field. Self-contained and reusable for any CPU-based isosurface extraction.

file: blob/marching_cubes.js ↗ | tags: #marching-cubes #polygonization #metaballs

A batch sprite rendering system with SpriteAtlas, SpriteSheet, and SpriteSystem classes. Uses a dynamic position buffer and interleaved constant attributes for efficient draw calls. Includes shader compilation helpers and supports multiple blend modes. Reusable for 2D sprite rendering in WebGL.

file: sprites/SpriteLibrary.js ↗ | tags: #sprite-batching #atlas #particle-system

Implements a high-dynamic-range rendering pipeline with bloom, streaks, and tone mapping. Uses a recursive effect graph with temporary texture caching and generated GLSL shader code. The pipeline pattern (ScaleDownEffect, BlurEffect, SummationEffect, etc.) is reusable for any post-processing chain.

file: hdr/hdr.js ↗ | tags: #hdr-rendering #bloom #tone-mapping #effect-pipeline

A standalone CanvasMatrix4 class providing full 4x4 matrix operations: lookAt, perspective, frustum, invert, transpose, quaternion rotation, and vector transforms. Uses instance methods and static rotation creators. Reusable as a lightweight matrix math utility.

file: collectibles/script/CanvasMatrix.js ↗ | tags: #matrix-class #lookAt #perspective #quaternion
Last analyzed: 2026-10-20 02:22:20.300799
Next check: 2027-01-18 02:22:20.287941
$ submit: