Every option, live

Move anything in the panel and the plate changes on the next frame. The snippet below the fold is the code for what you are looking at.

every control applies immediatelydrag across the screen

liquid, unchanged - wet, torn, travelling

revealed 0%

EdgeOptions

The preset row under the plate loads its values into these sliders. Move any one of them and the snippet switches from edge="liquid" to an explicit object.

7.5

fbm frequency of the carve - higher is finer lace

0.38

how hard the noise chews the boundary

0.28

amount of the finer second octave

0.012

anti-alias width of the cut

0.18

mask value the cut happens at

0.008

rim refraction strength - 0 removes the wet bead

55

how tightly the refraction hugs the rim

1

drift speed of the noise field

0.5

how hard the banded noise punches holes through the reveal - 0 is the plain carve and nothing else

2.5

more, smaller holes as it climbs - much over 4 it turns into contour rings

0

0 reads the mask smoothly, 1 reads it on its own grid for a low-poly tear

Your settings, as code

components/stage.tsx
import { Revealed } from "revealed/react";

export function Stage() {
  return (
    <Revealed
      front="/demo/front.webp"
      back="/demo/back.webp"
      skeleton={{
        src: "/demo/back-skeleton.svg",
        color: "#000000",
      }}
    />
  );
}