Thorne Brandt

Mobile Menu


Sarah Squirm and the Magic Vegas Snowglobe

Live photoshopping, projection mapping

December 14th, 2016

I'm always looking for opportunities to work live photoshopping onto the stage. I feel that it has a lot of potential as a performance tool, especially with scripting. The main gag for this act was to capture an image of an audience member in real time and then embarrass in front of the crowd them with an album family photos of awkward stages. There was also a projection mapped crystal-ball-esque snowglobe, which would reveal the subject's past and future involved mostly watching hentai.

The hardest part of this process would be actually obtaining a clear enough photo of the volunteer and discretely photoshopping them in time without disrupting or distracting from the performance. Luckily, Sarah is a brilliant character actor and was able to gracefully embody the presence of annoying extended-family member that is always pressuring for family photos. She then discretely handed a memory card to me and pointed out the victim.

After the photo was handed off via memory card, it was roughly 45 seconds before the masked, feathered, and resized face was correctly named in the special Resources folder that Unity used to texture a sprite that lived within the compositions that made up the embarrassing family photos.

public GameObject kevinObject;
public GameObject[] photos;
private Texture kevinTexture;
private int kevinIndex = 0;
Texture2D loadKevinTexture() {
    string filePath = "Assets/Resources/kevin.png";
    Texture2D tex = null;
    byte[] fileData;
    if (!File.Exists(filePath)) {
        filePath = "Assets/Resources/kevin_sample.png";
    if (File.Exists(filePath)) {
        fileData = File.ReadAllBytes(filePath);
        tex = new Texture2D(2, 2);
    return tex;
void showNextImage() {
    if (kevinIndex & gt; photos.Length) {
        kevinIndex = 0;
void showImage(int index) {
    for (int i = 0; i & lt; photos.Length; i++) {
        GameObject photo = photos[i];
        bool _active = false;
        if (i == kevinIndex) {
            _active = true;

TODO: Web version of this trick.

The semi-translucent snowglobe was a circular mapped rear projection ( via Resolume ) onto $2 Home Depot dropcloth plastic wrapped around a hula-hoop. I gave Sarah a discrete MIDI controller in which she could fade in Hentai whenever she felt her son had been thinking about it during the performance.