UWAL

Logo

🎨 Unopinionated WebGPU Abstraction Library 📚

View the Project on GitHub UstymUkhman/uwal

UWAL

UWAL

GitHub deployments NPM bundle size GitHub package.json version GitHub License

The goal of UWAL is to remove as much boilerplate as possible when working with the WebGPU APIs, while still providing a flexible interface with reasonable defaults for all configuration options.

Introduction

Installation

npm i uwal
# or
yarn add uwal
# or
pnpm add uwal
# or
bun add uwal

Diagram

flowchart TD
  GPU[WebGPU APIs]
  DEV[Device]
  APP[Your Appliation]

  BP[Base Pipeline]
  CP[Compute Pipeline]
  RP[Render Pipeline]
  BS[Base Stage]
  COMP[Computation]
  RNDR[Renderer]
  TEX[Texture]

  GPU  --> DEV
  DEV  --> BS
  DEV  --> TEX
  BS   --> COMP
  BS   --> RNDR
  COMP --> CP
  COMP --> APP
  BP   --> CP
  BP   --> RP
  CP   --> APP
  RP   --> APP
  RNDR --> RP
  RNDR --> APP

  TIME[GPUTiming] --> APP
  MATH[MathUtils] --> APP

  ND2[Node2D]
  GEO[Geometries]
  ND[Node]
  MAT[Materials]
  SHDS[Shaders]
  CAM[Camera]
  SHP[Shape]
  MESH[Mesh]
  SCN[Scene]
  TXT[MSDFText]

  CONST[Constants] --> APP
  COL[Color]       --> APP

  ND2  --> APP
  ND2  --> SCN
  ND2  --> CAM
  ND2  --> SHP
  MAT  --> SHP
  GEO  --> APP
  GEO  --> SHP
  GEO  --> MESH
  MAT  --> MESH
  ND   --> CAM
  ND   --> MESH
  ND   --> SCN
  ND   --> APP
  SHP  --> SCN
  MESH --> SCN
  CAM  --> APP
  CAM  --> SCN
  SHDS --> MAT
  SHDS --> TXT
  RP   --> APP
  TEX  --> APP
  SCN  --> APP
  SHP  --> APP
  MAT  --> APP
  TXT  --> APP
  SHDS --> APP

Examples

   
Basic Program Ripple Effect
Basic Program Ripple Effect
WebGPU Smallpt Pong Game
WebGPU Smallpt Pong Game

Lessons

Acknowledgements