ITP Stuff


by Yang Liu on Mar.03, 2011, under ITP Stuff

Kinect Interaction

3D blob – Fake

338 Comments more...

Thesis Statement

by Yang Liu on Feb.17, 2011, under Thesis



I have two degrees in my undergraduate study, which are Material Science and Engineering and Digital Entertainment Design. I always want to make something that people can play with. During ITP, I mostly focus on the web development.


Artificial intelligent machines have been in the si-fi movies and fictions for a long time. People always wondering what will happen if machines can have their own feeling and mind. Nowadays, besides the real-world life, people also have online life, which is their online social network. On the online world, people have their unique identity and activities. So I think it will be interesting to simulate people’s online behaviors through AI algorithm.

Avatar is an online Artificial Intelligent Social Network System, where users can register, setup, train their own online chatbots — Avatar. The Avatars will take all the information of users’ SNS sites (like Facebook, Twitter and Foursquare) and analyze them. Based on the SNS data, and a series of AI and machine learning algorithms, the avatars will eventually speak and act as users themselves. Users can interact with each others’ avatar and also avatars can interact with each other. The goal of this project is to simulate an online social network community and in the same time provide a online-self which will never go offline to the users.



In the movie Terminator, a question was asked:

Whether AI machines can take over human beings?

What I want to discuss in my thesis is not simulating human beings in the real world but in the online world. Basically, the question I want to answer or explore is like:

Whether AI machines can simulate the people’s online behaviors, such as posting, chatting or checking in?


Another inspiration is the online chatbots, including the webbased chatbots and the IM spammers.

There are two project which are interesting.

A.L.I.C.E is one of the most famous chatbots online. She is based on a technology called “AIML”. What she does is when users ask her some questions, the program will search in this giant XML library which contains tons of different “dialogue” and pick the appropriate answer for the question.

Pandorabots is based on the same technology of A.L.I.C.E. It is a online chatbots community where users can host their own chatbots. And users can teach and train their chatbots by editing the AIML properties.


The social network website is the “behavior data” source for the thesis project. And these data can represent people’s personalities in some level. Therefore, the system will get the data from all these sites and analyze them to understand different users’s behaviors and personalities.


The AIs in the game SIMS is like the goal of the thesis project, in some level. They can interact with each other and make decisions. But I am never a fan of the SIMS, because I don’t care about the virtual AI people in the game. Whether they get married or not isn’t matter to me. But if the AI people represent the people I know in the real world and act like them, I will care what is going on about them.



First of all, I think the whole “taking over human beings online” concept is fun. And it is really interesting to make something based on this concept.

Can a online program speak and act as yourself online?

Taking over human beings in the real world is a way too big topic for the thesis. I need to consider whether the voice is like human voice, whether the facial expression is like real and all other things which will take decades to achieve.

But people don’t have that much “characteristics” when they are online. What people do is posting contents, comments to other people’s posting, updating status and checking in different places. If we can analyze these data and generate new contents for users, we can properly find a way to make the program act as a human being online.

What will happen when AI bot interact with each other?

The ultimate goal of the project is no one will use it. All the interaction will happen among different avatars. And it is interesting what will happen, like whether there will be a trends among them or whether they will become “friends” with each other.

Can you live forever online?

People die. But with this project, their online life will be immortal. The program will keep running even if the actual person is dead. So, other people can still interact with them.


Servlet — Where the applications run

Because some of the library/frameworks are in JAVA, I need to install servlet on my server. Also I need to integrate the JAVA servlet and other parts of the sites.

Social Network Framework — The structure of the whole site

Thera are a couple of open source social network frameworks. I chose the Elgg to be my main framework. It is easy to set up and very flexible to add my own functionalities.

Social Network APIs — Where the data comes from

The data sources are different Social Network Websites, such as Facebook, Twitter and Foursquare. The way to get the data is using their APIs and integrating them with my own site.

Machine Learning/Natural Language Processing — Data analyzer

With appropriate machine learning algorithm, a program can analyze people’s online behaviors and try to simulate them.

Alchemy is an open source AI engine which can be used for this project. I think it can be used to analyze and learn about the users’ behaviors but I need to do some more research to decide whether it is good for my site.

Lingpipe is an open source text processing engine/program which can do topic classification, sentence detection and logistic regression these natural language processing tasks. Through this, the site can get what the topic of users’ daily conversations or what is their interest, in a form of keywords.

Recommender System

Recommender system is an online system that recommend different contents to users based on their former behaviors, like Amazon, Dell are using these systems to send the promotion emails.

easyrec is an open source recommender engine which can be used for this project. It is in JAVA. It will recommend different contents for the users based on their online behaviors. For my site, the recommendations will be based on the result of the data analyzations.

This will work with the Lingpipe. Based on the data from


AIML is a open source project for online chat bot. It is basically a XML library which contains thousands of different sentences/pattern of natural language. When users ask a question to the AIML system, the program will search the library and find the appropriate answer to the question. And  users can train the chatbots by modifying the XML library.

AIML can be implemented by different program languages. Because eventually it needs to be integrated with the SN frameworks, PHP implementations will be a good choice. There is an open source project called Program O which works quite well.

424 Comments more...

Mobile Media Midterm Concept- Meet

by Yang Liu on Oct.05, 2010, under Mobile Me(dia)

“Meet” is a Location-Based Service which helps people communicate with strangers and become real-world friends.



First, let’s look at the current SNS sites: Facebook, Twitter, MySpace. I call them “Friends” based service. On those site, the most often used way to connect with other people is adding them as your “friends”. The websites want people to engage in this “long-term interaction” with other users. But, how many of you “friends” are your real “friends”. At least for me, not much. And Dunbar agrees with me.

“You can have 1,500 friends but when you actually look at traffic on sites, you see people maintain the same inner circle of around 150 people that we observe in the real world.”  — Dunbar

The Dunbar’s number is a theoretical cognitive limit to the number of people with whom one can maintain stable social relationships. The commonly used number is 150. And the social networking didn’t actually increase this number. In according to an unofficial research from Aol. Only a very limited people in your facebook friends list are you real friends.

Therefore, most of your facebook friends are just strangers or acquaintance. And they are much more than your “friends”.

Also, think about how many strangers you can meet each day, on  subways, on streets and in the restaurants. A lot! And you might meet some of them more than once, which you don’t know. These strangers and acquaintance are all your potential friends or social interaction which can happen.


Then, let’s take a look at current LBS sites, such FourSquare, Gowalla and Yelp. Actually, you don’t have much to do on these sites. You can checkin, write tips/reviews about the places, get badges, set to-dos. And that’s it. The interaction between users is not rich enough. This is also why these LBS are not as sticky as Facebook.

Another problem of these LBS sites is they are location-centered but not people-centered. Users can get information about the loaction like how many people have been here and what do they think about these places and sometimes the reviews are two years ago and the restaurant is not there any more. However, people don’t know where other people are and what they are up to unless they “shout” it out. Eventually, these sites will get people interact more with places but not other people. Plus, they have the same “friends-based” problem with other SNS sites.

What I want to do is an LBS application which encourage people to interact more with other strangers and give them more chances to get to know each other and become real world friends.

What is Meet

First, it is a LBS application. It is born to be a mobile application. The different between Meet and 4SQ and Yelp is Meet is “people-centered”. When people publish their Meet message, they have two choices. One is pinning the message on the current location, like Yelp and 4SQ, but the message have a life span such as 5 mins, 1 hour or “as long as I am here”. During this amount of time, all the other users can see your message. They don’t have to be your “friends” on Meet. They can reply your message and chat with you without making a commitment to become “friends” even if it is a fake friendship. We encourage this kind of “one-shot” interaction on Meet. After the message died, it will be archived and won’t be shown on the real-time map. In this way, people will get the latest information about the place and can always communicate with the people are not far from here.

Another choice is you can take the message with you. It is like a floating bubble on your head, such as in MMORPG games. So that, the message is not only about the location. It is about where you are and what you are thinking. After that, you can “drop” the message wherever you want.

Second, Meet is an SNS application. However, you don’t need to add any one into your “friends list”. And in fact there is no such list in Meet. The way user can keep track of there Meet-relationship is done by Meet itself, automatically. Meet will remember all the people you met and give you an alert if you meet a person say, more than three times a week. So that, you will know you and he/she share a similar schedule or places preference. And next time you meet each other you can properly start a conversation/chat with him/her.

Last but not least, Meet can connect with other SNS account, like FB, 4SQ, TW. That doesn’t mean it will import your friends on FB into Meet, but means you will get alerts when you and your FB friends are in the same place.

Here is a list of the key feature of Meet, for now.

  • Loaction-based, People-centered. The app will keep track of your location.
  • Stranger-based. It will encourage you to chat will strangers.
  • Pinning, carrying and dropping messages in the location where you are at.
  • Keep track of your relationship with strangers.
  • Connect with your other SNS account. Turn more strangers into real friends.

How to create Meet

Eventually, it will be a native app running on the mobile platform. In the midterm, I will create the basic functionality in a web app. Such as location detecting, publishing message, the life span of the messages and the summary of stranger relationship, etc.

Dunbar’s number

Only a Tiny Fraction of Your Facebook Friends Are Real

How Many Facebook Friends Do We Have, For Real?

274 Comments more...

Mobile Me MMS Assignment

by Yang Liu on Sep.28, 2010, under Mobile Me(dia)

This week I wanted to make a photo-trading app.

Users can send mms or email to and include an image as the attachment.

After sending the mms of email, users will get an email including a random image which is sent by other users.

Unfortunately, I didn’t finish it. I spend to much time on sending the attachment via php. Now user can get an image, but not a random one. And I need to run the php script manually. I will fix these problem these days.

294 Comments more...

Meeting Assistance for ITP

by Yang Liu on Sep.14, 2010, under Mobile Me(dia)

As we all know, we have lots of group works in ITP. Sometimes setting up the time for the group meeting is a headache for us. Here are some ways we are currently using or can be used.

  • Talking with each other face to face.
  • Talking with each other via phones.
  • Setting up meeting via email.
  • Setting up meeting via online tools.
  • (Maybe) Setting up meeting via iCal.

There are all good ways, but also have some problems. For example, somebody is not often on the floor, so he/she is very difficult to catch. Somebody is in the subway, so he/she is not reachable via cellphone. Email and online tools require internet and are not quite real-time, cause you have to check you email to get the update. Setting up a iCal Server is a good way, but it is not easy to do.

I want a way that is true real-time and easy to do, so that people can set up the meeting and get the info immediately or as soon as they exit the subway.

Introducing the Meeting Assistance(MA) for ITP.

It is an SMS service that people can set up and update the time for group meeting and send messages to group members automatically.

The basic function of MA is listed as below:

  • Setting up time for group meeting.
  • Registering group members based on cellphone number.
  • Updating the time for group meeting.
  • Sending messages (and emails) to group members.
  • Sending alert message before the meeting.

Basically, it is like writing command line through SMS. You type in something like:

<command> [<note>], <command> [<note>], <command> [<note>], …

For example, you want to set up a group meeting and register the group members so that MA can send messages to them.

You send the following SMS to 41411.

MA-setup 6pm Sat, MA-group mobileme, MA-register

This means you set up a group called mobileme which have four members including yourself and you will have the meeting at 6pm on Sat.

After you send this message to 41411, the server will save the information to the database and send messages to all of your members which are ###. What the script does is parsing the message you sent before and look for the keywords like “MA-setup”, “MA-group” and “MA-register” and write the information into different section in the database.

After that, all the members can suggest another time for the meeting by referencing the name of the group, but only the founder of the group can update it. For example, I am not available at 6pm on Sat, so I want to reschedule to  7pm on Sun. I can type in the message like:

MA-suggest 7pm Sun, MA-group mobileme

After that, other members will get a message like:

MA-mobileme-###-suggest 7pm Sun, Y/N?

You can reply the message by “Y” or “N”. The server will save everyone’s reply. If all the members are cool with the new schedule, the time for the meeting will be updated and all the members will get a message about the new time. If not, members will get a message which says suggest failed and they can try to set up another time. Or, the founder can update the time. He/She can type in:

MA-update 7pm Sun, MA-group mobileme

At last, before the meeting, all the members will get an alert sent by the server.

MA-group-mobileme-meeting-at 6pm Sat

Also, you can type in “MA-help” to get help information of MA.

These are just some initial thoughts. There must be tons of errors in it. You are welcome to give any advice.

285 Comments more...

GLART_01 Hello GL World

by Yang Liu on Jan.27, 2010, under GLART 2010

This is the first week’s assignment. I just played with the jogl a little bit, nothing complicated.

Here is the key map.



Control the  “eye”



Control ont of the point of the triangel



Control the second point of the triangel



Control the third point of the triangel


Control the yellow point


235 Comments more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...