Recently in Data Visualisation Category




Using data from the 2009 VAST Challenge of a problem in Embassy security this video shows how an immersive visualisation can be rapidly created to view physical and cyber security data such as door swipes and IP transactions. There are about 125,000 log entries here representing the door and IP data, and an OpenSim Region Module plays them out at the desired rate. The Region Module has been kept deliberately simple and generic, so we could use it with a wide variety of data types, ranging from security as show here to business process, manufacturing and transport data.

EmbassyViz1_sm.jpg

Overview of the Embassy, showing door swipe in/out arrows and vertical bars counting people in and out.

EmbassyViz2_sm.jpg

IP and door traffic running. Cylinder height shows data packet size, coloured across a spectrum from green for all inbound, to red for all outbound. Thicker cylinders for FTP traffic. here running at 7x normal speed but can go up to 7000x or greater, although OpenSim messaging can begin to get choked if too fast.

EmbassyViz3_sm.jpg

A more immersive view. Being insider the model lets you get a more visceral an intuitive understanding of what was going on - for instance spotting when isolated cubicles are passing higher than normal amounts of outbound traffic. With better location data we could even track people through the buildings, and a lower speeds represent them as osNPC avatars.






Share |
We are looking to recruit a junior programmer to join our team of software and 3D design developers. We use C#/ASP.NET/Javascript as our main development environment, but often working within existing virtual world and gaming platforms. This is very much a starter role, and whilst we do not expect you to have a lot of experience or exposure to the specific technologies we use, we do expect you to have a good aptitude for programming and a knowledge of the basics of software engineering, and the ability to learn quickly. We will provide you with in-house training in our technologies and involve you in a range of projects, many using leading edge concepts such as virtual worlds and artificial intelligence in order to grow your skills and experience.

For more information & full job spec see our Employment Page
Share |

We've been making good progress over the last month, and our toolset around data plotting in immersive spaces is taking shape. What has emerged are four main plot types, and supporting tools, all just importing data from CSV files to a standard format:

data surface

The simplest is a surface plot, aka a 3D bar chart. Data consists typically of one dimension of entities (e.g. stock ticker symbols), one of time (e.g. years or months) and one of value (e.g. stock price). Controls are provided to be able to change transparency levels, zoom in and out, and switch labels on and off.

data cube

Next is the scatter plot. In this tool we actually implement a 9D data cube, and allow you to plot any dimension not only against the 3 axes (x,y,z), but also to colour, size and shape. The tool supports the ability to zoom the data in and out - as well of course as your ability to fly in and through the data.

social graph

Using the same tools as the scatter plot we can also implement social graph mapping. here we can show relationships between people, places and organisations, and colour and size code links dependent on their detail - as well as applying similar marking to the data points.

geo plot graph

The final version is again a special case of the scatter plot (what we term generically a static plot), where x and y are lat and long (or other geo co-ordinates) and we plot the data against a map - in this case location data derived from Twitter. Here we also colour code the points by recency, and shape them by static or mobile browser. The white layer is people mentioned by geocoded tweets, and the yellow boxes the hashtags.

Finally to bring it all together we captured a load of tweets during the recent Royal Wedding and this is what we got:

geo plot graph

Based on over 5000 tweets captured at 5 minute intervals over the day. Central cone layer shows most prolific tweeters (size = number of tweets, red = quoting others, yellow=being quoted). Position in layer reflects sentiment, high=good, low=bad (orange surface level = neutral). Lower cone layer is other Twitter users being mentioned in tweets, upper cube layer is hashtags being used, for both size=number of mentions. Each object has a label identifying name. Hovering cursor over an object brings up more information/options such as bringing up the twitter page of the user (in this case imPrinceHarry - who luckily rated positive on sentiment!). Further refinement could show social graph data from people mentioning other people in tweets, and links to
hashtags they used etc.

Our little adventure is over yet though. With the release of OpenSim 0.7.1 we've finally been able to start writing Region Modules (and delete times are back to reasonable), getting a four fold increase in plot speed and more robust comms, so we're now moving out plot engine to RegionModules (although we'll keep a LibOMV option for remote deployments). We've also begun to look at what it will take to port the whole thing to Vastpark and Unity.

If you'd like a demo, or to learn more about our work in data visualisation or visual analytics, or have a project which could use these techniques, then don't hesitate to get in touch.

Share |

sm_dataviz_3dgrass_001.jpg

Having got point plotting sorted out we needed to move on to line plotting. I've always thought about doing this in SL, but the thought of all the maths and trig and THEN having to break a line segment into 10m lengths was just too much. Even in OpenSim with a 256m line length limit meaning it was just a trig and maths problem (but watch the diagonals) was enough to give me a couple of headaches. I've never understood Quaternions at the best of times, but any Euler type approach kept failing. In the end I managed to distil the essence of Quaternions into an algorithm I can understand (and easily explain to others), so at least I had that covered. The big challenge was then working out how to apply them to get the effect we wanted. The breakthrough was when I realised that my two-angle euler approach (pan and tilt of the line into position) could be accomplished in a single quaternion - the axis being the equivalent of one rotation, and the quaternion rotation the second. A little of fildding around with senses of rotation and directions of axis, and voila - we could plot a line to join any two points within 3D space (within a 180m cube). The example above is just a test with a random z element added to an almost meaningful x/y position plot, within about an 80m x 80m x 80m space with around 400 nodes and 1000 lines.

Share |

stars_2000_20ly_001.png

One step up from the AstroCube we have on Daden Prime in Second Life, we now have a whole sim running locally in OpenSim dedicated to stellar data. We are bringing data in through LibOMV so we are plotting anywhere on the sim at around 10 points per second directly from a CSV database.

For nearby stars the database we are using is the excellent one at http://www.projectrho.com/smap06.html. This has almost 45000 entries for stars out to around 5000parsecs (although 40000 are within 300parsecs), and is based on the ESA Hipparcos Catalog, the Yale Bright Star Catalog (5th Edition), and the Gliese Catalog of Nearby Stars (3rd Edition) with some extra data thrown in.

We can plot out to 128m from the centre point, ie whole sim, and the images in this post are based on plotting all stars within 20 parsecs (1 parsec is about 3 light years), around 1900 stars, at a scale of 5m per parsec!. Stars are coloured and sized based on spectral type (OBAFGKM) and Luminosity (I to VI).

The backdrop to the plot is a 256 x 256 cube with a texture of small white stars for effect purposes only. In the image above you can also just make out my avatar floating by the Sun.

We are not working on building the interactive features so you can interrogate each star and plot additional information (like exoplanets).

stars_2000_20ly_001.png

Zooming in towards Sol. The bright white stars are Sirius (lower right) and Procyon (upper right).

stars_2000_20ly_003.png

Sol. Proxima/Alpha Centauri group just under my arm!

20ps_planets_001.png

With planetary discs switched on. Discs are colour coded by planet type, red/orange for Jupiter type, blue for Neptunes, green for terrestrial. About 100 planetary discs within range.

The upshot of all of this of course is not only to show that we can plot larger and larger quantaties of stellar data (the eventual aim is to get the 40000 stars within 300 ly plotted), but that we can use OpenSim to plot almost any sort of data in 3D.

Share |

Adventures in #opensim data plotting #1

| | Comments (0) | TrackBacks (0)

4000points_001.png


One of our ongoing interests (helped along by a current research contract) is in how we use virtual worlds as immersive data visualisation spaces. You may be familiar with our Datascape virtual war-room, but our current focus is on plotting large amounts of data over  a sim-sized area. The challenges here are a) to get enough data points in and plotted in a reasonable amount of time and b) work out how best to represent them, c) how best to interact with them and d) how to navigate through the dataset.

We started using our existing SL plot-bot to plot objects in OpenSim - the downsides of that were plot range (you have to move the bot with 10m of each plot point) and getting data in (notecards limits you, HTTP is too slow/cumbersome.) But by doing a pre-sort of the data we could get the bot to plot about a data point a second over the whole sim and brought about 1000 data points in. 

Another approach was to use a programme to write an XML object file which Hippo could then import into SL as a single object. That gave us a nice 1000 object cube (see below), but was again a bit cumbersome, particularly is you wanted alignment and positioning with the sim itself.

1000points_002.png

We then started looking at RegionModules in OpenSim, as they appear to be th sensible solution, but it looks like they've been borked for several releases, and we'll have to wait for 0.7.1 for them to work again.

So the latest work has been using LibOMV to control a bot and get the bot to build the points. We were very pleasantly surprised to find that the bot can rez an object anywhere in the sim, no distance limit, so reading a data file and plotting points became almost easy. A shot from a test run is shown above, the bot plotting points every 0.5m across the sim at a rate of about 10 points per second. Admittedly it only got to just over 4000 points before it gave up, but that was on my laptop. Over the next weeks we hope to get to reliable plotting of 10,000+ data points. We'll keep you posted.

By the way the terrain file is an outline of the UK we brought in a while ago - combining a RAW file like that with some 2D overlay textures and the data plotting and we begin to have the beginning of quite a nice system.




Share |

Links


Like This

Share |

About this Archive

This page is a archive of recent entries in the Data Visualisation category.

Chatbots is the previous category.

Machinima is the next category.


Feeds


Disclaimer

All posts and comments represent the views and opinions of the contributer and should not be taken as representing the view or position of Daden Limited.