Rubik Revolution
| This project was showcased at the BCSWomen Lovelace Colloquium 2020. You can find the Unity project by clicking the Github icon. -> |
Abstract
“Imagination demands curiosity.”
Have you ever tried playing a game using a stress ball? Maybe drive a car with a piano? Draw onto a screen with a series of cups? Typing with a guitar?
This may all sound crazy to you, or perhaps you’re just fascinated with the idea beyond belief. Why? Because people are used to the norm of using things like keyboards, joysticks, and touchpads as input devices. It’s usable, common, and quite possibly the best form of control when it comes to quick tasks on a laptop or a computer. But what if there was more out there?
This article will explore the weird and crazy ideas of using different input devices, particularly a Rubik's cube, and how feasible they are in terms of ease of use and control.
Brief Introduction to Input Devices
When it comes to technology, an input device is a component of hardware equipment used to
record data and control signals to flow into an information processing system, such as a computer.
The main function of an input device remains to collect data or information onto a computer and
allow it to be processed to a usable form. Examples include keyboards, mice, joysticks, scanners,
microphones, and digital cameras.
Technologists have always been trying to playfully create new ways for humans to communicate
with machines. We’ve got all sorts of devices from cameras to light pens and keyboards and
trackballs and so much more, each one unique in their own field, for their own application.
Innovation breeds curiosity. This is still an active area for creative ideas and growth.
Take the keyboard, for example. Ever since the QWERTY keyboard design invention in the 1870s, it
made its way for a long time and survived a high-tech world, well into the Digital Age. But over the
last few years, it is being threatened by other technological advances.
Continuing aspirations like speech recognition and gesture control are merging with newer
technologies and it is being opened to a whole world of possibilities.
Design and Development
This project was done in three phases and consisted of four different ideas and scenarios in which the Rubik's cube was used as an input device.
I. Puppet Controller
Given the project brief to design a screen-based rag-doll puppet that is controlled in an unusual way,
the devised plan was to use a Rubik’s cube as my unusual device. Having looked at the working of a
Reactable, the idea was to use fiducial markers to control a puppet.
Initially, for a trial run, a 2D version of the project was built using Reactivision and Processing. The below figure shows a net of the design I used and the actions it used to control.
Puppet project: Rubik net plan
The most efficient way to use this, and avoid repetitions, was to have three separate values. One to indicate the joint or body part (red), the second to indicate whether the movement was rotation or translation (green)* and the third was to indicate movement in a positive or negative direction.
*translation boiled down to rotation on various axes
The letters can be fairly confusing to understand, but it's a simple key. I took note of all the major joints in the legs (Hip, Knee, Ankle) and arms (Shoulder, Elbow, Wrist) and of course, we have two of each (Left, Right). The N and W stand for Neck and Waist which would also by definition, move, turn or rotate. (blue)
There were two movements that each joint had to perform - Translate and Rotate (noted in green)
And finally, the direction of the movements have to be considered - Up, Down, Left, Right for Translation and ClockWise and AnticlockWise for Rotation. (red)
Then moving on to the calculations of each joint. For every action, there had to be a subsequent reaction. For example, in order to move your wrist towards you, your elbow needs to be rotated.
2D character in Processing (left) and rough kinetics calculations (right)
II. RubikRemote
Furthering this idea of using the Rubik’s cube to control movements and functions, I moved on to using it as a remote control. Main functions were tracked, like play, pause, forward and rewind, and were mapped onto the cube. This didn't use the full potential of the Rubik's cube which could generate over 500 different functions given the right combination, but it did prove effective.
rubiKRemote spawned as a side project to this game. In this part, I used the fiducials in the same way for remote functions for a video demo presentation. The figure below shows it working. It picks up the marker and displays feedback – in the below example, it shows forward.
RubikRemote working
III. RubikRacer
rubiKRacer was explored first. A game that used a Rubik’s cube to control the
kart. There were four possible controls, that mapped to the arrow keys. It proved
to be easy to implement but challenging to comply.
It proved to be very difficult to drive, mostly because the images were not being recognized immediately. In addition to this, the lag in recognition made it difficult to get the turns on time and took away some time, which is part of the objective of the game.
RubikRacer in progress
With regards to the turning, the implementation of a mimicked steering wheel was done with a lid and a fiducial marker. Using the rotation of the marker, the steering was looked into and proved much more effective.
IV. Gummy Bear Scare
This is another game – a board game. However, instead of using the Rubik’s cube with the fiducial
markers, this uses dice. Why a board game? In machines, there expresses a sense of pseudo-random
figures, in which case a generated number can never be truly random. Rolling this dice (with the
markers) ensures randomness in play.
The objective of the game is to make it across the park. There will be eight path stones – four normal
and four special ones.
Gummy Bear Scare stones
Gummy Bear Scare gameplay setup
After experimenting with the Rubik’s cube, this called for experimenting with
other games. Evaluating the pseudo-randomness in machines got me thinking of
a board game. This game was simple – get a gummy bear across the forest. I didn’t do much with the game, but the dice does provide actual randomness you would get if you
played the game in the physical world.
Evaluation
At the event: BCSWomen Lovelace Colloquium 2020, Virtual, Discord
Being able to design and make interfaces, is an important aspect of being a Creative Technologist. You need to
identify the project’s essential characteristics and the client’s needs. You need to map these to user abilities
and needs.
Implementing these games with tracking the markers wasn’t at all hard to implement. I think there
were more problems with using these creations. Some gadgets will always have their own uses and
with each in its own design, given the time to understand the workings of this, there are designs that
work with other devices.
These might not be the most optimum devices for their uses, but I’ve gained the creative skills to try
and test and work out user needs to effective user-friendly design.
Although they may be slightly inaccurate or unpredictable, they are useful in their own ways and can
become a cheap alternative to many state-of-the-art gadgets available in the market nowadays. You
only have to have the imagination to look for the potential in various objects.
Moreover, technologies like Virtual Reality and Augmented Reality are taking over the digital world.
There are also the possibilities of six degrees of freedom since cameras can be introduced into the
environment, allowing the subject’s position within the room to be tracked as well.
Achievements
This poster won first place in the MSc Best Project category and received top feedback from students, having been spotlighted by a few connections on LinkedIn.
Check out some of the other participant posters and winners here.

0 comments:
Post a Comment