Thursday, June 23, 2011

SCADA Demo for Jibe

For those of you who are looking into data visualization in Jibe, we have produced a sample package that you may find useful! Now available to download from our Jibe Downloads site for our Jibe customers, log in and scroll down to get hold of your copy!

To install the package, just unpack the zip file into a folder and read the instructions. In Unity, you need to open your Jibe project and select Assets - Import Package - Custom Package...

Import all the assets in the bundle - there are three prefabs and one script to add to your project. Once you have imported them, from your Project tab in Unity, go to the Objects folder and drag a Machine Controller prefab into your scene. It's an invisible object, so position it in the scene where you want to start your data visuals:


And now you're ready to run with the simple demo! If you hit the Play button in the editor, you will see five cubes appear, likely with different colors, each showing a random value between 0 and 10, and some of them potentially on fire! These five values are randomly produced from a little web page http://reactiongrid.com/gridworx/scada/sampledata.aspx that can have a couple of parameters to modify the quantity (n) and maximum (max) values produced, for example http://reactiongrid.com/gridworx/scada/sampledata.aspx?n=6&max=100.


The demo script has a number of properties on it that you can edit to change how the visuals work, and you have all the full source code from the script itself that you are free to edit and change as you like to fit your purposes! If you want to make simple changes, head to the Machine Controller game object in your Scene hierarchy and make changes to the properties. These represent the following:

  • Poll Interval: how often to refresh data
  • Number of values: how many machines to show, up to a max of 10
  • Maximum value: if you want to simulate larger or smaller numbers, change this number
  • Particle threshold: for particles to display, set this number to be lower than maximum value, at some value that makes sense for an overload visualization
  • Low / Medium / High / Critical Condition Values: set these numbers in order from lowest to highest up to a number that is less than the max to show full range of states
  • Machine Prefab: replace this with any object of your choice that has a mesh renderer component - the standard one supplied with the demo is a simple cube object with no special attributes
  • Data Vis Particles: replace this with any prefab of your choice that has a particle emitter
  • Skin: for the GUI numbers over the boxes
  • Heat colors: set up a minimum of five colors for each condition to visualise to change the color of your machines according to the values

This demo is provided as is for evaluation purposes and contains only pretend data... but the idea here is to give you an idea of how you could make a cool space and visualize machine values, or perhaps a live rendered scene of how many emails you have received that you haven't yet read, etc. The data you pull from your web service could be passed in as simple csv values, it could be JSON, it could be XML, and the fun of working with C# for your scripting is that you can use standard code techniques to unravel that data. Then combine that with some Unity concepts and you have a 3D scene that you can walk through with your peers and see what is currently happening together.

We use this technique for our own purposes to provide us with real-time monitoring of server activity of all the servers, physical and virtual, that we host for our clients. We gather metrics on server uptime, processor utilization, hard drive space and more, and we view it all together in our server room. Together, in the virtual space, we can see at a glance if a server needs some attention, or we can see whether a server is currently being worked on by a member of the team. Check out the video overview or head inworld to see a live demo!

Comments or questions, ping me any time via http://metaverseheroes.com

--
Chris Hart
CTO, ReactionGrid Inc.


No comments:

Post a Comment