Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

FaceOSC Receiver Templates

2012-2017 by Dan Wilcox, et al.

This repository contains templates for receiving face tracking OSC (Open Sound Control) messages from Kyle McDonald's FaceOSC wrapper around Jason Saragih’s FaceTracker. Templates are provided for a number of popular arts-engineering toolkits, including Processing, openFrameworks, Max/MSP, Pure Data (pd), and SuperCollider.

Created for Prof. Golan Levin's Spring 2012 IACD class at the CMU School of Art.



Download FaceOSC and get started with a template project for one of the following creative coding environments:

Make sure FaceOSC is running and a face is detected (i.e., a face mesh is drawn). The face detection may run very slowly (0.5 fps) while initially searching for a face. It speeds up to 30-60fps once one is found. For best results, make sure your face is evenly lit.

Further info:

  • FaceOSC uses port 8338 by default for OSC communication.
  • The FaceOSC window size is 640 x 480 pixels.



Generating Project Files

The OpenFrameworks template does not come with the project files pre-generated. You will need to use the OF ProjectGenerator to create them (you should only need to do this once).

To (re)generate project files for an existing project:

  • click the "Import" button in the ProjectGenerator
  • navigate the to base folder for the OF project ie. "FaceOSCReceiver"
  • click the "Update" button

If everything went OK, you should now be able to open the generated project and build/run.

Choosing a Version

If you are using an older version (007, ...) of OpenFrameworks then you'll want to use a git tag of this repo for that version. You can select the tag in the Github "Current Branch" menu or clone and check it out using git.

For example, the following commands will clone and switch to the OF 007 tagged version:

git clone git://
cd FaceOSC-Templates
git checkout of-007

The current master branch should work with the current OF and a tag will only be created when there is an appreciable change in OF, so there may not be a tag for every version of OF.