Tamara: left and right wrist painting
createGraphics(): creates an offscreen drawing canvas (graphics buffer) and returns it as a p5.Graphics object
MediaPipe face mesh
2D: draw with beginShape() and overlap onto the face
3D: output an array of triangles, then sequentially draw the next three 3D point as a triangle, then apply color through the underlying video image
const indexA = TRIANGULATION[i];
const indexB = TRIANGULATION[i + 1];
const indexC = TRIANGULATION[i + 2];
const pointA = face.keypoints[indexA];
const pointB = face.keypoints[indexB];
const pointC = face.keypoints[indexC];
beginShape();
vertex(pointA.x, pointA.y, 1 - pointA.z);
vertex(pointB.x, pointB.y, 1 - pointB.z);
vertex(pointC.x, pointC.y, 1 - pointC.z);
endShape(CLOSE);
Flappy Millie - Christina
Umbrella Hand Pose - Alina
Input: Image/Video stream
Output: Approximate 3D facial surface geometry OR 2D coord.