An open hardware platform to help developers, designers, and researchers build the next generation of tangible programming experiences for kids.
Project Bloks is a project I initiated at Google Creative labs in collaboration with Google Research and IDEO. The idea of Project Bloks was to create a universal hardware platform for tangible programming and a reference device that embodied the core principles of the platform. The platform aims to create physical representations of programming concepts to be in tune with the way that kids naturally play and learn by using their hands, building stuff and doing things together.
During the development of the project we spent 3 years in active research that went through multiple phases from understanding inherent cognitive models associated with programming concepts, then exploring how these concepts are manifested in the physical world and designing a universal platform that could overcome the limitations imposed by physical form when working with programming.
The result was was an open platform for designers, developers and researchers will remove the technical barriers that get in their way: so they can focus on innovating, experimenting, and creating new ways to help kids develop computational thinking and a reference device that embodies the concepts of Project Bloks. The project was inspired by previous academic work in the field of tangibles and is still in active research.
Project Bloks was developed by a team over 3 years with research and development. During this time the project went through a number of iterations and prototypes.
Bloks is a modular system for tangible programming made up of electronic boards and programmable pucks — which enable you to send instructions to devices when connected together. It has three main components:
Platform core components
The Coding Kit is a reference device to the platform. It’s a entry level tangible programing experience that allows kids to connect to different devices around the home (toys, robots, tablets, phones) and create sequences of instructions to be executed by the connected device. The Coding Kit has basic programming functions: executing actions, looping commands, making decisions based on data, encapsulating multiple commands into functions. The pucks in the coding kit can be changed to control different devices (in the case below the pucks control the drawing bot Mirobot).
Coding Kit and Mirobot
Physical instructions that can have different forms, interactivity and can be programmed with different instructions (e.g. turn on/off, move left, jump, play music).
When you place a puck onto a Base Board, the board reads that puck’s instruction through a capacitive sensor. You can connect multiple Base Boards together.
This provides power and connectivity. When you connect multiple Base Boards to the Brain Board, it can read their instructions and send them via Wi-Fi or Bluetooth to connected devices. It’s built on a Raspberry Pi Zero.
Research & Development
Learning users patterns and cognitive models
As a first step on the design of our Blocks we did an immersion session with a number of 15 kids of aged 6-9 years old we had some learnings that informed our initial design sprint. These learnings were key to the development of the Coding Kit as they helped define the foundational principles of our experience.
Defining the educational principles to be embodied by the platform
The platform aims help kids learn basic concepts of programming and also to contribute to a higher level understanding of problem solving skills. By playing with the kit kids could would learn the more ‘fuzzy’ concepts of computational thinking well as concrete commands and skills that form basic understanding of programming and are transferable to other languages.
3D printed archetype blocks for language abstraction exploration
Designing a physical programming platform
(1) define the a level of abstraction for the` language and define how logical expressions are formulated with statements, variables and values.
(2) define how structurally expressions are put together to create a logic flow control how the expressions are executed
(3) define how objects are created and addressed and whether we wanted the language to have a degree of object orientation
Experimenting with different design affordances for block shells
Pucks system: making the platform universal
The pucks system was a solution that allowed the Coding Kit to go beyond a single purpose controller to one activity but to give it universality as it can connect and control things in different contexts and longevity as commands can get increasingly complex as kids grow older and keep playing with the kit.
Block and electronics architecture
We created a system using modular blocks that have a capacitive sensor that can read different combinations of signatures imprinted on the back of the pucks. In this way a set could have a defined number of Bloks and have infinite number of pucks. In this way the platform achieved the flexibility of computer software in the physical world.
First electronics prototype with capacitive sensing (16 pads)
User testing and validation
The platform was co-created together with a group of 100+ kids between 6 and 9 years of genders, backgrounds and nationalities that participated in our various user testing sessions
Dummies and prototypes tested
Project Bloks my brainchild that started at Google in 2013 in collaboration with other creatives in Google Creative Lab. I have designed the platform architecture, created the first prototypes of the system and worked as creative and technical director of the team internal and external teams to create the hardware, software of the platform well as the user experience and language grammar of the coding kit in collaboration with IDEO.
Project Bloks: designing a development platform for tangible programming for children
Paulo Blikstein (Stanford University, USA), Arnan Sipitakiat (Chiang Mai University, Thailand), Jayme Goldstein (Google), João Wilbert (Google), Maggie Johnson (Google), Steve Vranakis (Google), Zebedee Pedersen (Google), Will Carey (IDEO).