Vedea, A New Language for Visually Working With Data
Vedea, or Microsoft Visualization Language from Microsoft Research Computational Science Laboratory, is a new language for creating interactive data-driven visualizations.
The language is built on .NET 4.0’s DLR with a syntax similar to C#’s with some differences:
- The language is dynamically typed. Variables do not need to be declared before being used.
- It does not require class constructs, without forbidding them.
- It is more of a functional languages relying on function calls rather than OOP.
- It implements bi-directional bindings.
- It has a Scientific Data Set (ScDS), a holder for complex data.
A binding is an assignment connecting one field to another, like in this example:
textbox.Text := slider.Value;
This means that when Value changes, Text will also change accordingly. A bi-directional binding looks a bit different:
textbox.Text :=: slider.Value;
That means that Text changes when Value changes, but also Value changes when Text does. Binding has interesting applicability especially when LINQ expressions are involved. Visual items – mouse position, clicks, drag, slider position, etc. – can be related to complex data that can be used through a sequence of operations. The user can work with data through simple keyboard, mouse or touchscreen actions, but also changes in the data can easily be reflected through visual changes on the screen. While such operations can be done with any language, Vedea has the merit of making it simpler.
A top syntactic construct is ScDS which relies on a host of providers – netCDF, HDF, SQL, CSV, etc. - to get complex data from various sources. The interesting bit is that such data “supports named variables, meta-data on variables (units of measure, dimensionality and other annotations) and the use of variables to form coordinate systems onto other variables.”
Vedea will come with new graphical ways of displaying data going well beyond pie charts that have been used for the last decades. Among the features are:
- Hierarchical scenegraph
- A full set of 2d primitives (polygons, lines, ellipses, circles, curves, arcs, images, text, etc)
- A full set of 3d primitives (cubes, spheres, capsules, cylinders, pipes, images, text, meshes, textures, materials, height-maps, cameras and lighting)
- Solid and alpha-blended (semi-transparent) colors
- Map object (using data from Bing Maps/Virtual Earth) which can be combined with 2d and 3d primitives
- A rich library of rendering utilities (e.g., Perlin noise, warping functions, color management)
- Animation features (linear and exponential interpolation for smooth variation of any Vedea variable or visual property)
- Direct binding of data to visuals (e.g., create one circle for every row in a database; bind properties of the circles to columns in the database)
- Planned support for Network viewers, volumetric renderers, physics effects and other high-level graphics constructs
Vedea will be made available in early 2010.