1.1.78 • Published 3 months ago

@thi.ng/shader-ast-js v1.1.78

Weekly downloads
136
License
Apache-2.0
Repository
github
Last release
3 months ago

shader-ast-js

npm version npm downloads Twitter Follow

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

About

Customizable JS codegen, compiler & runtime for @thi.ng/shader-ast.

Due to the lack of native vector operations in JS, this compile target is much more involved than the @thi.ng/shader-ast-glsl code gen and uses a pluggable backend to perform all math ops. The default backend delegates all ops to @thi.ng/vectors and @thi.ng/matrices, which altogether provide ~750 optimized vector/matrix functions.

Unsupported features

  • texture lookups (see texture tunnel demo for a monkey-patched solution)
  • derivatives (dFdx, dFdy, fwidth) - probably never supported in this env
  • out / inout function args (see #96 for discussion)

Status

STABLE - used in production

Search or submit any issues for this package

Related packages

Installation

yarn add @thi.ng/shader-ast-js

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/shader-ast-js"></script>

Skypack documentation

For Node.js REPL:

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

> const shaderAstJs = await import("@thi.ng/shader-ast-js");

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

Dependencies

Usage examples

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

A selection:

ScreenshotDescriptionLive demoSource
2D canvas shader emulationDemoSource
HOF shader procedural noise function compositionDemoSource
WebGL & JS canvas2D raymarch shader cross-compilationDemoSource
WebGL & JS canvas 2D SDFDemoSource
WebGL & Canvas2D textured tunnel shaderDemoSource
Fork-join worker-based raymarch renderer (JS/CPU only)DemoSource

API

Generated API docs

// AST node functions from main shader-ast pkg
import {
    mul,
    defn,
    float,
    ret,
    vec3
} from "@thi.ng/shader-ast";

// codegen / compiler
import { targetJS } from "@thi.ng/shader-ast-js";

const js = targetJS();

const hello = defn("vec4", "hello", ["float"], (n) => [
    ret(vec4(mul(vec3(1, 2, 3), n), -1))
]);

js(hello)

const Module = js.compile(hello);
Module.hello(10);
// [10, 20, 30, -1]

Authors

Karsten Schmidt

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

@misc{thing-shader-ast-js,
  title = "@thi.ng/shader-ast-js",
  author = "Karsten Schmidt",
  note = "https://thi.ng/shader-ast-js",
  year = 2019
}

License

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

1.1.78

3 months ago

1.1.77

3 months ago

1.1.76

4 months ago

1.1.74

4 months ago

1.1.75

4 months ago

1.1.70

5 months ago

1.1.73

4 months ago

1.1.72

4 months ago

1.1.71

4 months ago

1.1.69

5 months ago

1.1.68

5 months ago

1.1.67

5 months ago

1.1.66

5 months ago

1.1.65

5 months ago

1.1.64

6 months ago

1.1.63

6 months ago

1.1.62

7 months ago

1.1.61

7 months ago

1.1.60

7 months ago

1.1.59

7 months ago

1.1.58

7 months ago

1.1.57

8 months ago

1.1.52

9 months ago

1.1.51

9 months ago

1.1.50

10 months ago

1.1.56

8 months ago

1.1.55

8 months ago

1.1.54

8 months ago

1.1.53

9 months ago

1.1.38

11 months ago

1.1.37

12 months ago

1.1.36

12 months ago

1.1.39

11 months ago

1.1.41

11 months ago

1.1.40

11 months ago

1.1.45

11 months ago

1.1.44

11 months ago

1.1.43

11 months ago

1.1.42

11 months ago

1.1.49

10 months ago

1.1.48

10 months ago

1.1.47

10 months ago

1.1.46

10 months ago

1.1.35

1 year ago

1.1.34

1 year ago

1.1.33

1 year ago

1.1.32

1 year ago

1.1.31

1 year ago

1.1.30

1 year ago

1.1.29

1 year ago

1.1.28

1 year ago

1.1.27

1 year ago

1.1.26

1 year ago

1.1.25

1 year ago

1.1.24

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.12

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.33

1 year ago

1.0.29

1 year ago

1.0.32

1 year ago

1.0.31

1 year ago

1.0.30

1 year ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.19

2 years ago

1.0.2

2 years ago

1.0.18

2 years ago

1.0.1

2 years ago

1.0.17

2 years ago

1.0.0

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.22

2 years ago

1.0.20

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

0.7.66

2 years ago

0.7.68

2 years ago

0.7.67

2 years ago

0.7.64

2 years ago

0.7.63

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

0.7.62

2 years ago

0.7.61

2 years ago

0.7.60

2 years ago

0.7.57

2 years ago

0.7.59

2 years ago

0.7.58

2 years ago

0.7.55

2 years ago

0.7.56

2 years ago

0.7.54

2 years ago

0.7.51

2 years ago

0.7.50

2 years ago

0.7.53

2 years ago

0.7.52

2 years ago

0.7.49

2 years ago

0.7.48

2 years ago

0.7.47

2 years ago

0.7.46

2 years ago

0.7.43

2 years ago

0.7.45

2 years ago

0.7.39

2 years ago

0.7.38

2 years ago

0.7.40

2 years ago

0.7.42

2 years ago

0.7.41

2 years ago

0.7.33

3 years ago

0.7.32

3 years ago

0.7.35

3 years ago

0.7.34

3 years ago

0.7.31

3 years ago

0.7.30

3 years ago

0.7.37

3 years ago

0.7.36

3 years ago

0.7.29

3 years ago

0.7.28

3 years ago

0.7.27

3 years ago

0.7.26

3 years ago

0.7.25

3 years ago

0.7.24

3 years ago

0.7.22

3 years ago

0.7.21

3 years ago

0.7.23

3 years ago

0.7.20

3 years ago

0.7.19

3 years ago

0.7.18

3 years ago

0.7.15

3 years ago

0.7.17

3 years ago

0.7.16

3 years ago

0.7.11

3 years ago

0.7.10

3 years ago

0.7.13

3 years ago

0.7.12

3 years ago

0.7.14

3 years ago

0.7.9

3 years ago

0.7.8

3 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.4

4 years ago

0.7.3

4 years ago

0.7.0

4 years ago

0.6.11

4 years ago

0.7.6

4 years ago

0.7.5

4 years ago

0.7.7

3 years ago

0.6.9

4 years ago

0.6.10

4 years ago

0.6.8

4 years ago

0.6.5

4 years ago

0.6.2

4 years ago

0.6.4

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.49

4 years ago

0.5.47

4 years ago

0.5.48

4 years ago

0.5.46

4 years ago

0.5.45

4 years ago

0.5.44

4 years ago

0.5.43

4 years ago

0.5.42

4 years ago

0.5.41

4 years ago

0.5.40

4 years ago

0.5.39

4 years ago

0.5.38

4 years ago

0.5.37

4 years ago

0.5.36

4 years ago

0.5.35

4 years ago

0.5.34

4 years ago

0.5.33

4 years ago

0.5.32

4 years ago

0.5.31

4 years ago

0.5.30

4 years ago

0.5.29

4 years ago

0.5.28

4 years ago

0.5.27

4 years ago

0.5.26

4 years ago

0.5.25

4 years ago

0.5.21

4 years ago

0.5.20

4 years ago

0.5.19

4 years ago

0.5.18

4 years ago

0.5.16

4 years ago

0.5.17

4 years ago

0.5.15

4 years ago

0.5.14

4 years ago

0.5.13

4 years ago

0.5.12

5 years ago

0.5.11

5 years ago

0.5.10

5 years ago

0.5.9

5 years ago

0.5.8

5 years ago

0.5.7

5 years ago

0.5.6

5 years ago

0.5.5

5 years ago

0.5.4

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.4.40

5 years ago

0.4.39

5 years ago

0.4.38

5 years ago

0.5.0

5 years ago

0.4.37

5 years ago

0.4.36

5 years ago

0.4.35

5 years ago

0.4.34

5 years ago

0.4.33

5 years ago

0.4.32

5 years ago

0.4.31

5 years ago

0.4.30

5 years ago

0.4.29

5 years ago

0.4.28

5 years ago

0.4.27

5 years ago

0.4.26

5 years ago

0.4.25

5 years ago

0.4.24

5 years ago

0.4.23

5 years ago

0.4.22

5 years ago

0.4.21

5 years ago

0.4.20

5 years ago

0.4.19

5 years ago

0.4.18

5 years ago

0.4.17

5 years ago

0.4.16

5 years ago

0.4.15

5 years ago

0.4.14

5 years ago

0.4.13

5 years ago

0.4.12

5 years ago

0.4.11

5 years ago

0.4.10

5 years ago

0.4.9

5 years ago

0.4.8

5 years ago

0.4.7

5 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

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.1

6 years ago

0.1.0

6 years ago