Skip to content
A/B Machines is an experimental theatrical performance where people explore their dream, identity and basic human impulse to see and be seen using cameras and selfie machines, inspired by Andy Warhol.
C++ Python Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


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

A/B Machines


Photo Credit: Louis Stein

A/B Machines is an experimental theatrical experience where people explore their dream, identity and basic human impulse to see and be seen using cameras and selfie machines. The script was adapted from the works of Andy Warhol and inspired by his philosophy.

Folder Structure

  • photobooth-controller - Arduino
  • photobooth-screen - openFrameworks
  • photobooth-player - openFrameworks
  • lip-sync-prototype - openFrameworks
  • camera-switch - Python Tkinter

Getting Started

Install openFrameworks

Download the latest version from Official Website and do not setup any IDE.

Compile openFrameworks using Xcode 10

openFramewroks seems have troubles with being compiled by Xcode 10 using default setting and getting access to camera in macOS 10.4 Mojave. You have to modify some settings manually.


  • oepnFrameworks 10.0
  • Xcode 10.0

In both the project and openFrameworksLib.xcodeproj, goto Build Settings and show All settings, then change Architectures to Standard Architectures (64-bit Intel) and remove i386 from Valid Architectures.


Remove the two frameworks in CoreOF.xcconfig:

-framework QuickTime -framework QTKit

Goto openFrameworks-Info.plist file to add the privacy key named NSCameraUsageDescription, and it will automatically be renamed Privacy - Camera Usage Description.


If Xcode has troubles with finding out addons during compiling, use Project Generator to reload all the addons.

Build the project. Once the camera access permission poped out, you succeed.


Compile openFrameworks without Xcode

Another solution is removing Xcode and only using Command Line Tools to compile and run projects.

Launch the Terminal and type the following command string:

xcode-select --install

Use cd to the directory of your project and run:


After compiling is done, in bin folder, right click the application you just compiled and select Show Package Contents. In Contents folder, goto info.plist file to add the privacy key within <dict> below:

<string>${PRODUCT_NAME} Camera Usage</string>

Now you can launch the project by double clicking the application or run:

make RunRelease

To activate debug mode, run:

make Debug
make RunDebug

Launch the application, and now you can allow the openFrameworks access to camera:


Install Addons


ofxOpenFace is a toolkit wrapping OpenFace. It's capable of facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation.

First, use homebrew to install TBB, openBlas and openCV:

/usr/bin/ruby -e "$(curl -fsSL"; brew install tbb; brew install opencv; brew install openblas;
Fix Bugs

Goto addons/ofxOpenFace/src folder and edit ofxOpenFaceSingle.h and ofxOpenFaceMulti.h, replacing all return 1 to return.


Media Design Team

  • Giada Sun - Lead Media Design - Website
  • Sean Leo - Assistant Media Design - Website
  • SooA Kim - Media Engineer - Website
You can’t perform that action at this time.