Section: New Software and Platforms
New Software
WildOS
Participant : Michel Beaudouin-Lafon [correspondant] .
WildOS is middleware designed to support applications that run in an interactive room, such as our WILD and WILDER rooms, with various interaction resources, including a tiled wall display, a motion tracking system, interactive tabletops, tablets, smartphones and custom-made or 3d printed interactive devices. The conceptual model of WildOS is a platform, such as the WILD or WILDER room, that can be described as a set of devices on which one or more applications can be run.
WildOS consists of a server running on a machine that has network access to all the machines involved in the platform, and a set of clients running on the various interaction resources, such as a display cluster or a tablet. Once WildOS is running, applications can be started and stopped and devices can be added to or removed from the platform.
WildOS relies on Web technologies, most notably Javascript and node.js, as well as node-webkit and HTML5. This makes it inherently portable (it is currently tested on Mac OS X and Linux). While applications can be developed only with these Web technologies, it is also possible to bridge to existing applications developed in other environments if they provide sufficient access for remote control. Sample applications include a web browser, an image viewer, a window manager, and the BrainTwister application developed in collaboration with neuroanatomists at NeuroSpin.
WildOS is used for several research projects at ExSitu and by other partners of the Digiscope project. It was also deployed on several of Google's interactive rooms in Mountain View, Dublin and Paris. It is available under on Open Source licence at https://bitbucket.org/mblinsitu/wildos .
-
ACM: H.5.2 [User Interfaces]: Graphical user interfaces (GUI)
-
Software benefit: helps development of multisurface applications.
Unity Cluster
Participants : Cédric Fleury [correspondant] , Jean-Baptiste Louvet.
Unity Cluster is middleware to distribute any Unity 3D (https://unity3d.com/ ) application on a cluster of computers that run in interactive rooms, such as our WILD and WILDER rooms, or immersive CAVES (Computer-Augmented Virtual Environments). Users can interact the the application with various interaction resources.
Unity Cluster provides an easy solution for running existing Unity 3D applications on any display that requires a rendering cluster with several computers. Unity Cluster is based on a master-slave architecture: The master computer runs the main application and the physical simulation as well as manages the input; the slave computers receive updates from the master and render small parts of the 3D scene. Unity Cluster manages data distribution and synchronization among the computers to obtain a consistent image on the entire wall-sized display surface.
Unity Cluster can also deform the displayed images according to the user's position in order to match the viewing frustum defined by the user's head and the four corners of the screens. This respects the motion parallax of the 3D scene, giving users a better sense of depth.
Unity Cluster is composed of a set of C Sharp scripts that manage the network connection, data distribution, and the deformation of the viewing frustum. In order to distribute an existing application on the rendering cluster, all scripts must be embedded into a Unity package that is included in an existing Unity project.