The cookie machine is a network-attached device which stores primary cookie-making ingredients, including flour, baking soda, brown sugar, granulated sugar, oatmeal, chocolate chips, cinnamon, and vanilla extract. A small refrigerated section of the machine also stores "egg product" and milk. This
monstrosity sits atop a large toaster oven.
A request to prepare a batch of cookies is received through the network connection. A challenge/response mechanism lets the sender negotiate what to do if a particular ingredient is unavailable or not supported by this model of the machine. This request contains an XML definition of ingredient amounts, order to add ingredients, mixing times, mixing speeds, cookie size, cooking temperature, and cooking time. Batch size is determined by the device, based on the size of its baking chamber.
When a request is dequeued, the ingredients are dropped into the mixing chamber and blended according to the definition. The appropriate amount of dough is then squeezed through an orafice at the bottom of a bowl onto a motorized arm. The arm deposits the dough in an offset grid pattern on the baking tray.
The baking cycle commences and the oven shuts off once baking is complete. The user removes the cookies from the oven and cleans the tray. Once the tray is replaced, the next batch of cookies may be dequeued.
A slick graphical web interface is provided, illustrating each stage of the process. Users are notified when ingredients run low. More elaborate models of the machine take up more space and offer additional ingredients. The machine also comes preloaded with default cookie definitions which can be explicitly enqueued by the user. A multiplatform GUI client application allows users to manipulate cookie definition files, providing recommended preparation instructions.