In a couple days, I’ll be giving the first stop on my “Creative Node.js” presentation tour! I’m speaking at cfObjective in Minneapolis on Wednesday May 14th. After that I’ll be speaking at HTML5DevConf in San Francisco on Thursday May 22nd. I’m giving a talk about how folks can and should use Node.js for visual and creative work even though it’s widely regarded as just another server side tech.
The purpose of this blog post is to give some links you may see in my presentation. I’m also posting my slide deck as well for those of you who couldn’t make it. The deck is checked into Github, and to see some simple code behind my examples, you can look here. Be careful with the OpenCV library, it’s especially difficult to get installed, especially on Windows! NPM install doesn’t cut it, and you need to manually build with nw-gyp, and add the required DLL’s right inside the release folder.
A web hosted slide deck link really won’t do it justice, though. As I worked on my presentation, it really became more of a desktop application than a slide deck. The presentation itself is powered by RevealJS. I’ve found that using Reveal, you can’t place working script examples inside the page (presumably because of security concerns), so I have some links denoted by +’s to launch an example in a new windows. Some of these examples are AngularJS based, which is really nothing new.
What IS a little new, is that all of my examples except one require Node.js to run. I’ve actually put these examples directly inside my presentation by making the entire slide deck run by way of Node Webkit. I’ve written more about Node Webkit on a great site called Flippin’ Awesome. So, what we have hear is a RevealJS slide deck running Node.js powered examples with some running with help from AngularJS, all running inside a desktop application powered by Node Webkit.
This is why I love this platform – because we can put all of these technologies together and pull directly from the fabulous HTML/CSS/JS/Node community.
Second project, was a Node.js based speech recognition library that uses either Google or AT&T services to translate text to speech. I called it “Make it So”, because in my demos you pretend to be Captain Picard and tail each command with “Make it So”.
I also listed a bunch of projects to give Node some kind of windowed view:
- Node-GLFW provides platform-independent access to windowing system and input devices
- Node-OpenVG OpenVG bindings for node.js
- Node-SDL Simple DirectMedia Layer bindings for node.js
- TopCube a webkit window that node can control
- Node-GUI binds GTK+2.0 to node.js
- Node-QT native bindings to the Qt library
- Node-WebGL port of WebGL for desktops
- Ogre + Node
I really hadn’t tried any of these in depth. I attempted Node-WebGL breifly, but had DLL and include file troubles, so shelved it in favor of Node Webkit and Atom-Shell which give you the whole webkit package. I talk about a quick sample Atom shell application called “WorkIt” for time tracking.
I also get into Bluetooth a little bit with a great Node.js addon from Sandeep Mistry called Noble. I also wrote a little Bluetooth library on top of that called “I Heart Node” to give a little easier and more understandable way to work with the TI Sensor Tag.
Expanding on devices, I talk about my Node.js/Midi/3D Sensor instrument called the Upright Spass powered by my 3D Sensor library called NuiMotion. And, with 3D sensing in mind, I also talk a bit about OpenCV for computer visualization.