fand/vfx-js

WebGL effects made easy.

TypeScript

1,152

368 commits

updated Sep 10, 2026

See the code

README

VFX-JS

VFX-JS: Visual Effects Framework for Web

Star on GitHub

VFX-JS is a JavaScript library to add WebGL-powered effects to your website. You can easily attach it to normal <img>, <video> elements etc.

See also @vfx-js/react for React bindings.

Usage

Install via npm:

npm i @vfx-js/core

Then create VFX object in your script:

import { VFX } from '@vfx-js/core';

const img = document.querySelector('#img');

const vfx = new VFX();
vfx.add(img, { shader: "glitch", overflow: 100 });

Or compose prebuilt effects from @vfx-js/effects:

import { VFX } from '@vfx-js/core';
import { BloomEffect, PixelateEffect } from '@vfx-js/effects';

const vfx = new VFX();
vfx.add(img, {
    effect: [new PixelateEffect({ size: 10 }), new BloomEffect({ intensity: 5 })],
});

Examples

You can find basic examples on the VFX-JS website. Or visit VFX-JS Examples for more advanced use cases.

Author

AMAGI

LICENSE

MIT

animation
animations
creative-coding
frontend
frontend-web
glsl
image-effect
image-effects
javascript
post-processing
react
shader
shaders
typescript
video-effect
video-effects
visual-effect
visual-effects
web-development
webgl

fand/vfx-js

WebGL effects made easy.

TypeScript

1,152

368 commits

updated Sep 10, 2026

See the code

README

VFX-JS

VFX-JS: Visual Effects Framework for Web

Star on GitHub

VFX-JS is a JavaScript library to add WebGL-powered effects to your website. You can easily attach it to normal <img>, <video> elements etc.

See also @vfx-js/react for React bindings.

Usage

Install via npm:

npm i @vfx-js/core

Then create VFX object in your script:

import { VFX } from '@vfx-js/core';

const img = document.querySelector('#img');

const vfx = new VFX();
vfx.add(img, { shader: "glitch", overflow: 100 });

Or compose prebuilt effects from @vfx-js/effects:

import { VFX } from '@vfx-js/core';
import { BloomEffect, PixelateEffect } from '@vfx-js/effects';

const vfx = new VFX();
vfx.add(img, {
    effect: [new PixelateEffect({ size: 10 }), new BloomEffect({ intensity: 5 })],
});

Examples

You can find basic examples on the VFX-JS website. Or visit VFX-JS Examples for more advanced use cases.

Author

AMAGI

LICENSE

MIT

animation
animations
creative-coding
frontend
frontend-web
glsl
image-effect
image-effects
javascript
post-processing
react
shader
shaders
typescript
video-effect
video-effects
visual-effect
visual-effects
web-development
webgl

Significant stargazers

Neko

1,681 followers · starred Feb 2026

CanisMinor

892 followers · starred Feb 2026

Konv Suu

85 followers · starred Aug 2024

Hiroaki Yutani

567 followers · starred Apr 2026