Using the new Phidget22 JavaScript API with NW.js

September 8, 2017 Jean-Philippe Côté

During the summer, Phidgets inc. performed a complete overhaul of their API. This new version of the API (22) is, unfortunately, not backwards compatible. This means that our previous article on using Phidgets with NW.js is not applicable to the new API. The time has come for an updated article. So, here it is.

Read article

Viewing Webcam Feeds and Grabbing Still Frames in a Modern Way

January 23, 2017 Jean-Philippe Côté

Listing available webcams, identifying supported resolutions, viewing live video and grabbing frames should all be pretty straightforward things, right? Well, it turns out that, even in 2017, they are a little more tricky than one might expect. This article will help you do all those things while avoiding the gotchas that pave the way to webcam control. 

Read article

Controlling AC Devices with the NJA Toolchain

October 17, 2016 Jean-Philippe Côté

Devices that you plug in a 120VAC wall outlet are not necessarily what you would expect to connect to an Arduino. Most of the beginner-level Arduino projects deal with sensors and small actuators using voltages in the 3.3-5VDC range. But what if you want to use the NJA toolchain (NW.js, Johnny-Five, Arduino) to turn on or off a fan, a smoke machine, a spotlight or anything else that plugs into a regular wall outlet? Is that even possible? Of course it is! To do that, you will simply need four things: a 120VAC device, an Arduino, a relay and this article.

Read article

NW.js & Electron Compared (2016 Edition)

March 26, 2016 Jean-Philippe Côté

If you wish to create a desktop application from web technologies, the open source world offers two main choices: NW.js (formerly node-webkit) and Electron (formerly atom-shell). Deciding which one to go with is not so obvious. In 2015, I released a first version of this comparison between the two tools. However, the release of version 0.13 of NW.js brought on so many improvements that an update became necessary. Hopefully, the chart and comments in this article will help you choose the right tool to build your next project.

Read article

NW.js, Johnny-Five & Arduino: A Wicked Trio

February 14, 2016 Jean-Philippe Côté

With the availability of version 0.13, it becomes trivially easy to use NW.js with the Johnny-Five robotics library. Combined with a microcontroller such as the Arduino, you get a very powerful end-to-end toolchain for physical computing. In this tutorial, we will show you how easy it has become to control external devices and gather data from sensors in such an environment.

Read article

The Gamepad API & Physical Computing

December 13, 2015 Jean-Philippe Côté

HTML’s Gamepad API has been created specifically with online games in mind. However, this does not mean it cannot be used in other contexts. For instance, gamepads have been hacked to assist people with physical disabilities, repurposed for artistic goals or altered for the sheer fun of it. Whatever your physical computing project, this article will show you how you can use the Gamepad API within TangibleJS’ preferred deployment platform: NW.js.

Read article

Web MIDI: Music and Show Control in the Browser

October 6, 2015 Jean-Philippe Côté

Earlier this year, Google released Chrome 43. This release marked the official introduction of an amazing new feature: MIDI in the browser! The magnitude of this news for fans of physical computing cannot be overstated. This means you can a) control external MIDI devices from JavaScript and b) use MIDI devices to control what’s happening in your web browser. I almost cried… And the best part is: it actually works!

Read article

NW.js & Electron Compared

August 30, 2015 Jean-Philippe Côté

If you wish to create a native desktop application from web technologies, the open source world offers two main choices: NW.js (formerly node-webkit) and Electron (formerly atom-shell). Deciding which one to go with is not so obvious. That is precisely why I created the comparison chart found in this article. Hopefully, it will help you choose the right tool to build your next physical computing project.

Read article

Using Phidgets sensors in JavaScript

August 4, 2015 Jean-Philippe Côté

In a typical physical computing project, you will need to gather input from the real world. For instance, you may need to sense distance to an object, vibration level, gps position, amount of light, air pressure, force applied, etc. How can you bring that external information in your JavaScript-based physical computing project? One of the easiest way is probably to use a sensor board made by Phidgets Inc. This article will show you precisely how to do that.

Read article

Getting started with physical computing in JavaScript

May 15, 2015 Jean-Philippe Côté

So, you want to start leveraging your JavaScript skills to interact with the physical world ? You have come to the right place. This article will paint a broad portrait of what can be achieved in the tangible world by using JavaScript. It will also point you in the direction of various tools, libraries, frameworks, devices and tutorials that can help you get started. Here we go!

Read article


A lightweight graphics library with an intuitive graphics API and an SVG renderer.

Go to project page


SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen. Snap.svg makes working with your SVG assets as easy as jQuery makes working with the DOM.

Go to project page


The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas. 

Go to project page