!7 module WebCamFaceFinder > DynImageSurface { transient BufferedImage lastImage; FaceFinderX1 finder; start { // faceFinderX1_best if (finder == null) finder = faceFinderX1_starbucks(); doEvery(100, rstUpdate()); } afterVisualize { imageSurface_pixelated(imageSurface); } void update { if (imageSurface == null) ret; final BufferedImage img = dm_webCamImage(); temp tempAfterwards(r { lastImage = img }); if (img == null || img == lastImage) ret; Rect r = cloneRect(finder.get(RGBImage(img))); if (r != null) { r.y = -1; r.h = img.getHeight(); } setSelection(r); setImage(img); } }