WebWorker structure - jhhl/AUMI-Together GitHub Wiki

Web Worker structure

AUMI Together is going to have a structure made out of asynchronous webworkers passing messages to each other. By having a standard messaging protocol, we get to:

  • monitor information passed between sub modules
  • build test frames that pass in test messages
  • be able to translate the messages into OSC and other external messages
  • be able to archive and play back messages for editing and test purposes

Messages in and out of workers are timestamped (perhaps) and queued

Like Amiga messages, a priority might sort an out-of-band message to the front of the queue For instance there might be a message to clear dependent queues and then clear this queue

Right now Webworkers can only pass unstructured data. While objects can be converted to JSON, it might be good to check out Google protocol buffer format. Here's some docs

There'll be a flow of messages from the frame source [which will not only be cameras, but movies and eventually network video] those frames will be listened to by the trackers. The touch/mouse tracker will run in parallel with video trackers.

The new motion / gesture tracker could be using "brains.js" https://github.com/BrainJS/brain.js#examples When AUMI T goes networked, another worker will provide the network composite video and audio streams

List of Workers:

Frame Worker

Camera Frame Worker

Movie Frame Worker

Tracker Worker

there are subclasses