SlideShare a Scribd company logo
Kinect
- Kinect   Audio Data API     node.js          -




                      @hakobera / Kazuyuki Honda

                  2011/3/24     Node    1
•   hakobera /

•                                    Web



•                    : Java / JavaScript

•   node.js      :

•   Kinect    :2
LT
Kinect

node.js + Socket.IO

                      Audio Data API
Kinect


•           1000

•
•
    •   Kinect     XBox 360     20   2

    •                     SDK
Audio Data API

• HTML5 Audio    Mozilla

•                          JavaScript



•            Chrome Audio API
       API
TCP/IP
                              Socket.IO

   Hand Tracker                 express
                                 HTML




openkinect/libfreenect   Audio Data API
Kinect de-theremin
express
var port = 3000;

var app = express.createServer();

app.configure(function() {
    app.use(express.static(__dirname + '/static'));
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.set('view engine', 'ejs');
app.set('view options', { layout: false });

app.get('/', function(req, res) {
    console.log('get index');
    res.render('index', { port: port });
});

app.listen(port);
Socket.IO
var webSocket = socketIo.listen(app);
webSocket.on('connection', function(client) {

      console.log('connected: ' + client.sessionId);

      client.on('message', function(msg) {
          console.log(msg);
      });

      client.on('disconnect', function() {
          console.log('disconnect');
      });

});
TCP/IP
var kinectTransporter = net.createServer(function(kinect){
   var buff = "";
   kinect.on("data", function(d){
       var s = d.toString();
       var v = s.split(',');
       var o = {
          x: v[0],
          y: v[1]
       };
       console.log(o);
       webSocket.broadcast(JSON.stringify(o));
   });

      kinect.on('error', function (err) {
          console.log("ignoring exception: " + err);
      });
});

kinectTransporter.listen(9999);
Kinect de-theremin
Kinect
C++
(C++)
Kinect de-theremin
Java                python


• Java, Python, Ruby, C#, ActionScript
                                         OK
JavaScript
JavaScript
             orz
kinect.js
kinect.js
libfreenect   Java - processing
Rhino
CommonJS



processing
http://processing.org/

kinect java - processing wrapper
http://www.shiffman.net/p5/kinect/
var processing = require('processing');
var kinect = require('kinect');

processing.run({
	 setup: function() {
        this.size(kinect.width(), kinect.height());
        this.frameRate(5);
        kinect.init({
            processing: this,
            enableDepth: true,
            enableIR: false,
            enableRGB: false,
            processDepthImage: true
        });
	 },
	
	 draw: function() {
        var depthImg = kinect.getDepthImage();
        this.image(depthImg, 0, 0);
	 },

      stop: function() {
      	 kinect.stop();
      }
});                                                   Kinect
•
• libfreenect
                RGB,

• node.js
Kinect de-theremin

More Related Content

Kinect de-theremin

  • 1. Kinect - Kinect Audio Data API node.js - @hakobera / Kazuyuki Honda 2011/3/24 Node 1
  • 2. hakobera / • Web • : Java / JavaScript • node.js : • Kinect :2
  • 4. Kinect • 1000 • • • Kinect XBox 360 20 2 • SDK
  • 5. Audio Data API • HTML5 Audio Mozilla • JavaScript • Chrome Audio API API
  • 6. TCP/IP Socket.IO Hand Tracker express HTML openkinect/libfreenect Audio Data API
  • 8. express var port = 3000; var app = express.createServer(); app.configure(function() { app.use(express.static(__dirname + '/static')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.set('view engine', 'ejs'); app.set('view options', { layout: false }); app.get('/', function(req, res) { console.log('get index'); res.render('index', { port: port }); }); app.listen(port);
  • 9. Socket.IO var webSocket = socketIo.listen(app); webSocket.on('connection', function(client) { console.log('connected: ' + client.sessionId); client.on('message', function(msg) { console.log(msg); }); client.on('disconnect', function() { console.log('disconnect'); }); });
  • 10. TCP/IP var kinectTransporter = net.createServer(function(kinect){ var buff = ""; kinect.on("data", function(d){ var s = d.toString(); var v = s.split(','); var o = { x: v[0], y: v[1] }; console.log(o); webSocket.broadcast(JSON.stringify(o)); }); kinect.on('error', function (err) { console.log("ignoring exception: " + err); }); }); kinectTransporter.listen(9999);
  • 13. (C++)
  • 15. Java python • Java, Python, Ruby, C#, ActionScript OK
  • 17. JavaScript orz
  • 19. kinect.js libfreenect Java - processing Rhino CommonJS processing http://processing.org/ kinect java - processing wrapper http://www.shiffman.net/p5/kinect/
  • 20. var processing = require('processing'); var kinect = require('kinect'); processing.run({ setup: function() { this.size(kinect.width(), kinect.height()); this.frameRate(5); kinect.init({ processing: this, enableDepth: true, enableIR: false, enableRGB: false, processDepthImage: true }); }, draw: function() { var depthImg = kinect.getDepthImage(); this.image(depthImg, 0, 0); }, stop: function() { kinect.stop(); } }); Kinect
  • 21. • • libfreenect RGB, • node.js

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n