6.8.14 • Published 2 days ago

@thi.ng/webgl v6.8.14

Weekly downloads
106
License
Apache-2.0
Repository
github
Last release
2 days 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.8.14

2 days ago

6.8.13

5 days ago

6.8.12

7 days ago

6.8.11

16 days ago

6.8.10

19 days ago

6.8.9

29 days ago

6.8.8

1 month ago

6.8.7

1 month ago

6.8.6

1 month ago

6.8.5

1 month ago

6.8.4

1 month ago

6.8.3

1 month ago

6.8.2

2 months ago

6.8.1

2 months ago

6.8.0

2 months ago

6.7.1

2 months ago

6.7.0

2 months ago

6.6.36

2 months ago

6.6.35

2 months ago

6.6.34

2 months ago

6.6.33

2 months ago

6.6.31

2 months ago

6.6.32

2 months ago

6.6.29

2 months ago

6.6.30

2 months ago

6.6.28

2 months ago

6.6.27

3 months ago

6.6.26

3 months ago

6.6.22

3 months ago

6.6.23

3 months ago

6.6.24

3 months ago

6.6.25

3 months ago

6.6.21

3 months ago

6.6.20

3 months ago

6.6.19

4 months ago

6.6.18

4 months ago

6.6.14

4 months ago

6.6.15

4 months ago

6.6.16

4 months ago

6.6.17

4 months ago

6.6.12

5 months ago

6.6.13

5 months ago

6.6.11

5 months ago

6.5.0

7 months ago

6.6.1

6 months ago

6.6.0

6 months ago

6.6.3

6 months ago

6.6.2

6 months ago

6.6.5

6 months ago

6.6.4

6 months ago

6.6.7

6 months ago

6.6.9

5 months ago

6.6.8

6 months ago

6.6.10

5 months ago

6.4.9

10 months ago

6.4.21

8 months ago

6.4.20

8 months ago

6.4.23

7 months ago

6.4.22

8 months ago

6.4.18

8 months ago

6.4.17

8 months ago

6.4.19

8 months ago

6.4.10

9 months ago

6.4.12

9 months ago

6.4.11

9 months ago

6.4.14

9 months ago

6.4.13

9 months ago

6.4.16

8 months ago

6.4.15

9 months ago

6.5.2

7 months ago

6.5.1

7 months ago

6.5.4

7 months ago

6.5.3

7 months ago

6.5.6

6 months ago

6.5.5

6 months ago

6.5.7

6 months ago

6.4.7

11 months ago

6.4.6

11 months ago

6.4.8

11 months ago

6.4.3

12 months ago

6.4.2

12 months ago

6.4.5

11 months ago

6.4.4

11 months ago

6.4.1

1 year ago

6.4.0

1 year ago

6.3.10

1 year ago

6.3.11

1 year ago

6.3.6

1 year ago

6.3.8

1 year ago

6.3.7

1 year ago

6.3.9

1 year ago

6.3.4

1 year ago

6.3.5

1 year ago

6.3.3

1 year ago

6.3.0

1 year ago

6.3.2

1 year ago

6.2.20

1 year ago

6.2.21

1 year ago

6.2.17

1 year ago

6.2.18

1 year ago

6.2.19

1 year ago

6.2.15

1 year ago

6.2.16

1 year ago

6.2.10

2 years ago

6.2.13

1 year ago

6.2.14

1 year ago

6.2.11

1 year ago

6.2.12

1 year ago

6.2.7

2 years ago

6.2.6

2 years ago

6.2.9

2 years ago

6.2.8

2 years ago

6.2.5

2 years ago

6.2.4

2 years ago

6.2.3

2 years ago

6.2.1

2 years ago

6.2.0

2 years ago

6.2.2

2 years ago

6.1.17

2 years ago

6.1.16

2 years ago

6.1.15

2 years ago

6.1.19

2 years ago

6.1.18

2 years ago

6.1.20

2 years ago

6.1.22

2 years ago

6.1.21

2 years ago

6.1.14

2 years ago

6.1.13

2 years ago

6.1.12

2 years ago

6.1.11

2 years ago

6.1.10

2 years ago

6.1.9

2 years ago

6.1.8

2 years ago

6.1.0

2 years ago

6.1.2

2 years ago

6.1.1

2 years ago

6.1.4

2 years ago

6.1.3

2 years ago

6.0.11

2 years ago

6.1.6

2 years ago

6.1.5

2 years ago

6.1.7

2 years ago

6.0.10

2 years ago

6.0.9

2 years ago

6.0.8

2 years ago

6.0.5

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

6.0.2

3 years ago

6.0.4

3 years ago

5.0.14

3 years ago

5.0.11

3 years ago

5.0.12

3 years ago

5.0.13

3 years ago

5.0.10

3 years ago

5.0.9

3 years ago

5.0.8

3 years ago

5.0.7

3 years ago

5.0.6

3 years ago

5.0.5

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.0.16

3 years ago

4.0.15

3 years ago

4.0.14

3 years ago

4.0.13

3 years ago

4.0.12

3 years ago

4.0.11

3 years ago

4.0.10

3 years ago

4.0.9

3 years ago

4.0.8

3 years ago

4.0.7

3 years ago

4.0.6

3 years ago

4.0.5

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.3.15

3 years ago

3.3.14

3 years ago

3.3.13

3 years ago

3.3.12

3 years ago

3.3.11

3 years ago

3.3.10

3 years ago

3.3.9

3 years ago

3.3.8

3 years ago

3.3.7

3 years ago

3.3.6

3 years ago

3.3.5

4 years ago

3.3.4

4 years ago

3.3.3

4 years ago

3.3.2

4 years ago

3.3.1

4 years ago

3.3.0

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.11

4 years ago

2.0.10

4 years ago

2.0.9

4 years ago

2.0.7

4 years ago

2.0.8

4 years ago

2.0.5

4 years ago

2.0.6

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.2.4

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago