Gyro UI from Liwe on a smartphone


an open source remote control for WebApps

After few months of work, I’m happy to release my new project called Liwe. It’s a service for web developers to use smartphones as a remote on their webapp, by using the most of phone sensors to give the richest user experience.

Before we enter into details, let me explain what happen before to arrive here.

A year and a half ago, I tried to write a remote system like tv.js. It’s a wonderful usage of WebSockets. The server establishes a persistant connection with the smartphone and the WebApp, and then becomes the messenger in between. It’s not really complex but it required a lot of design and time, and this is where my frustration came from. I couldnt help but feeling like I was reinventing the wheel, something that many people before me have already built. The most important part was that you cannot just run this on a simple file server, it required a Node server.

All these points explained why this technology is not really popular: the lack of accessibility. You need a bit of knowledge at every level to build this feature, to be a jack of all trades.

At this point I realised we could change something and make this as easy as jQuery. Why do I talk about jQuery that way? Simply because a lot of developers discovered JavaScript via jQuery first. The API is so simple that it can reach more people than pure JavaScript. I’ve been one of them.

Accessibility is the key

After few months, the main draft was here. A simple API for frontend developers, a quickly accessible remote for users, and an open source node server in between.

For developers, no extra server, no plugin, just a simple script to include in their HTML and they are ready to go. The API gives an entry point for remotes (: a simple URL) and lets it manage them. Users can select the UI they want from the three ones available, switch to another one, or disconnect.

For the final user, no app to install, no registration, just enter the URL. No time to waste. Remember, people don’t like to wait.

User interfaces available on a remote: button, touch and gyro

The remote app is built in HTML. The goal is to do make the best of the sensors available via JavaScript, to give the best user experience and possibilities for developers.

At the start there are only 3 UI available:

  • Button: a simple big button
  • Touch: turn the phone into a touchpad to get touch gestures
  • Gyro: to get gyro/compass informations

But I hope the project will evolve to use other sensors like vibrator, camera, microphone, GPS, brightness sensors, upload files…

At the moment, only one server is running (:, maintained by me. A simple node server can handle a lot of simultaneous connections, so why not share it?

Open source

From the start this project was built to be open source. This project is made for developers and should be driven by developers and the community.

If developers build controllers to use Liwe, but I decide to kill for good, they are free to use another one or build their own.

One step at the time

At the moment the platform is just a prototype, not ready for production. I wanted to see if people were interested in the project and get their feedback to build the best platform.

But after making it robust, some big improvements are planned : WebRTC, key manager for admin, split the core into components, new remote UIs or custom ones…

Try it, hack it, report it, enjoy it.

You can try liwe with these sample apps: slideshow, 3D controller, gyroBattle.

And recently the fresh circular menu app, inspired from Sara Soueidan’s Circulus.

All samples are available on For developers who want to use liwe, I recommend you start with pushthebutton sample app. It’s a really basic app to discover the liwe API.

Visit for more informations and please give me your feedback. Even if you’re not a developer, even if it’s just about something you would love to see, or an idea to improve it. :)