An identity system where each individual in the organization creates their own logo while still reflecting a coherent identity.
This logo system is created for the Interactive Telecommunication Program ( ITP ), a two-year graduate program within the Tisch School of Arts whose mission is to explore the imaginative use of the latest communication technologies. Some of the main characteristic of ITP are diversity, creativity, playfulness and experimentation.
I wanted to design a system where there are infinite varieties of outcomes while remaining coherent. Inspired by the ancient Tangram game, I first prototyped with paper cutouts. This led to the final output - a custom software that allows each person at ITP to make their own logo, using a predefined set of shapes and colors. The shapes and colors are designed to reflect the playfulness, energy and vibrance of the community.
This identity system aims to emphasize the 'human' factor that is integral to what makes the community of ITP - two hundred individuals from all walks of life such as music, engineering, visual arts, science, education etc. The generative power of the system comes from human input.
shown below is a quick demo of the system for logo of ITP ( the five fixed color series which includes the color purple - the current color of ITP logo and the theme color for NYU ) and ITP Camp ( a condensed summer program whose theme color is green )
sample individual identities for members of ITP and ITP Camp


made with Processing
role: concept, code
An interactive installation where the passerby's face is 'extracted' into a bank of faces and replaced with another face from the bank.
With increasing ease of reforming one's physical figure due to medical advancements in plastic surgery, we are all becoming more modular bodies. FaceBank is a commentary on the advancements in technology that allow the augmentation of the senses and the amplification of beauty. What if getting ready in the morning consisted of choosing what identity and face you want to assume that day? Every time a viewer is present, they passively donate their faces to the FaceBank. At the same time, their own faces are replaced by the previous viewer’s face. FaceBank thus makes the act of looking in a mirror analogous to applying a mask. By extracting the faces of the viewers, FaceBank challenges the notion of face, identity and expression.
The face tracking and substitution part of the project is realized with the ofxFaceTracker written by
Kyle McDonald and
Artruro Castro.
Collaboration with Gabriella Levine
made with openFrameworks
FaceBank was selected to be installed at the Tisch Gala 2012


role: concept, hacking the ofxFaceTracker library, code in openframeworks
An interactive sculpture whereby the viewer's hand movements activate and control the rotation of a grid of 48 colorful cubes.
A kinect tracks the hand position of the viewer. This information is sent to Arduino serially which controls 48 servo motors that are attached to the cubes through laser-cut gears. The vertical and horizontal location of the hand is mapped to activate the corresponding parts of the grid of cubes.
Detailed documentation can be found in this
blog post
Made with Arduino, Kinect, Processing
role: concept, code, electronics, fabrication and design
A gesture based game that explores embodied experiences and challenges the notion of the rules in games
The goal of the game is to shoot as many targets on a moon-like world as possible. The only way that a player can 'fire' on a target is to make a squatting gesture. He/she can 'pick up' bullet using only their head. These common gestures seem absurd in the context of this game, making players feel amused and bewildered. The gestures are tracked by the Kinect.
Collaboration with Rose Schlossberg
made with Unity3D, Kinect
role: concept development, building 3D world in Unity, Kinect interfacing with Unity
An interactive installation whereby virtual fish swim towards the user's hand as his/her fingers are dipped into the water.
A Processing sketch is projected upwards onto the bottom of a plexi box — our fish tank. A webcam is mounted underneath to capture images above the tank. Using opencv blob detection we can detect the location information of someone’s hand and this information is then passed into the processing sketch. An electrical wire is placed in the water to create a capacitive touch circuit. So when someone’s finger is inside the water, the arduino will send “1″ to processing hence initiating the movement of the fish.
Collaboration with Manuela Donoso and Crys Moore
Made with Processing, Arduino
role: concept, code (fish animation, openCV)
A custom software that translates dance movements into a 'script' -- a symbolic notation system for the dance.
A series of characters/symbols are generated that have a calligraphy style to them.The dance is based on the motion capture data and examples from the Perfume global project. http://perfume-global.com/
Made with Openframeworks
inspiration of the project: an ongoing study of the relationship between movement and drawing. The study is a series of experiments that explore the idea of using natural movement itself as an improvisation for drawing. See subway drawing and blind drawing in the 'drawings' section
role: concept, code
An interactive wearable sculpture. The sculpture physically embodies the sound energy that is invisible but present. Participants are invited to donate their voice by screaming inside the sculpture. Voices are collected and processed over time and reenacted through audio playback.
The piece attempts to bring awareness to the participant the simple but powerful presence of their own body and voice.
Collaboration with
Ivana Basic
Made with Arduino, Max
role: concept, Max to interface with Arduino, fabrication, electronics
An interactive light installation that translates the noise pollution surrounding 240 Central Park South to a pleasant light sculpture
Located next to the Columbus Circle, 240 Central Park South is the middle of the buzzing activities of this New York landmark location. Microphones are installed in several apartments of the building. Noise data are sampled, processed and send to the iDigi Cloud through xBees. This data was then pulled from the Cloud to drive the lights. When the outside noise is louder, the lights fade out faster hence implying the buzzing activities around the building.
The honeycomb shapes were made with blue foam and wood on the CNC machine as well as laser cut acrylic pieces.
The lights are LEDs programmed with TLC5940 drivers.
Collaboration with Chris Egervary, Alex Olivier and Michael Uzzi
Augmented live video feed
Live video is augmented and fed back to Chatroulette for the other chat user to view in real time
A custom software is written in openframeworks so that it will grab whatever content is underneath the app window. First, using openCV face tracking, I manipulated the pixels around the eyes area of the face. These pixels are copied three times and replaced some other pixels on the face. Then using screengrab app, I can grab live video from any source as long as they are on my screen; therefore the pixel manipulation can happen real time on any live video. Finally, when I am on chatroulette, I select my video source to be Camtwist; my video feed is then changed to whatever I have enabled Camtwist to "see". Camtwist is wonderful. It allows me to select any area of my screen to be live streamed; of course I select (with a rectangle) the area of the video of the counterpart on chatroulette so whala! my counterpart is seeing himself.....albeit with three eyes.
Made with Openframeworks, Camtwist
role: code
original font
generated new fonts
Custom software written in Processing that generates a series of type fonts for Chinese characters
This project explores the potential to use code to create a design system from which a series of varied designs are procedurally generated. The concept of this new type I am creating is a 'simplified', incomplete and modern font for Chinese characters. By tweaking just a couple of parameters in code, a new font is generated. The images here show a few of the outcomes from the more complete ones to the very abstract ones.
The logic / algorithm: an invisible grid is made underneath the character, then for each point that makes up the shape of the character, I check whether that point falls into a cell, if it does, that cell is solid, else cell empty. Since I wanted a simplified and more abstract feel of the characters, only parts of the characters points were selected to make up the new character.
The advantage of such a system is that the rules and code can be applied to any Chinese character. There is no need to individually adjust each character to create a new font ( it would be difficult since there are over 10,000 characters in Chinese ).
made with processing
role: concept, code
click to view larger images
Exploring the possibilities of creating a system for digital paintings instead of making each painting by hand
In this digital painting series, I attempt to make visible an imaginary world. There are two elements to the paintings: figures and symbols/signs. The figures are implying sentient beings. The abstract signs are symbolic of a language system that encodes everything else in the world such as nature, civilizations, cultures etc, in other worlds, all the information in this imaginary world abstracted into signs
Both elements are procedurally generated. Every time the software runs a different painting with a different scenery is generated. The ones shown here are a few of the outcomes
made with Processing
role: concept, code
custom software that generates a different digital painting every time it runs. I wanted the outcome to resemble some kind of imaginary world with alien critters. The colors are designed with the toxiclibs library to give a childlike and cheerful atmosphere. The ones shown here are a few of the outcomes
made with Processing
generative book cover design - using rules to generate variations of book covers
The book is ‘Semiotics of Programming’ by Kumiko Tanaka-Ishii. The book compares computer sign systems with human sign systems, adopting a semiotic approach to analysing the development of computer programs. My concept is to create a page of letter-like glyphs that are suggestive of meaning and therefore a sign system
Below are two of the variations: one is more linear and the other more hand-written and organic
made with Processing
role: concept, code


A custom software that generates new false Chinese characters with each mouse click
Inspired by artist Xu Bing's work 'Book from the Sky' where he manually created four thousand fake Chinese characters and hand crafted into woodblocks, I was curious whether such a task can be done procedurally with software.
An algorithm is designed to recombine radicals procedurally. First the number of layers of a new character is randomly chosen and then within a certain layer a 'structure' (i.e. left /right, top/bottom, outside/inside) and finally a certain radical (i.e. elements and parts that make up Chinese letters) is chosen from a database of common radicals. The rules are made so that the fake characters are structured in the same ways as the real characters.
Made with Processing
role: concept, code
A prototype for a different kind of pop-up book
Traditionally pop-up books function on the 'fold' of the pages. I wanted to experiment making a 'pop-up' book on a bamboo scroll which were the traditional form of books before printed books in ancient China.
I sewed into the paper structures and connected the paper and the scroll with strings that became tight upon full opening. A special type of paper that has a hard plastic quality had to be used so that the paper doesn't crumple when scroll is rolled up.
role: concept, fabrication ( pop-up cubes )