To see other Assignments:

Assignment 1: Magic Mirror  |  Assignment 2: Face Tracking  |  Assignment 3: Seflie Instructor  |   Assignment 4: Alpha Blending   |    Assignment 5:

Quite Satisfied with this first try at Max, would like learn more! So what I have achieved:


  • cvjit.faces detects when one at least one face appears on screen
  • Face size is calculated by the coordinates of the approximated perimeter given by cvjit.faces
  • cvjit.faces detects when the face is off-screen or there is no more faces


  • Mirror is inverted to the correct orientation
  • Opacity is triggered based on proximity
  • Screen will fade to black when no face is detected


The reason for the cutting to black when no faces are detected was because I wanted to eliminate the issue of screen flashing whenever the face is out of position as cv.jit.faces requires the user’s face to be very frontal else it will not register.

However I would also like to explore how to limit to only working when there is ONLY ONE face… that will be more trail and errors, will get to that sometime later.


Below is a video log for my own documentation of process, so I can review the thinking process behind the max patcher for this magic mirror assignment.