North (formerly Thalmic Labs), the creator of the Myo armband, was acquired by Google in June 2020. Myo sales ended in October 2018 and Myo software, hardware and SDKs are no longer available or supported. Learn more.

3 minute read

Designing the Myo API

Designing the Myo API

As a part of the software engineering team, I’ve been spending the past couple weeks solidifying the public API for how developers will be working with Myo. For our team, this has been a fun and interesting challenge: designing an API that feels natural and easy for developers to work with, while making it modern and forward-thinking.

As you may know, API stands for Application Programming Interface and it sets the stage for the way developers will think about and interact with our hardware. When developing our API, our team has looked both forward (to modern APIs) and backward (to historical input APIs) for inspiration. Looking back at the way developers have programmed for keyboards, mice, joysticks, and touch-screens helps us use familiar patterns while designing the API to make it feel natural to the developer. We also want to break away from these traditional interfaces and start looking forward to what it means to naturally interact with our digital devices in a way we have been interacting with the physical world for millions of years.

Computers have been around for a short amount of time – we have been using our hands for much longer. Our goal for Myo users is to provide effortless integration with their devices. In order to provide that, we need our developers to have the power to think up new ways of interacting with the digital world while providing them with an easy way to do it. We don’t want our developers to have to write a lot of code to make their ideas for applications come to life!

If you’re a developer, our goal is to make writing your first Myo programs as easy as when you added your first on-click handler to a button, while keeping things open and powerful enough that you will surprise us with new and unthought-of ways to interact with things around us. Just as when the first mice were used to select text in a document or the first time you pinch zoomed on a map, interactions with Myo should augment and change the way we have been interacting with the digital world and allow a much more tactile and expressive mode of input for the future.

You can get started by applying to our Developer Program right here:

Happy Hacking!

PS – Here’s the leak of the week from the software team at Thalmic. Tweet @thalmicdev if you understand it and we’ll follow you!

void main() {
    myo::Hub hub;
    hub.onPoseStart(myo::PoseType::Gun).add([] (const myo::Pose& pose) {
        std::cout << "BANG!" << std::endl;
    std::cout << "Press Enter to quit.";

You've successfully subscribed to The Lab!