Thanks to @Phorgz and @GabeRogan for pointing me in the right direction. Delaunay triangulation was definitely a way to go, and it ended very quickly, even when updating the canvas as an animation.
I ended up using the npm faster-delaunay package , which uses the division and conquest algorithm to triangulate randomly generated points.
Here is the result of what I painted on the canvas, which is updated as the points move around the plane:

source share