diff --git a/raspimon_sees_faces.py b/raspimon_sees_faces.py
new file mode 100644
index 0000000..73fd032
--- /dev/null
+++ b/raspimon_sees_faces.py
@@ -0,0 +1,59 @@
+from sense_hat import SenseHat
+from time import sleep
+# Our new APIs:
+import vision
+
+# initialize SenseHat instance and clear the LED matrix
+sense = SenseHat()
+sense.clear()
+
+#Raspimon colors
+r = (255, 0, 0)
+g = (0, 255, 0)
+b = (0, 0, 255)
+k = (0, 0, 0)
+w = (255, 255, 255)
+c = (0, 255, 255)
+y = (255, 255, 0)
+o = (255, 128, 0)
+n = (255, 128, 128)
+p = (128, 0, 128)
+d = (255, 0, 128)
+l = (128, 255, 128)
+
+# draw the initial Raspimon (before reacting to vision)
+chirp2 = [ k , k , k , k , k , k , k , k , k , k , k , l , r , y , k , k , k , k , k , l , l ,
+k , k , k , l , g , g , w , w , g , g , l , k , l , g , w , w , l , g , k , k , k , l , w , w , l ,
+k , k , k , k , k , l , l , k , k , k , k , k , o , k , k , o , k , k ]
+
+chirp1 = [ k , k , k , l , r , y , k , k , k , k , k , l , l , k , k , k , k , k , g , w , w ,
+g , k , k , k , k , g , w , w , g , k , k , k , k , l , w , w , l , k , k , k , k , l , w , w , l ,
+k , k , k , k , k , l , l , k , k , k , K , K , o , K , K , o , K , K ]
+
+sense.set_pixels(chirp1)
+
+# load the neural network model (obfuscates use of TF and Edge TPU)
+detector = vision.Detector(vision.FACE_DETECTION_MODEL)
+
+def dance():
+  sense.set_pixels(chirp2)
+  sleep(0.3)
+  sense.set_pixels(chirp1)
+  sleep(0.3)
+
+# redraw the raspimon in response to detected faces  
+def react_to_faces(faces):
+  print(len(faces), 'faces visible')
+  #your code here
+  if len(faces) == 1:
+    dance()
+
+# run a loop to run the model in real-time
+for frame in vision.get_frames('Face Detector', size=(640, 480)):
+  faces = detector.get_objects(frame)
+
+  # Draw bounding boxes on the frame and display it
+  vision.draw_objects(frame, faces)
+
+  # Pass faces to function that controls raspimon
+  react_to_faces(faces)
