Competitive shopping game

In collaboration with Kati Hyyppä for ENIAROF #32

Marseille, 2022

Competitive powershopping attracts young and old people alike

The game

Bonprix is the twisted re-creation of a supermarket’s self-checkout as an exciting arcade machine. The goal of the game is to shop as expensive as possible, within a limited amount of time.

During the game, players have to quickly scan as many items as they can with the installation’s built-in barcode scanner. A screen above the scanner shows which random piece out of a stuffed shopping basket has to be “bought” next. There’s a great variety of products available: cheap things, like an old Baguette, or tasty Spaghetti Bolognese in a can, but also expensive luxury items, like a glamorous Louis Vuitton bag and precious Dolce & Gabbana sunglasses. Every two seconds, the product on the screen gets a discount and its price drops. But Bonprix is all about the total sum on the final bill, so you better buy fast and avoid the discounts if you want to fight for the highscore!

At the end of the game, each player is rewarded with a happiness-inducing dopamine-high, caused by a perfectly simulated shopping-spree and a printed receipt proves the player’s hard earned score in Euros and Cents.

The self-checkout arcade cabinet in its full glory
Rich selection of quality products at Bonprix
The rock hard “Baguette du Jour” suffered a  lot.
It had to be fixed everyday with hot glue and tape
1.023,82€ total shopping score, however the bag was 50% off

How it works

The hardware of the game consists of a checkout-desk that we have built out of a few old palettes. The rough construction is covered by cardboard onto which we glued silver checker plate decoration foil. Enclosed by the cardboard is an old convertible laptop, running Linux, and a cheap handheld barcode scanner, which is connected to the computer via USB. The scanner presents itself to the computer as a keyboard and the laptop receives scanned barcodes in the same way as it would read regular keystrokes. The barcodes for the products were created with an online barcode generator website.

Photo during setup: A few old palettes make the basic structure
Photo during takedown with cardboard covers ripped off: The Laptop mount on top and the “NetumScan USB 1D” barcode scanner below

To give the installation an inviting look, we used some WS2812B programmable LED strips for light effects. An Arduino Nano controls the LED’s which we put below the scanning surface and around the transparent “Caisse 1”-sign. When the barcode scanner detects a barcode, its internal LED blinks twice. This blinking light is detected by a photoresistor which is connected to the Arduino and a much brighter flashing of the LED strip in the scanning area is triggered. The green flashing clearly indicates to the players that a barcode was detected successfully and makes the whole scanning area look quite legitimate.

The schematic and circuit board for reading the barcode scanner's LED and for driving the WS2812B LED strips
“Caisse 1” - the illuminated sign was made out of leftover plastic with a LED strip taped around it

With another Arduino Leonardo, we read the state of the start button. The Leonardo also presents itself to the computer as a USB keyboard. Whenever the start button is pushed, the microcontroller sends the string “StartGame” as simulated keystrokes to the laptop and a new round of highspeed shopping begins!

When fellow ENIAROFer Guillaume Stagnaro saw our project, he donated a secondhand thermal receipt printer module which was previously used in an ATM. The small unit is also connected via USB and is recognized by the computer’s operating system as a normal printer. The paper receipts round up the simulated shopping experience quite nicely. Merci Guillaume for this little treasure!

A look inside the box with Guillaume’s thermal receipt printer “Custom TG2460”
Backside of the screen from left to right: Arduino Leonardo, USB-hub, Bluetooth speaker

Last but not least we wanted to have a good sound. So we also added a bluetooth speaker to the setup. Basically, the whole electronics is simply just an old computer with a few things attached to it via a USB-hub. No big deal. Now let’s have a look at the software:

The program for Bonprix was written in Javascript and we ran it in Firefox. We chose Javascript, because it is cross-platform and it can handle the display of text and photos easily. Furthermore, it is simple to read keystrokes and to play sound samples and I actually like to code in JS.

Printing the receipt via Javascript works simply by calling the “window.print()” method. With the CSS “@media” rule, we designed two different documents - the game screen, which is shown on the laptop monitor and a completely different one which is printed as a receipt. Usually, there’s a dialog box opened when the browser wants to print something, but of course we wanted the printer to spit out receipts without user confirmation. Thankfully, this dialog can be suppressed in Firefox by first entering “about:config” in the URL bar and then setting the boolean “print.always_print_silent” to “true”. VoilĂ .

You can find the source codes for the game further down below, at “additional resources”.

Unfortunately we had to waste quite a bit of thermal paper until we got the design for the receipts right

ENIAROF & Les 8 Pillards

Bonprix was part of ENIAROF #32, an international DIY fun fair, founded by Antonin Fourneau. During one week in late April 2022, about 60 people prepared all kinds of games and attractions around the theme “Laborious Games”. We opened the doors to the public on the weekend after, which included also 1st of May, the international workers day.

Our DIY fun fair took place at “Les 8 Pillards”, a former factory for industrial burners, which has now turned into a huge art space.

The former Pillard factory is now an art place which hosted ENIAROF #32 “Laborious Games”
Les 8 Pillards, a few hours before the opening
L’équipe ENIAROF

photo by Manuel Braun


Big thanks to Antonin and Thomas for organising this event, to all Eniarofers for their exciting contributions and to everyone at Les 8 Pillards for being so warm and welcoming! Special thanks go out to Guillaume for the neat little printer! We had a great time in Marseille and hopefully, we are going to do another ENIAROF together in the future at Les 8 Pillards!

Additional resources