Mission GameFace makes gaming accessible to everybody — Google for Builders Weblog

Posted by Avneet Singh, Product Supervisor and Sisi Jin, UX Designer, Google PI, and Lance Carr, Collaborator

At I/O 2023, Google launched Mission Gameface, an open-source, hands-free gaming ‘mouse’ enabling folks to manage a pc’s cursor utilizing their head motion and facial gestures. Individuals can elevate their eyebrows to click on and drag, or open their mouth to maneuver the cursor, making gaming extra accessible.

The undertaking was impressed by the story of quadriplegic online game streamer Lance Carr, who lives with muscular dystrophy, a progressive illness that weakens muscle groups. And we collaborated with Lance to carry Mission Gameface to life. The total story behind the product is out there on the Google Key phrase weblog right here.

It’s been an especially fascinating expertise to consider how a mouse cursor could be managed in such a novel method. We carried out many experiments and located head motion and facial expressions is usually a distinctive strategy to program the mouse cursor. MediaPipe’s new Face Landmarks Detection API with blendshape choice made this potential because it permits any developer to leverage 478 third-dimensional face landmarks and 52 blendshape scores (coefficients representing facial features) to deduce detailed facial surfaces in real-time.

Product Assemble and Particulars

On this article, we share technical particulars of how we constructed Mission Gamefaceand the assorted open supply applied sciences we leveraged to create the thrilling product!

Utilizing head motion to maneuver the mouse cursor

Moving image showing how the user controls cursor speed
Caption: Controlling head motion to maneuver mouse cursors and customizing cursor pace to adapt to completely different display screen resolutions.

By this undertaking, we explored the idea of utilizing the pinnacle motion to have the ability to transfer the mouse cursor. We targeted on the brow and iris as our two landmark places. Each brow and iris landmarks are identified for his or her stability. Nevertheless, Lance seen that the cursor did not work effectively whereas utilizing the iris landmark. The rationale was that the iris might transfer barely when folks blink, inflicting the cursor to maneuver unintendedly. Due to this fact, we determined to make use of the brow landmark as a default monitoring choice.

There are cases the place folks might encounter challenges when shifting their head in sure instructions. For instance, Lance can transfer his head extra shortly to the precise than left. To deal with this situation, we launched a user-friendly resolution: separate cursor pace adjustment for every path. This characteristic permits folks to customise the cursor’s motion in accordance with their preferences, facilitating smoother and extra snug navigation.

We needed the expertise to be as easy as a hand-held controller. Jitteriness of the mouse cursor is without doubt one of the main issues we needed to beat. The looks of cursor jittering is influenced by numerous components, together with the person setup, digital camera, noise, and lighting circumstances. We carried out an adjustable cursor smoothing characteristic to permit customers the comfort of simply fine-tuning this characteristic to finest go well with their particular setup.

Utilizing facial expressions to carry out mouse actions and keyboard press

Very early on, certainly one of our major insights was that folks have various consolation ranges making completely different facial expressions. A gesture that comes simply to 1 person could also be extraordinarily tough for one more to do intentionally. As an illustration, Lance can transfer his eyebrows independently with ease whereas the remainder of the group struggled to match Lance’s talent. Therefore, we determined to create a performance for folks to customise which expressions they used to manage the mouse.

Moving image showing how the user controls the cursor using their facial expressions
Caption: Utilizing facial expressions to manage mouse

Consider it as a customized binding of a gesture to a mouse motion. When deliberating about which mouse actions ought to the product cowl, we tried to seize widespread eventualities corresponding to left and proper click on to scrolling up and down. Nevertheless, utilizing the pinnacle to manage mouse cursor motion is a unique expertise than the standard method. We needed to offer the customers the choice to reset the mouse cursor to the middle of the display screen utilizing a facial gesture too.

Moving image showing how the user controls the keyboard using their facial expressions
Caption: Utilizing facial expressions to manage keyboard

The latest launch of MediaPipe Face Landmarks Detection brings an thrilling addition: blendshapes output. With this enhancement, the API generates 52 face blendshape values which characterize the expressiveness of 52 facial gestures corresponding to elevating left eyebrow or mouth opening. These values could be successfully mapped to manage a variety of capabilities, providing customers expanded potentialities for personalization and manipulation.

We’ve been in a position to lengthen the identical performance and add the choice for keyboard binding too. This helps use their facial gestures to additionally press some keyboard keys in an analogous binding trend.

Set Gesture Measurement to see when to set off a mouse/keyboard motion

Moving image showing setting the gesture size to trigger an action
Caption: Set the gesture dimension to set off an motion

Whereas testing the software program, we discovered that facial expressions had been roughly pronounced by every of us, so we’ve included the thought of a gesture dimension, which permits folks to manage the extent to which they should gesture to set off a mouse motion. Blendshapes coefficients had been useful right here and completely different customers can now set completely different thresholds on every particular expression and this helps them customise the expertise to their consolation.

Preserving the digital camera feed obtainable

One other key perception we obtained from Lance was players typically have a number of cameras. For our machine studying fashions to function optimally, it’s finest to have a digital camera pointing straight to the person’s face with respectable lighting. So we’ve included the power for the person to pick the right digital camera to assist body them and provides essentially the most optimum efficiency.

Our product’s person interface incorporates a reside digital camera feed, offering customers with real-time visibility of their head actions and gestures. This characteristic brings a number of benefits. Firstly, customers can set thresholds extra successfully by straight observing their very own actions. The visible illustration permits knowledgeable selections on acceptable threshold values. Furthermore, the reside digital camera feed enhances customers’ understanding of various gestures as they visually correlate their actions with the corresponding actions within the software. Total, the digital camera feed considerably enhances the person expertise, facilitating correct threshold settings and a deeper comprehension of gestures.

Product Packaging

Our subsequent step was to create the power to manage the mouse and keyboard utilizing our customized outlined logic. To allow mouse and keyboard management inside our Python software, we make the most of two libraries: PyAutoGUI for mouse management and PyDirectInput for keyboard management. PyAutoGUI is chosen for its strong mouse management capabilities, permitting us to simulate mouse actions, clicks, and different actions. However, we leverage PyDirectInput for keyboard management because it affords enhanced compatibility with numerous purposes, together with video games and people counting on DirectX.

For our software packaging, we used PyInstaller to show our Python-based software into an executable, making it simpler for customers to run our software program with out the necessity for putting in Python or extra dependencies. PyInstaller supplies a dependable and environment friendly means to distribute our software, guaranteeing a easy person expertise.

The product introduces a novel type issue to have interaction customers in an necessary perform like dealing with the mouse cursor. Making the product and its UI intuitive and straightforward to observe was a high precedence for our design and engineering group. We labored intently with Lance to include his suggestions into our UX issues, and we discovered CustomtKinter was in a position to deal with most of our UI issues in Python.

We’re excited to see the potential of Mission GameFace and might’t await builders and enterprises to leverage it to construct new experiences. The code for GameFace is open sourced on Github right here.


We wish to acknowledge the invaluable contributions of the next folks to this undertaking: Lance Carr, David Hewlett, Laurence Moroney, Khanh LeViet, Glenn Cameron, Edwina Priest, Joe Fry, Feihong Chen, Boon Panichprecha, Dome Seelapun, Kim Nomrak, Pear Jaionnom, Lloyd Hightower

Related Articles


Please enter your comment!
Please enter your name here

Latest Articles