How's everything going?

My name is Karen Peng 彭嘉颖.

In a beta mode at ITP NYU + Recurse Center.

Welcome to my lab! Let's play and have good fun.


A emotion & gesture-based arpeggiator and synthesizer.

motionEmotion uses the webcam to detect points of motion on the screen and tracks the user's emotion.

It draws triangles between the points of motion, and each triangle represents a note in an arpeggio/scale that is determined by the user's emotion.

It's a collaboration with Jason Sigal at nyc music hackathon.

I came up with the original idea, worked on graphics and motion detection, and Jason worked on sound design.

Technology: getUserMedia, web audio api, clmtrackr, Tone.js, canvas, javascript

See my Experiment on ChromeExperiments.com


Google+ IO Display

An animation- and community-driven LED display for Google+ during Google I/O 2014.

For Google I/O 2014 I participated in the development and worked with my team to design and implement an animation- and community-driven LED display for Google+.

The display showcased Google’s new Material Design brand styleguide and the newly released Google+ Stories feature.

As a technologist intern in Big Spaceship, I worked closely with visual designer and Cinder Developer, worked out concept and designed and particle systems for the display.

I'm responsible for the particle system animations.

Technology: Cinder, C++, Node.js, javascript

Case Study

Photo credit: Naim Sheriff, Thomas McCabe, Alexander Rea, Chris Fahey

FPV Code

Two-player real-time coding game.

FPV Code is a two-player coding game.

In the game, you have to write instructions for your character to reach the target.

There are obstacles along the way and you are also competing with your friend against time. You can see your friend's code but there's no way to cheat.

It's like a visualization of for loop, in order to help people understand coding in more sense.


Technology: Three.js, ace editor, Node.js, web socket, webGL, canvas, javascript

See my Experiment on ChromeExperiments.com


Drawing Script

Ridiculous Programming: draw like in the wild space, type like in a terminal.

This is an experiment about combining coding and drawing.

Use your free hand drawing as an value input, and then code on these drawings, to assign values to objects and make them animate.

Drawing is so free that the only limit is your imagination, coding is so rigid that it's all about order and logic. My curiosity leads me to experiment between these two.

Technology: peg.js, plt.js, canvas, javascript



I'm still figuring out what to do with it, if you have any idea, don't hesitate to email me <3 !

Yoda Newz

A site for querying newz from Yoda, also a twitter bot sending you newz.

Newz, Yoda tells you, yessssss.

Yoda Newz is a terminal like website, in which you can query news by date. Yoda will tell jokes sometimes.

It's also a twitter bot @yodanewz, which tweets a piece of newz every night.

So how does Yoda select news?

Hummm...it actually chooses between new york times, hacker news and reddit shower thoughts. No one knows which one he's gonna choose tonight!

All the newz are saved in a database for user to query from the website.

Technology: Node.js, mongoDB, ajax, a lot of APIs, css, javascript



Yellow Tail

Magical multi-user drawing experience.

Watch your drawing comes to live!

Yellow Tail is a multi-player drawing experience. Use your touch-based device to draw anything, shake it and your drawing will move on your laptop. What's more, you could play with your friends, use your imagination and have good fun!

Technology: DeviceMotion events, Node.js, socket.io, canvas, javascript

See my Experiment on ChromeExperiments.com



A social experiment.

Gaze is an experiment in which users open their webcam and see their eyes being drew on the canvas.

And later, the eyes on the screen change, they no longer follow users' eyes, it's somebody else's. While users are watching the 'other' on the screen, their eyes movement are actually being recorded.

It's like a conversation between the one inside the computer and the one in front of the computer.

In the end, users will be navigated to another page where they are able to browse through all the eyes stored in the database.

It's like a time machine, seeing how the conversation is being carried on.I'm curious if the eyes history will eventually converge towards similarity.

Technology: Three.js, webGL, GLSL, canvas, Node.js, web socket, MongoDB, eye tracking

Coming Soon



A two-player voice control shooting game.

Watch out for the crazy sound! Use your voice to poke the jell-o, and shoot your friend!

Noisee is a two-player voice control game. Use your own voice to make the jello jump. What's more, you could play with your friend and shoot each other.

Technology: WebRTC, web audio api, Node.js, canvas, javascript

See my Experiment on ChromeExperiments.com


Your pitch determines how height it jumps, and your volume makes up your bullets' size.

Cooperate Quilt

A multi-player drawing game.

Sew a quilt with crowd.

Cooperate Quilt lets people mix color with RGB, and fill in the grid with the color they mix. What's more exciting, it can be played by multiple players in real time. Invite your friends to sew the quilt together! See what you will get!

Bonus: click the bottom left corner of the canvas and press any key, save the quilt you just creat!

Technology: Node.js, canvas, javascript


ITP Quilt

This is what's going on when my team invite our class to play it together in ITP.

The result turned out to be awesome! And yeah we have an ITP quilt now!

6 Billion People

A drawing tool and also the gallery of these drawings.

If I ask you to draw a human face, who will you draw?

6 Billion People is such a tool to help people draw human faces, and also an on-line gallery displaying these drawings.But in fact, people aren’t really "asked" to draw human faces, instead, they see human faces themselves when clicking the mouse, causing some of the circles on the screen moving and forming a blur profile.

Data of the author and also the drawing are collected throuhg crowdsourcing , allowing us to explore the relationship between these two.

It's still ongoing.

Technology: canvas, javascript, php, database



Umipay Mobile App

An application which enables users to earn "money" in their virtual account and cash it into selected applications.

Umipay is a tool-typed application produced by Youmi Moblie Co. Ltd.

It mainly serves three functions: earning, storing and cashing "money" of virtual account. It connects with various android applications' account systems, thus users can have flexible choices on their "money" disposal.

It also provides users with different sorts of mini tasks to earn "money", such as downloading new applications and playing online games, making the earning process painless.

For users, it builds up a system for virtual currency circulation, and for developers and advertisers, it also creates a system of user volume circulation.

Working as an interaction designer, I contributed in research, concept development and interaction designing.

Role: Interaction design, User experience design and some information architect




The early concept design and wireframe for Umipay. Main functions were listed and organized by pages:

1.1 Pages list

1.2 Mini tasks to earn money

1.3 Applications try out

1.4 Applications sign in

1.5 Online games try out

1.6 Online games introduction

1.7 Official tasks

1.8 Phone recharge

1.9 Advertising check out

Further interaction design in flow paths between pages.

User experience and visual expression were highly considered in this procedure, and some of the original designs were adjusted.

Umipay Promotion Site

The promotion web site for Umipay application.

Umipay application's promotion web site, explaning what Umipay is and how it can improve users' virtual currency using experience, motivating people to use it.

It is a light-weighted project and I contributed to most of the work: from concept development, interaction designing, copy writing, visual designing, to part of the front-end programming.

Role: Interaction design, UX and UI design



In the slides, it raises three problems which a user might occur to when using different applications and managing different accounts:

1.Lack of a weapon in a game. 2.losing "money" when application deleted. 3.Being worried about the source of income.

On the right side, it offers a simple solution---Umipay application, and provides apk download button.

Then in the middle of the page, it explains how Umipay may perfectly solves these problems:

1.Connecting with many applications' account systems.

2.Cashing your "money" in the application you choose so as to buy the things you need.

3.Abundant ways to earn "money" for your virtual account.


Wireframe for the site.