(We are entering the Most Entertaining Hack)
We want to make people happy through a chatroom. Usually, people cannot tell emotions which the other person is feeling. However, we realized that we can augment chats through a game style atmosphere using emotion recognition.
What it does
Users can create or join existing chatrooms to play the game. Initially, users are assigned emotions to evoke in the other users, through text messages. A user wins if he/she successfully invokes the assigned emotion in the other user before the other user manages to do so. They can attempt to evoke emotions through chat messages creatively. Emotions of users are captured using their webcam, and processed locally using Microsoft Azure API to evaluate the composition of emotions from facial features.
How we built it
We built our web application on flask framework. Socket.io is used to handle the server and client connections to the webapp. Messages are sent between users in a chat room, handled by socket io. User webcams take regular screenshots every 6 seconds, which is sent to Microsoft Azure API for emotion recognition, then results are passed to the server, which then checks whether users "win" or "lose".
Challenges we ran into
Flask redirects wipes session memory by default --- resolved by combining pages
Accomplishments that we're proud of
Having a working game client and server on localhost. Building a fun and interactive game :)
What we learned
socket.io is not fully supported by flask.
What's next for Chaticon
Adding multiple users in a chat room. Uploading GIF, image or videos into the chat space.