About‎ > ‎


Over the last decades, the number of computers that we are using during our daily activities has been increasing continuously. Although, their interfaces have been getting better over time, we are still have to manually configure each device and each application so that they meet our preferences. Thereby, our preferences may change over time and they may depend on the situation which spawns the need for frequent manual reconfiguration. Too often, this causes significant distraction from the actual task that we want to accomplish with them.
With the advent of mobile devices, the problem that existed once only when we were sitting in front of a desk is now following us everywhere. When we participate in a meeting, we have to turn down the volume of our phone. When we leave the meeting, we have to remember to turn it up again. When we want to exchange business cards, we must manually turn on Bluetooth and we should not forget to turn it off afterwards - to ensure privacy. When arriving at home, we should not forget to re-charge the batteries and before we leave, we should synchronize our data so that we have everything when it is needed.

An important cause of the need for manual configuration is that our devices lack a thorough understanding of their context, such as their location, our current activity and mood as well as our future plans. At a first glance, this may seem quite surprising, given that we are already using mobile devices to organize our whole life. But usually, the information contained in task lists, calendars or social networks only provides an imprecise and very coarse grained picture that cannot be used for precise and fine-grained automation. Yet, this does not stop developers from trying to automate the configuration - which may work sometimes but often results in unexpected device behaviors.
To develop a more desirable form of automation, we must empower our devices to capture the actual state of the world. Enabling this on a large scale by providing a flexible platform with the associated developer and end user tools is the the over-arching goal of the NARF project.

Continue reading about the project's challenges ....