(tl;dr: A library to interface Arduino with a 3D data visualisation and monitoring tool on a PC -
download -
brief examples -
L3DGEWorld overview )
Hey all,
I'm currently a student doing a work placement at one of my university's research departments, the
Centre for Advanced Internet Architectures. As part of my placement, I developed a library for Arduino to interface with another of our (FOSS) projects,
L3DGEWorld.
L3DGEWorld was designed to monitor networks and networked computer systems using a realtime 3D interface. Different statistics are represented through different visual attributes. For example, one of the super computing clusters at Swinburne University uses L3DGEWorld to provide a visual overview of the state of every node. Each node is a floating entity, and the CPU utilisation is represented by rotation speed, the memory utilisation by size and the network utilisation by bounce height. (See example
here. )
Additionally, the user may also interact with the entities. Using the different "tools" (weapons) available, a user may trigger a l3dgecomm enabled device to perform certain actions.
l3dgecomm is the protocol for communicating between L3DGEWorld and an input or output daemon. Arduino-l3dgecomm provides an interface to allow an Arduino to provide input and take output from L3DGEWorld and other l3dgecomm compatible programs.*
We put together two proof of concept videos to demonstrate the main functionality of arduino-l3dgecomm.
In the first video, the arduino acts only as an input daemon. We read an analog input and set the spin rate of an entity on-screen accordingly. Input from any source can be used, as long as you can express it as an integer.
http://www.youtube.com/watch?v=QlJ-gJRMt80In the second video, we demonstrate the output functionality of L3DGEWorld, with the Arduino acting as an output daemon. We interact with entities in-game, which controls the actions of the Arduino. When an action is sent, the Arduino is provided with the tool ID, entity ID and a string containing the states of the various attributes of the entity. In this case, we use the entity ID to determine which angle the servo actuates to.
http://www.youtube.com/watch?v=DWyvQAS01qMBoth of these are very simplistic examples of the functionality - L3DGEWorld can be expanded far beyond these examples with minimal effort. For example, monitoring temperatures around a datacenter, while allowing a user to turn additional localised cooling devices on and off .
Both L3DGEWorld and arduino-l3dgecomm are free, opensource software.
Download it from here,
see the examples page here, and read the
L3DGEWorld overview here * W3bworld is our other l3dgecomm compatible program, which is a HTML5 and NodeJS implementation of L3DGEWorld.