Sticker Forge is a WebGL tool that turns text or uploaded images into interactive stickers with a simulated peel-and-reveal effect, offering a Web Component and imperative API.

Stars

627

7-day growth

+317

Forks

57

Open issues

0

License

MIT

Last updated

2026-07-27

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It provides a realistic, physics-inspired sticker peel effect with depth-aware shadows, inline sound, and a framework-independent library that can be embedded in any web page.

Who it is for

  • Front-end developers building interactive or gamified UI elements
  • Designers prototyping product demos with tactile interactions
  • Educators creating engaging learning materials with sticker rewards
  • Game developers needing peelable stickers for in-game items or menus

Use cases

  • Creating interactive product showcases where users can peel a sticker to reveal hidden content
  • Building fun, engaging user onboarding or reward experiences
  • Developing sticker-based educational apps for children
  • Embedding customizable sticker components in marketing or portfolio pages

Strengths

  • Realistic WebGL simulation with custom shaders for rigid and bent regions
  • Supports text, image, and SVG inputs with automatic alpha-based die-cut
  • Framework-agnostic: offered as a Web Component and imperative JavaScript API
  • Inline audio sprite with velocity-driven sound effects, no external files needed

Considerations

  • Requires Node.js 22.13+ for local development and build
  • WebGL support is mandatory in the browser; may not work on older devices
  • The effect is specialized for sticker peeling; not suited for general-purpose 3D interactions

README quick start

Sticker Forge

Sticker Forge turns text or uploaded image artwork into a tactile WebGL sticker. Grab the real die-cut edge, drag it inward, and the sticker curls to reveal a satin back surface with depth-aware shadowing.

The repository contains two deliverables:

  • an interactive builder in app/;
  • a framework-independent Web Component and imperative API in lib/.

Run locally

Node.js 22.13 or newer is required.

npm install
npm run dev

Build the hosted app and both reusable library bundles with:

npm run build

The reusable files are emitted to public/embed/:

  • sticker-forge.es.js — an ES module that auto-registers ``;
  • sticker-forge.iife.js — a classic script exposing window.StickerForge;
  • sticker-forge.d.ts — public TypeScript declarations.

GitHub Pages

Pushes to main deploy a static export through the GitHub Pages workflow at .github/workflows/deploy-pages.yml. Build the same artifact locally with:

npm run build:pages

The production Pages site uses https://sticker.oooo.so. Its DNS record is a CNAME for the sticker subdomain pointing to catsjuice.github.io.

The provided peel sound is trimmed, converted to mono, lightly high-passed, and inlined into both JavaScript bundles, so it does not need to be copied or hosted as a separate asset. The untouched source recording remains in lib/assets/.

Copy-paste Web Component

Copy both the ES bundle and this markup into any page. The bundle registers the element automatically; the idempotent defineStickerForge() helper is also exported and returns immediately (void).






  await customElements.whenDefined("sticker-forge");
  const sticker = document.querySelector("#sticker");

  sticker.setOptions({
    outline: { width: 18, color: "#ffffff" },
    shadow: { opacity: 0.22, blur: 22, distance: 16, angle: 42 },
    lighting: {
      direction: { x: -0.38, y: 0.52, z: 0.76 },
      intensity: 0.8,
      ambient: 0.35,
      softness: 0.6,
    },
    peel: {
      radius: 0.12,
      stiffness: 0.72,
      maxAngle: 3.55,
      release: "reset",
    },
    sound: { enabled: true, volume: 0.68 },
    back: { color: "#f7f5f2", gloss: 0.7, roughness: 0.3 },
    material: {
      type: "holographic",
      intensity: 0.86,
      scale: 1,
    },
    tilt: -3,
  });

  // setSource() is async: the promise settles after the tex

Description

A tactile WebGL sticker maker with rich text, image uploads, and interactive peel physics.

Related repositories

Similar projects matched by category, topics, and programming language.

dilukangelosl
Featured
dilukangelosl GitHub avatar

fluidkit

A framework-agnostic GPU fluid simulation library for the web using Stable Fluids on WebGL2, with pluggable render modes and React/Vue/Svelte adapters.

AI & Machine LearningAI Agents
8
hoainho
hoainho GitHub avatar

img2threejs

img2threejs reconstructs a 3D object from a single reference image as a procedural Three.js model using code-only, token-efficient, staged pipeline with quality gates, producing animation-ready Three.js groups.

Python
7,414
0xsline
0xsline GitHub avatar

OpenChatCut

OpenChatCut is an open-source, local-first AI video editor with a real multitrack timeline, conversational agents, and MCP support, enabling AI-assisted editing that remains fully editable.

TypeScript
579