OLPC Human Interface Guidelines
Introduction
Who Should Read This Document
These guidelines are targeted primarily at developers who are building tools for the OLPC laptop. They provide an in-depth view of the various features of Sugar, the laptop user interface and focus closely on the parts of the UI that pertain directly to software development, particularly the ways in which applications embedded into "activities" interact with the operating system.
However, as these guidelines are intended to provide a comprehensive overview of the user interface, these pages should also be of general interest. Hopefully the descriptions of the various UI elements, particularly in the Laptop Experience section, will quench the thirst of all who want to better understand the project and its goals.
How to Read This Document
Undoubtedly, many who have made it to this page have read at least one set of human-interface guidelines in the past. Nonetheless, we strongly request that you read the content of this document in full. Many of the terms contained within will be quite familiar to you, however, we urge you to review them anyway, since our approach to the user experience shifts away from the traditional desktop. As such, this document may introduce some unfamiliar ideas around such otherwise familiar terms that you should consider throughout development.
Internal hyperlinking...
external links to API...
Core Ideas
Activities, Not Applications
Though it might take a little while to get used to, there are not software applications in the traditional sense on the laptop. The user experience on the laptop focuses around "activities." This is more than a naming convention; it represents the intrinsic quality of the learning experience we hope that the children will have when using the laptop. Activities are distinct from applications in their foci—collaboration and expression—and their implementation—journaling and iteration.
Presence is Always Present
Everyone has the potential of being both a learner and a teacher. It is in order realize that potential that we have chosen to put collaboration at the core of the user experience. The omnipresence of members of the learning community will facilitate children to take responsibility for one another's learning as well as their own. The exchange of ideas amongst peers can both make the learning process more engaging and also stimulates critical thinking skills. We hope to encourage this type of social interaction with the laptops.
In order to facilitate a collaborative learning environment, the laptops employ a mesh network that interconnects all laptops within range. By exploiting this connectivity, every activity has the potential to be a networked activity. We aspire that all activities take advantage of the mesh; any activity that is not mesh-aware should perhaps be rethought in light of connectivity.
As an example, consider the web-browsing activity bundled with the laptop distribution. Normally one browses in isolation, perhaps on occasion sending a friend a favorite link. On the laptop, however, a link-sharing feature is integrated into the browser activity, transforming the solitary act of web-surfing into a group collaboration. Where possible, all activities should embrace the mesh and place strong focus on facilitating such collaborative processes.
Tools of Expression
OLPC hopes to make the primary activity of the kids one of creation, in whatever form that might take. As such, most activities will focus on the creation of some type of object, be it a drawing, a song, a story, a game, etc. This introduces another shift in the language used to describe the laptops, pointing to objects rather than files as the primary form of creative expression.
This emphasis on the creation of objects supports the Constructivist "learn by doing" approach. As most developers would agree, the best way to learn how to write a program is to write one; Studying the syntax of the language might be useful, but it doesn't teach one how to code. With the laptop, OLPC hopes to apply this principal to all types of creation.
Furthermore, this objectification of the traditional filesystem speaks more directly to real-world metaphors: instead of a sound file, we have an actual sound; instead of a text file, a story. In order to support this concept, activity developers may define object types and associated icons to represent them, which will become just as important to the interface as the activities that create them.
Journaling
The concept of the journal, a written documentation of everyday events, is universally understood, albeit in various forms across cultures. More importantly, a journal typically chronicles the activities one has done throughout the day. For these reasons, OLPC chose to adopt a journaling metaphor for the filesystem as an altogether new approach to file organization. While the underlying impementation of such a filesystem doesn't differ too drastically from some of those in contemporary operating systems, it also holds less importance than the abstraction itself, which certainly does.
At its core, the concept embodies the idea that the filesystem records a history of the things you've done, or, more specifically, the activities you've participated in. It's storage of the objects created while performing those activities is secondary, though of course also important. Of course, though many powerful means of sorting and filtering the entries will exist, the journal naturally lends itself to a chronological organization. As a record of things you've done, and not just the things you've saved, the journal will read much like a scrapbook history of the children's interactions with their machine and also with thier peers. The journal will combine entries explicitly created by the children with those which are implicitly created through use of the laptop and participation in activities, which also means that activities must think carefully about how they integrate with it, moreso than with a traditional filesystem that functions independently of an application. On the laptops, the activities, the objects, and the means of recording both tightly integrate to create a different kind of computer experience. To learn more about the benefits of the journal as a temporal filesystem, see the Journal portion of the Laptop Experience section.
Design Fundamentals
Know Your Audience
- Inexperienced
- The goal of OLPC is to provide children with new opportunities to explore, experiment, and express themselves. Many children in need of such opportunities have previously had little or no access to such technologies, and so will be unfamiliar with the laptop and how to interact with it. This will undoubtedly have effects on some aspects of activity development. On one hand, it means that developers must focus a fair amount of energy into making interfaces wholly intuitive, building metaphors that strengthen and clarify the interface based upon real-world ideas. On the other hand, since many of the children will see a computer for the very first time with the laptop, activities don't have to worry too much about behaving the way current applications do on other operating systems. This frees developers to innovate, since particular features needn't behave exactly the same way they do in a current OS due to users' expectations (except, of course, in cases where they would expect it to work that way based upon the aforementioned real-life metaphors).
- Young
- Many children will receive the laptops at Kindergarten age. This is, in fact, a great opportunity since children at such an age are impressionable and have strong desires to explore and learn, and the laptop should provide another tool for doing so. However, though the children will receive laptops at an early age, they will also keep the same laptop throughout their schooling. Therefore, it is important to develop activities in ways that scale to teenage audiences as well. Of course, if designed well, these activities should be both entertaining and useful to an audience of any age.
- International
- The OLPC initiative, by its nature, requires international involvement and participation. Developers must keep in mind the broad range of cultures and languages that the laptops must transcend. In particular, activities should not depend on western icons and modes of thinking, but should abstract ideas to a level that would be familiar to humankind in general, where possible. For instace, consider the camera button on the keyboard. Though one might be inclined to label this key with a small image of a camera and lens, the eye graphic speaks directly to our human capacity for vision, providing a cross-cultural icon that represents the compute's ability to capture what it sees.
Key Design Principals
- Performance
- Usability
- Simplicity
- Reliability
- Adaptabilty
- Interoperability
- Mobility
- Exposability
- Accessibility