Mask Erode
A cover eaten inward from its edges, the material leaving as grains on the draught.
The canvas in this preview is the file shown here. The surrounding demo shell only provides context and is not part of the copied code.
import { useEffect, useRef } from "react";
/**
* Vibary · Mask Erode
*
* A cover eaten away from its edges, the material leaving as grains on
* the draught that is eating it.
*About this effect
For content that has been withheld and is now released — an unlocked report, a redacted field, a result that has finished computing. Only cells currently on the boundary may be removed: the cover is an occupancy grid with a frontier list beside it, and taking a cell off pushes its still-solid neighbours onto that frontier, so the erosion is always the edge advancing inward and cannot punch a hole in the middle. That is the whole difference between eaten and faded, and it is measurable — at a quarter removed this rule leaves zero interior holes where dissolving cells at random leaves 78 and the cover has already become lace. Two details keep the advance from looking mechanical: each cell carries a toughness from a stable hash of its position, so the edge is chewed rather than a smooth inward offset of the outline, and the chance of a cell going is weighted along the draught, so the cover is eaten from the windward side first and the reveal has a direction with no sweep line anywhere in the code. Removal and emission are the same event — one cell leaves the grid and exactly one grain appears where it was, so the material is the cover moving rather than an illustration of it.