More selected projects

The Happy Computer

Callum Fowler


The Happy Computer is an interactive installation designed to place the computer as a friendly entity that people can communicate with. Human-computer interaction (HCI) is the main focus of this project as it highlights the relationship between the two entities. I was interested in developing a system which did not rely on voice, but instead uses gestures to communicate. By removing our primary form of communication, I have limited the user to work with the computer as opposed to the computer working for them. This creates an unusual dynamic in the human-computer relationship. Usually software and computers are designed to accommodate to the human, automatically giving it a lower status. This system is designed to give equal power to both the human, and the computer.

The system’s name is Happie, this is the entity the human reacts with. The aesthetic design for the system has been designed to be simplistic and minimal. Hexagonal patterns, which grow and shrink over time, create the background, with the conversation being displayed on top. The conversation is a casual conversation. Happie’s dialogue is designed to be friendly and calming. I also created multiple dialogue paths to make the conversation feel dynamic and unique. It also encourages users to interact with it multiple times. I have also composed a soundtrack for the installation, which further supports the caring, calming nature of Happie.

I have used the concept of dialogue trees, commonly found in video games, to create the conversation. Dialogue trees give the illusion of a dynamic conversation between the user and the computer. I have achieved this by using the idea of a ‘key’ and a ‘message’. Each message (and their respective choices) have a unique key assigned to them, as the user answers questions they generate a key. This is all handled by multiple map data structures. One issue with using this system to generate dialogue trees is that as more layers are added the amount of alternate endings grows exponentially. For a future version it would be interesting to look into other ways to dynamically generate the trees.

Another key idea I wanted to achieve with this is to make an efficient system, ideally keeping an average of 60fps. Originally I had planned to use pixels to create a flowing background. However, without using shaders, my machine had dropped to 20fps which made the whole system feel sluggish and unresponsive. I decided to change my aesthetic and create a grid of hexagons. This created its own issues, mainly due to the fact that openFrameworks does not have a hexagon shape so I had to create my own class. This class was built after reading a tutorial about hexagonal grids ( The tutorial gave me the basic code to generate a hexagon and also how to position them in a grid formation. The final design looks more interesting than the original “lava lamp” idea, and this change also makes the system more efficient as it runs at 60fps.

I decided to give the user really basic instruction to interact with the system. “‘Lift an arm to have a chat.’ - Happie”. I do not want to give too much information away about the nature of the conversation, or the system’s personality. However I do want it to invite people to engage with the system and explain all the information they need to reply. Another challenge was making the dialogue engaging. While it is not the most in depth conversation, it does have a casual and fun nature about it. The limited replies the user can give also allows them to try and experiment and see what different answers will create.

These interactions between the user and Happie presents computers as a friendly entity that can have natural conversations. I am interested in taking this project further. It would be good to see how larger dialogue trees could create more complex conversations. As I touched on earlier, the music has been composed to reinforce Happie’s personality. An adaptive soundtrack would also be interesting to introduce if the dialogue trees were to grow. In its current form The Happy Computer is a fun installation which encourages users to interact with it, and it has plenty of room to grow.