A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
Name | Stars | Last Commit | Description |
---|---|---|---|
three.js | JavaScript 3D library | ||
stack.gl | an open software ecosystem for WebGL, built on top of browserify and npm. | ||
PixiJS | Super fast HTML 5 2D rendering engine that uses webGL with canvas fallback | ||
Pex | Pex is a javascript 3d library / engine allowing for seamless development between Plask and WebGL in the browser. | ||
Babylon.js | a complete JavaScript framework for building 3D games with HTML 5 and WebGL | ||
Filament | Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS and WASM/WebGL | ||
ClayGL | A WebGL graphic library helping you to build scalable Web3D applications | ||
AwayJS | AwayJS is a graphics library for javascript written in typescript | ||
SceneJS | An extensible WebGL-based engine for high-detail 3D visualisation | ||
Blend4Web | a tool for interactive 3D visualization on the Internet | ||
PlayCanvas | JavaScript game engine built on WebGL and WebVR | ||
Turbulenz | Turbulenz is a modular 3D and 2D game framework for making HTML5 powered games for browsers, desktops and mobile devices. | ||
Hilo3d | a WebGL Rendering Engine. | ||
litescene | A WebGL 3D Engine library with component-based node hierarchy. Used by WebGLStudio. | ||
Two.js | A renderer agnostic two-dimensional drawing api for the web. | ||
webgl-operate | A TypeScript based WebGL rendering framework. | ||
Rhodonite | Rhodonite Web3D Library in TypeScript | ||
Zogra | A simple WebGL2 renderer. | ||
LayaAir | LayaAir is an open-source 2D/3D engine. LayaAir Engine is designed for high performance games. | ||
libGDX | Desktop/Android/HTML5/iOS Java game development framework. | ||
LittleJS | LittleJS is a HTML5 game engine with many features and no dependencies. | ||
Galacean Engine | A typescript interactive engine, support 2D, 3D, animation, physics, built on WebGL and glTF. |
Name | Stars | Last Commit | Description |
---|---|---|---|
dawn | Dawn, a WebGPU implementation | ||
wgpu | Safe and portable GPU abstraction in Rust, implementing WebGPU API. | ||
RedGPU | RedGPU - Javascript webGPU Engine | ||
sokol | 3D-API wrapper | ||
wgpu | Native WebGPU implementation based on gfx-hal | ||
dgel | A WebGPU engine. | ||
YUE | Personal WebGPU based 3D renderer. | ||
Simple-GPU | Functional WebGPU. | ||
Vello | An experimental GPU compute-centric 2D renderer. | ||
GWebGPUEngine | A WebGPU Engine for real-time rendering and GPGPU. | ||
Orillusion | Orillusion is a pure Web3D rendering engine which is fully developed based on the WebGPU standard. | ||
SWGPU | A complete, fast and fun web game engine with examples. | ||
XGPU | a higher-level, easy-to-use interface for building rendering engines or processing numeric data. | ||
webgpu-renderer | A simple renderer implemented by WebGPU, includes a builtin path tracing pipeline. | ||
points | A Generative Art library made in WebGPU | ||
WebGPU Raytracer | Realtime path tracing via WebGPU compute shaders | ||
WebGPU-Kit | A minimal webGPU toolkit for rendering and compute pipelines | ||
shadeup | A language for WebGPU that makes writing shaders easier | ||
Sundown Engine | WebGPU game engine for fun and games. | ||
Cobalt | WebGpu 2D renderer. | ||
C2-Renderer | A simple webgpu renderer implemented with javascript and svelte. | ||
roquefort | WebGPU fluid simulator. | ||
khudiiash/webgpu-renderer | WebGPU 3D Renderer (basic). |
Name | Stars | Last Commit | Description |
---|---|---|---|
regl | Fast functional WebGL | ||
lightgl.js | A lightweight WebGL library | ||
TWGL | A Tiny WebGL helper Library | ||
p5.js | a new interpretation of Processing, not an emulation or port. | ||
Four | a slightly higher level graphics API based on WebGL 1.0 | ||
TDL | TDL is a low-level library for WebGL apps (see TWGL) | ||
KickJS | A WebGL game engine for modern web-browsers | ||
nanogl | webgl micro framework | ||
Alfrid | A WebGL tool set | ||
Medium | Progressive WebGL toolkit for art | ||
PicoGL.js | A minimal WebGL 2-only rendering library | ||
O-GL | Minimal WebGL framework | ||
mini-webgl | Mini toy WebGL library | ||
phenomenon-px | The fastest way to create pixel shaders. | ||
zen-3d | JavaScript 3D library. | ||
GLOW | GLOW is a WebGL wrapper, which focuses on easy creation and use of shaders. | ||
Helix | A Javascript 3D engine. | ||
GrimoireJS | A WebGL framework for Web development. | ||
litegl.js | Lightweight Javascript WebGL library for handling Context, Meshes, Textures and Shaders. | ||
CraZyPG | lowlevel webgl2.0 library | ||
GLBoost | A Useful WebGL Library for Small Turning | ||
RedCube.js | WebGL2 rendering library. | ||
RedGL2 | RedGL - JavaScript 3D library | ||
gi-voxels | WebGL Voxel Cone Tracing | ||
artgl | TypeScript 3D framework. Building blocks & infrastructure for Web 3D application. | ||
Squareroot.js | A 2d/3d engine for WebGL and Canvas rendering and animation | ||
gl3 | webgl helper library | ||
wwg | Simple WebGL wrapper | ||
glTips | Useful, cherry-pickable, and CC0 (public domain like) licensed WebGL routine code snippets. | ||
dan-shari-gl | minimum webgl framework developed with TypeScript | ||
hwoa-rang-gl | Lightweight WebGL Library written in Typescript | ||
desenha | A barebones WebGL framework. | ||
Tmp3D | A 3-D software renderer written from scratch in nothing but JavaScript | ||
opusgl | A minimal rendering library. | ||
feng3d | TypeScript 3D engine built on WebGL. | ||
swissgl | SwissGL is a minimalistic wrapper on top of WebGL2 JS API. | ||
four | Minimal three.js alternative. | ||
glii | Object-oriented understandable WebGL. | ||
foam-gl | A WebGL toolkit. | ||
pocket-shader | A lightweight WebGL shader renderer. |
Name | Stars | Last Commit | Description |
---|---|---|---|
Snelly | A system for physically-based SDF (signed distance field) pathtracing in WebGL | ||
Ashes | WebGL2.0 3D Engine & ECS & RayTracing |
Name | Stars | Last Commit | Description |
---|---|---|---|
WhitestormJS | Super-fast 3D framework for Web Applications & Games. Based on Three.js | ||
Phaser | Phaser is a fast, free, and fun open source HTML5 game framework. It uses a custom build of Pixi.js. | ||
OSG.js | Javascript Implementation of OpenSceneGraph | ||
Ammo.js | Direct port of the Bullet physics engine to JavaScript using Emscripten | ||
gl-engine | an experimental ES6 WebGL engine built on stack.gl | ||
GLAM | glam (GL A nd M arkup) is a declarative language for creating 3D web content. | ||
potree | WebGL point cloud viewer for large datasets | ||
plotly.js | Built on top of d3.js and stack.gl, plotly.js is a high-level, declarative charting library. | ||
threeify | threeify is a Typescript 3D library loosely based on three.js. | ||
ROYGBIV | A 3D engine for the Web | ||
shree | lite three.js | ||
Taro | A lightweight 3D game engine for the web. | ||
Alien.js | Alien.js is a MVC design pattern for building single-page applications with ES modules and three.js, intended for developers who are interested in creating their own shaders. | ||
gpu-io | A GPU-accelerated computing library for physics simulations and other mathematical calculations | ||
enable3d | Standalone 3D Framework / Physics for three.js (using ammo.js) / 3D extension for Phaser 3 | ||
ThreePipe | A 3D viewer framework built on top of three.js with a focus on rendering, modularity and extensibility. | ||
Brainchop | In-browser 3D MRI rendering and segmentation. | ||
lgl-tracer | LGLTracer is a web ray tracing renderer, implemented as a plug-in library on top of Threejs. |
Name | Stars | Last Commit | Description |
---|---|---|---|
Mapbox GL JS | Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL. | ||
Deck.gl | WebGL based visualization layers | ||
LumaGL | A JavaScript WebGL Framework for Data Visualization | ||
Cesium | Open-source library for world-class 3D globes and maps. | ||
xeogl | A data-driven 3D visualization engine on WebGL | ||
PhiloGL | A WebGL Framework for Data Visualization, Creative Coding and Game Development | ||
MathBox | Presentation-quality WebGL math graphing | ||
VTK | Visualization Toolkit for the Web | ||
Apache ECharts | A powerful, interactive charting and data visualization library for browser | ||
Troika | A JavaScript framework for interactive 3D and 2D visualizations | ||
@antv/g | A powerful rendering engine for AntV implemented with Canvas2D / SVG / WebGL / WebGPU. |
Name | Stars | Last Commit | Description |
---|---|---|---|
A-Frame | A web framework for building virtual reality experiences. | ||
PlayCanvas | JavaScript game engine built on WebGL and WebVR |
Name | Stars | Last Commit | Description |
---|---|---|---|
GLAS | WebGL in WebAssembly with AssemblyScript | ||
WebRays | Ray Tracing on the Web | ||
mugl | Micro WebGL 2.0 3D Graphics Library for JavaScript and WebAssembly |
Name | Stars | Last Commit | Description |
---|---|---|---|
splat | WebGL 3D Gaussian Splat Viewer. | ||
gsplat.js | JavaScript Gaussian Splatting library. | ||
GaussianSplats3D | Three.js-based implementation of 3D Gaussian splatting. |
Name | Stars | Last Commit | Description |
---|---|---|---|
Bevy | A refreshingly simple data-driven game engine built in Rust. | ||
rafx | Multi-backend renderer built on top of distill. The objective of this repo is to build a scalable, flexible, data driven renderer. | ||
three-d | 2D/3D renderer - makes it simple to draw stuff across platforms (including web). | ||
wgpu-rust-renderer | A tiny WebGPU renderer written in Rust. | ||
contrast_renderer | Contrast is a WebGPU based 2D render engine written in Rust. |
What about Needle Engine ( https://needle.tools/ )? It is based on three.js and allows exporting out of Unity and Blender with Typescript support based on Unity's component system and live preview in the browser.