Giter Site home page Giter Site logo

tuio.js's Introduction

Build Status

Tuio-extended.js

This is a fork of Tuio.js, the original JavaScript implementation of the TUIO protocol.

Tuio-extended.js supports a very basic subset of the TUIO2 protocol, namely the the pointer (PTR) and token (TOK) components. They are currently not completely implemented.

Because the reference C++ implementation of TUIO2 supports WebSockets on the TuioServer, Tuio-extended also has a number of other changes:

  • it decodes the TUIO OSC messages using osc.js, instead of using a local Node server
  • the socket.io connection from the browser to a local Node server that relays the UDP messages to the browser is no longer needed
  • if necessary for the original TUIO (v1) protocol, the Node Server is still available using src/server.js. Internally it uses the ws package instead of socket.io. Run it with: node src/server.js. It listens to localhost:3333 for Tuio messages over UDP, and sends over localhost:5000 for WebSocket connections.

Installation

Install with npm

npm install tuio-extended

Usage with Tuio2

The usage is the same as in the original library, but it offers two new methods in TuioClient for retrieving the two new input types. The one significant difference is that they give an array of pointer of token objects, instead of a JavaScript object. For instance:

var client = new TuioClient({host: 'ws://connection'});

client.on('refresh', function() {
  var pointers = client.getTuioPointers();
  var tokens = client.getTuioTokens();
  // they can be iterated
  pointers.forEach(...);
  tokens.forEach(...);
});

License

Licensed under the GPL license.

tuio.js's People

Contributors

nomve avatar fe9lix avatar capnslipp avatar

Stargazers

PrimoPan avatar Guido Schmidt avatar test avatar Masatoshi Ishida avatar Andrea Gherardi avatar  avatar gefercan avatar Manu avatar derek kwan 關志豪 avatar Jacob Bijani avatar Germán Gómez avatar Cezar Mauricio avatar Andrés avatar Joshua Gross avatar  avatar Yuri D. Meira avatar Martin Kaltenbrunner avatar liquid avatar

Watchers

James Cloos avatar Yuri D. Meira avatar  avatar

tuio.js's Issues

How to require?

I'm using Browserify to bundle my package. What is the best way to require your package?

Actually I did this:

const Tuio = require('tuio-extended/src/Tuio');
Tuio.Client = require('tuio-extended/src/TuioClient');
Tuio.Cursor = require('tuio-extended/src/TuioCursor');
Tuio.Object = require('tuio-extended/src/TuioObject');

It's working, but seems to be very complicated.

Dependencies in lib folder

Having dependencies committed in the lib folder is not a good solution in my opinion.

For example, users of my application have to load the lodash dependency twice.

Symbol ID

Implement correct symbolId for tokens and pointers. Currently just -1

Not working on Safari

canvas.html example does not work on Safari (9.0.3 on El Capitan): the canvas stays blank.
(It works fine on Chrome, and the original Tuio.js worked fine on both Safari and Chrome.)

The error message in Web inspector console is:

TuioCanvas.bundle.js:20137 The header of an OSC packet didn't contain an OSC address or a #bundle string. Header was:

The error is repeated for each incoming event.

The same error occurs with the Tuio2Simulator from the TUIO2 reference implementation (modified to replace the TCP server with a websocket server), as well as when using the legacy TUIO-to-websocket node server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.