Our client, GKN Aerospace, asked Ouno Creative to do the impossible: To create the very first six-object multi-touch table, using TOR (Tangible Object Recognition) on a Displax table running Intuiface software. We not only did it, we released a technical whitepaper that has since helped other providers of TOR technology to innovate further. For the techies among you, here is that whitepaper:
To detect when a ‘control object’ has been placed on the screen on a large-format touch table, and, by rotating this object, use it as a means to select one element from a fan menu. The orientation of the fan menu itself should be fixed relative to the user, but facing the nearest edge of the table.
Middleware was required to convert the combination of physical touches into grouped objects. Displax had previously developed middleware for Pcap screens, that detected the existence, position and orientation of six pre-determined 3- and 4- point touch groups but middleware applicable to an IR touch table was not available for that technology at the time. Thus, though our preference was to use IR, we instead began to develop for Pcap to make use of Displax’s existing middleware.
We originally intended to use the readily available 90mm flat pucks from Displax as a base but:
1) When rotated on the table they scored circles into the screen
2) The Displax pucks would only work on a table up to 55″. The touch points on the base were too-closely spaced to ensure accurate detection on a larger table.
3D-printing of the objects using a conductive plastic was considered, but the eleventh-hour timescale made this impossible and the finished 3D-printed appearance was not satisfactory.
To achieve a better finish, we instead sourced thin circular discs of conductive plastic and attached smaller conductive cylindrical feet to the bottom in prescribed configurations. These units were then attached to the underside of glossy black pucks with a hand-sized grip. Due to the increase in size, the finished pucks were larger than we had originally intended but this effect was not detrimental.
In place of employing a full size, physical, horizontal table with tangible pucks, early stage authoring for the tangible objects was facilitated with a TUIO Simulator with which we could emulate the manipulation of the pucks. It was not perfect – pucks could not be removed – only moved away, and the angles of orientation ran over the wrong range (0 to 360, rather than -180 to +180, or vice-versa) – but this virtualisation massively reduced the number of issues that needed to be resolved once we had access to the physical touch screens and pucks.
To handle the incoming signal from the middleware to Intuiface, we used a pre-existing InterfaceAsset (TUIOTagIA). A ‘virtual puck’ Object was created that would appear, rotate and disappear with the actual tangible object. ‘Fan menu’ Objects were created for each of the six identifiable pucks, inside of which each controller would turn, and an indicator would point. The position of the fan menu was bound to that of the virtual puck and its orientation up or down was determined by whether the normalised y-coordinate of the puck was more or less than 0.5. Content (made to appear by turning the controller) was created as a series of separate object groups so that they could then be manipulated on the table independently of the controller itself.
As initially set up, the fan menu would only correctly appear and disappear when grouped together with the virtual puck inside a TUIOObjectGroup. Placing this group below the other floating content meant that the fan menus could become totally obscured.
If the TUIOObjectGroup sat in the top layer, no content below it could be interacted with. In order to achieve the desired result, Ouno had to separate the fan menus from the virtual pucks and place them on separate layers, with the menus on the uppermost layer. Each fan menu was set to be shown and hidden when the ‘virtual puck’ itself became shown and hidden.
The ‘virtual puck’ correctly disappeared when the controller was removed, but the command to hide the fan menu did not always seem to be sent or performed. This was perhaps some kind of timing/response issue, but we could find no straightforward fix for this glitch in the existing technologies. To get around it, we added an infinitely repeating timer to each fan menu that regularly checked for the existence of the virtual puck so that the menu could remove itself when required.
The result of our development work was a first in the field of multi-touch table object recognition: Six tangible objects working on a projected capacitive touch screen. Read the full project details here