Luroxin Home

Visitor Engagement Arcade Cabinet

Date: 2023   Status: Completed (for now!?!?)
Project banner image

I participated in a Teen Enrichment Program at the Kid Museum in Maryland. It was a pilot program where 12 teens were assembled to work in a 2-week summer intensive project.

The gist of the assignment was that the museum analytics team wanted some way to gauge visitor satisfaction in an engaging way. The ages of visitors at this museum were anywhere from kindergarteners to adults. Shoving a QR code with a link to a survey in anyone's hand, especially a kindergardener, is not a successful way to understand if patrons enjoyed exhibits.

We were split into 2 groups, and each group had to brainstorm fun ways to measure emotion. My group ended up with the idea of an arcade cabinet. The special part of the cabinet was the interaction. Visitors would walk up to the cabinet, drawn by how entertaining arcade games can be. While they are at the cabinet, they read the prompt, and press one of the three glowing buttons corresponding to an answer. Marbles of that answer would then be spawned onscreen to run down digital marble tracks. 

the marbles running!

This was advantageous for several reasons. If many people respond in a day, just by looking at the accumulated marbles, we are able to see the general emotion of the exhibit. The buttons being colored makes it intuitive even for young visitors that can't read. The whole idea should outpace any traditional surveying method.

I was in charge of coding simulation, wiring the buttons, and getting button presses to correspond with the digital marbles.

There were many issues to consider. One was that users might spam the buttons and skew the results. I addressed this by adding a cooldown. When buttons were consecutively pressed more than 5 times, a message would display on the screen:

Thank you for your response, please play again on your next visit!

After some time passes and the user walks away, the message would disappear and everything would resume.

Another was that after a lot of responses, the tracks would be clogged with marbles. I had the idea of adding a physical reset switch on the back of the unit, which would tell the program to clear all the balls. I also toyed with the idea of having a "drain", when marbles pile too high, they would enter the drain and despawn.

Project banner image

Overall, I used the entire 2 weeks to produce a C++ program utilizing the box2d physics engine and the sfml graphics library. One of my main challenges was pivoting from compiling the program on Linux to Windows. Mid-way through the project I realized the Raspberry Pi I was running the code on could not handle the simulation of all the balls. On top of that I was planning to overlay a glsl shader on the screen to make it look like an actual CRT. The museum only had Windows laptops available so I had to recompile all the libraries and fix broken links for the Windows binary. 

It ended up being a successful project, and was showcased to the museum's investors. I was told that I may one day be contacted to make a bigger and better version. Either way, I am incredibly content with what I produced in just 2 short weeks.

You can check out the full source code on my Github:


Windows version:

https://github.com/ember3141/the-real-deal

Linux version:

https://github.com/ember3141/sfmlbox2d Luroxin Home