6.9.42 • Published 6 months ago

@thi.ng/webgl v6.9.42

Weekly downloads
106
License
Apache-2.0
Repository
github
Last release
6 months ago

webgl

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

WebGL & GLSL abstraction layer.

Largely declarative WebGL 1.0 / 2.0 abstraction layer, partially ported & updated from Clojure/ClojureScript versions of thi.ng/geom.

Features

  • Extensive set of WebGL related types & interfaces
  • Declarative shader definition
    • option to fully define shaders in TypeScript and transpile to GLSL (via @thi.ng/shader-ast)
    • attribute, varying, uniform & output type declarations via a simple config object
    • GLSL code generation of data type declarations
    • automatic support for GLSL ES 1.0 & 3.0
    • optional layout attrib layout support for GLES 3 (WebGL2)
    • automatic & typed uniform setters
    • pre-declared desired GL draw state flags / settings
    • customizable shader presets
  • Declarative geometry, attribute & index buffer specs
  • Declarative instancing (always available in WebGL2, or via ANGLE ext in WebGL1)
  • Texture wrapper, declarative config
  • Comprehensive texture format info (channels, strides, renderable, filterable etc.)
  • FBO support with multiple attachments & render buffers
  • Multi-pass shader pipeline (e.g. for GPGPU tasks)
  • Pixel reading from main color buffer and textures
  • Geometry & texture generators
  • WebGL extension helpers & semi-automatic extension enabling
  • WebGL canvas creation / setup

Status

STABLE - used in production

Search or submit any issues for this package

Support packages

Related packages

  • @thi.ng/ecs - Entity Component System based around typed arrays & sparse sets
  • @thi.ng/geom - Functional, polymorphic API for 2D geometry types & SVG generation
  • @thi.ng/imgui - Immediate mode GUI with flexible state handling & data only shape output
  • @thi.ng/matrices - Matrix & quaternion operations for 2D/3D geometry processing
  • @thi.ng/shader-ast - DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets
  • @thi.ng/soa - SOA & AOS memory mapped structured views with optional & extensible serialization
  • @thi.ng/vectors - Optimized 2d/3d/4d and arbitrary length vector operations
  • @thi.ng/vector-pools - Data structures for managing & working with strided, memory mapped vectors

Installation

yarn add @thi.ng/webgl

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/webgl"></script>

Skypack documentation

For Node.js REPL:

# with flag only for < v16
node --experimental-repl-await

> const webgl = await import("@thi.ng/webgl");

Package sizes (gzipped, pre-treeshake): ESM: 12.14 KB

Dependencies

Usage examples

Several demos in this repo's /examples directory are using this package.

A selection:

ScreenshotDescriptionLive demoSource
Evolutionary shader generation using genetic programmingDemoSource
HOF shader procedural noise function compositionDemoSource
WebGL & JS canvas2D raymarch shader cross-compilationDemoSource
WebGL & JS canvas 2D SDFDemoSource
WebGL & Canvas2D textured tunnel shaderDemoSource
Minimal shader graph developed during livestream #2DemoSource
Entity Component System w/ 100k 3D particlesDemoSource
WebGL multi-colored cube meshDemoSource
WebGL cube maps with async texture loadingDemoSource
WebGL instancing, animated gridDemoSource
WebGL MSDF text rendering & particle systemDemoSource
Minimal multi-pass / GPGPU exampleDemoSource
Shadertoy-like WebGL setupDemoSource
WebGL screenspace ambient occlusionDemoSource

API

Generated API docs

TODO

Authors

Maintainer

Contributors

If this project contributes to an academic publication, please cite it as:

@misc{thing-webgl,
  title = "@thi.ng/webgl",
  author = "Karsten Schmidt and others",
  note = "https://thi.ng/webgl",
  year = 2014
}

License

© 2014 - 2021 Karsten Schmidt // Apache Software License 2.0

6.9.42

6 months ago

6.9.41

6 months ago

6.9.40

6 months ago

6.9.39

6 months ago

6.9.38

7 months ago

6.9.37

7 months ago

6.9.36

7 months ago

6.9.35

7 months ago

6.9.34

7 months ago

6.9.33

7 months ago

6.9.32

8 months ago

6.9.31

8 months ago

6.9.30

8 months ago

6.9.29

8 months ago

6.9.28

8 months ago

6.9.27

9 months ago

6.9.26

9 months ago

6.9.25

10 months ago

6.9.24

10 months ago

6.9.23

10 months ago

6.9.22

10 months ago

6.9.21

11 months ago

6.9.0

1 year ago

6.9.2

1 year ago

6.9.1

1 year ago

6.9.4

1 year ago

6.9.3

1 year ago

6.9.6

1 year ago

6.9.5

1 year ago

6.9.8

1 year ago

6.9.7

1 year ago

6.9.9

1 year ago

6.9.19

11 months ago

6.9.18

11 months ago

6.9.17

12 months ago

6.9.16

12 months ago

6.9.15

12 months ago

6.9.14

1 year ago

6.9.13

1 year ago

6.9.12

1 year ago

6.9.11

1 year ago

6.9.10

1 year ago

6.9.20

11 months ago

6.8.15

1 year ago

6.8.14

1 year ago

6.8.13

1 year ago

6.8.12

1 year ago

6.8.11

1 year ago

6.8.10

1 year ago

6.8.9

1 year ago

6.8.8

1 year ago

6.8.7

1 year ago

6.8.6

1 year ago

6.8.5

1 year ago

6.8.4

1 year ago

6.8.3

1 year ago

6.8.2

1 year ago

6.8.1

1 year ago

6.8.0

1 year ago

6.7.1

1 year ago

6.7.0

1 year ago

6.6.36

2 years ago

6.6.35

2 years ago

6.6.34

2 years ago

6.6.33

2 years ago

6.6.31

2 years ago

6.6.32

2 years ago

6.6.29

2 years ago

6.6.30

2 years ago

6.6.28

2 years ago

6.6.27

2 years ago

6.6.26

2 years ago

6.6.22

2 years ago

6.6.23

2 years ago

6.6.24

2 years ago

6.6.25

2 years ago

6.6.21

2 years ago

6.6.20

2 years ago

6.6.19

2 years ago

6.6.18

2 years ago

6.6.14

2 years ago

6.6.15

2 years ago

6.6.16

2 years ago

6.6.17

2 years ago

6.6.12

2 years ago

6.6.13

2 years ago

6.6.11

2 years ago

6.5.0

2 years ago

6.6.1

2 years ago

6.6.0

2 years ago

6.6.3

2 years ago

6.6.2

2 years ago

6.6.5

2 years ago

6.6.4

2 years ago

6.6.7

2 years ago

6.6.9

2 years ago

6.6.8

2 years ago

6.6.10

2 years ago

6.4.9

2 years ago

6.4.21

2 years ago

6.4.20

2 years ago

6.4.23

2 years ago

6.4.22

2 years ago

6.4.18

2 years ago

6.4.17

2 years ago

6.4.19

2 years ago

6.4.10

2 years ago

6.4.12

2 years ago

6.4.11

2 years ago

6.4.14

2 years ago

6.4.13

2 years ago

6.4.16

2 years ago

6.4.15

2 years ago

6.5.2

2 years ago

6.5.1

2 years ago

6.5.4

2 years ago

6.5.3

2 years ago

6.5.6

2 years ago

6.5.5

2 years ago

6.5.7

2 years ago

6.4.7

2 years ago

6.4.6

2 years ago

6.4.8

2 years ago

6.4.3

2 years ago

6.4.2

2 years ago

6.4.5

2 years ago

6.4.4

2 years ago

6.4.1

2 years ago

6.4.0

2 years ago

6.3.10

2 years ago

6.3.11

2 years ago

6.3.6

3 years ago

6.3.8

2 years ago

6.3.7

2 years ago

6.3.9

2 years ago

6.3.4

3 years ago

6.3.5

3 years ago

6.3.3

3 years ago

6.3.0

3 years ago

6.3.2

3 years ago

6.2.20

3 years ago

6.2.21

3 years ago

6.2.17

3 years ago

6.2.18

3 years ago

6.2.19

3 years ago

6.2.15

3 years ago

6.2.16

3 years ago

6.2.10

3 years ago

6.2.13

3 years ago

6.2.14

3 years ago

6.2.11

3 years ago

6.2.12

3 years ago

6.2.7

3 years ago

6.2.6

3 years ago

6.2.9

3 years ago

6.2.8

3 years ago

6.2.5

3 years ago

6.2.4

3 years ago

6.2.3

3 years ago

6.2.1

3 years ago

6.2.0

3 years ago

6.2.2

3 years ago

6.1.17

3 years ago

6.1.16

3 years ago

6.1.15

3 years ago

6.1.19

3 years ago

6.1.18

3 years ago

6.1.20

3 years ago

6.1.22

3 years ago

6.1.21

3 years ago

6.1.14

3 years ago

6.1.13

3 years ago

6.1.12

3 years ago

6.1.11

3 years ago

6.1.10

3 years ago

6.1.9

3 years ago

6.1.8

3 years ago

6.1.0

4 years ago

6.1.2

4 years ago

6.1.1

4 years ago

6.1.4

4 years ago

6.1.3

4 years ago

6.0.11

4 years ago

6.1.6

4 years ago

6.1.5

4 years ago

6.1.7

4 years ago

6.0.10

4 years ago

6.0.9

4 years ago

6.0.8

4 years ago

6.0.5

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

6.0.2

4 years ago

6.0.4

4 years ago

5.0.14

4 years ago

5.0.11

4 years ago

5.0.12

4 years ago

5.0.13

4 years ago

5.0.10

4 years ago

5.0.9

4 years ago

5.0.8

4 years ago

5.0.7

4 years ago

5.0.6

4 years ago

5.0.5

4 years ago

5.0.4

4 years ago

5.0.3

4 years ago

5.0.2

4 years ago

5.0.1

4 years ago

5.0.0

4 years ago

4.0.16

4 years ago

4.0.15

4 years ago

4.0.14

4 years ago

4.0.13

4 years ago

4.0.12

4 years ago

4.0.11

4 years ago

4.0.10

4 years ago

4.0.9

4 years ago

4.0.8

4 years ago

4.0.7

4 years ago

4.0.6

4 years ago

4.0.5

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.3.15

5 years ago

3.3.14

5 years ago

3.3.13

5 years ago

3.3.12

5 years ago

3.3.11

5 years ago

3.3.10

5 years ago

3.3.9

5 years ago

3.3.8

5 years ago

3.3.7

5 years ago

3.3.6

5 years ago

3.3.5

5 years ago

3.3.4

5 years ago

3.3.3

5 years ago

3.3.2

5 years ago

3.3.1

5 years ago

3.3.0

5 years ago

3.2.1

5 years ago

3.2.0

5 years ago

3.1.1

5 years ago

3.1.0

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

2.0.11

5 years ago

2.0.10

5 years ago

2.0.9

5 years ago

2.0.7

5 years ago

2.0.8

5 years ago

2.0.5

5 years ago

2.0.6

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.3.4

5 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago