
Security News
New React Server Components Vulnerabilities: DoS and Source Code Exposure
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.
cheryglsljs
Advanced tools
A lightweight JavaScript library for beautiful, interactive image effects using Three.js, GLSL shaders, and GSAP. Easily add animated wave and transition effects to images in your web projects, with support for both CDN and npm/bundler workflows.
Add Three.js and GSAP via CDN in your HTML:
<script src="https://unpkg.com/cheryglsljs/dist/cherry.js"></script>
The library will be available as a global variable: Cherryglsl.
Install via npm:
npm install cheryglsljs three gsap
Import in your JavaScript:
import * as Cherryglsl from 'cheryglsljs';
// or import { CherryWave, ImageTransition1, ImageTransition2 } from 'cheryglsljs';
CherryWave)HTML:
<div class="container" style="width: 400px; height: 400px;">
<img class="cherry" src="your-image.jpg" style="width: 100%; height: 100%;" />
</div>
JavaScript:
import Cherryglsl from 'cheryglsljs';
const img = document.querySelector('.cherry');
const container = document.querySelector('.container');
Cherryglsl.CherryWave({
image: img, // HTMLImageElement (required)
container: container, // HTMLElement (required)
speed: 0.04, // (optional) wave animation speed
strength: 8, // (optional) wave strength
hover: true, // (optional) enable wave on hover
light: false // (optional) enable light effect
});
CherryWaveimage: HTMLImageElement (required) — The image to apply the wave effect to.container: HTMLElement (required) — The container where the effect will be rendered.speed: Number (optional, default: 0.05) — Speed of the wave animation.strength: Number (optional, default: 8) — Strength/amplitude of the wave.hover: Boolean (optional, default: false) — If true, wave animates on hover.light: Boolean (optional, default: false) — If true, adds a light effect to the wave.ImageTransition1)HTML:
<div class="container" style="width: 400px; height: 400px;">
<img src="image1.jpg" />
<img src="image2.jpg" />
</div>
JavaScript:
import Cherryglsl from 'cheryglsljs';
const container = document.querySelector('.container');
Cherryglsl.ImageTransition1(container, {
speed: 0.02, // (optional) transition speed
strength: 0.02, // (optional) wave strength during transition
radius: 0.02, // (optional) radius of the transition circle
hover: false, // (optional) enable hover effect
noise: 0.4, // (optional) noise amount for edge
p: 0.0 // (optional) camera z offset
});
ImageTransition1container: HTMLElement (required) — The container with at least two <img> elements.speed: Number (optional, default: 0.02) — Speed of the transition animation.strength: Number (optional, default: 0.02) — Strength of the wave during transition.radius: Number (optional, default: 0.02) — Radius of the transition circle.hover: Boolean (optional, default: false) — If true, enables hover-based transition.noise: Number (optional, default: 0.4) — Amount of noise for the transition edge.p: Number (optional, default: 0.0) — Camera z offset for perspective.ImageTransition2)HTML:
<div class="container" style="width: 400px; height: 400px;">
<img src="image1.jpg" />
<img src="image2.jpg" />
<img src="image3.jpg" />
</div>
JavaScript:
import Cherryglsl from 'cheryglsljs';
const container = document.querySelector('.container');
Cherryglsl.ImageTransition2(container, {
time: true, // (optional) auto transition timing
speed: 1.2, // (optional) transition speed
p: 0.0, // (optional) camera z offset
hover: false, // (optional) enable hover effect
ttype: 0 // (optional) transition type (future use)
});
ImageTransition2container: HTMLElement (required) — The container with at least two <img> elements.time: Boolean (optional, default: true) — If true, transitions automatically.speed: Number (optional, default: 1.2) — Speed of the transition.p: Number (optional, default: 0.0) — Camera z offset for perspective.hover: Boolean (optional, default: false) — If true, enables hover-based transition.ttype: Number (optional, default: 0) — Transition type (for future extension).CherryWave(options) — Adds a wave effect to a single image.ImageTransition1(container, options) — Adds a circular transition effect between two images.ImageTransition2(container, options) — Adds an animated transition effect between multiple images.MIT
FAQs
A Three.js + GLSL-based wave effect library.
We found that cheryglsljs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.

Security News
GitHub has revoked npm classic tokens for publishing; maintainers must migrate, but OpenJS warns OIDC trusted publishing still has risky gaps for critical projects.