Scientific Visualization

From some recent mailing list discussion, a weakness for scientific data visualization has been made glaringly obvious. I'm not sure how much we could 'solve' this weakness, but here were 3 suggestions:

  1. A data IO patch for reading simple column based data. This would be presented as multiple arrays or multiple time series for dynamic data.
  2. A set of general 3D primitives (which appropriate texture coordinates) such as spheres, cylinders, boxes, cones, ... and useful dimensional properties, position, scaling in each axis, rotations.
  3. A colour ramp generation patch, mapping numerical values to images (textures) using one of a number of colour ramps, red-blue (hot to cold) etc.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

smokris's picture
2 patches?

So.. we've already got "String With File". We could make a "String To Structure" patch, which would take a csv or something and turn it into a structure of structures (a structure containing one structure for each line, which in turn has all of the CSV elements).

And then a "Point Structure Renderer" which displays the structure as GLPoints? (and takes a Color Structure input, where the structure is interpreted as an equally-spaced, linearly-interpolated spectrum?)

Does this solve the problem?

I'm not sure I understand the need for cylinders and cones?

A "Color Structure to Gradient" patch would also make color structures useful to, say, the built-in "Color Map" patch.

cwright's picture
CSV and more

I was thinking the exact same thing regarding CSV. Let's do that, shouldn't be difficult (famous last words).

I think that equally-spaced is a bit generous. I've seen a bunch of stochastically sampled data sets. Perhaps optionally bind one column to an axis offset? [EDIT: oops, misread the evenly spaced part to mean the data set, not the color input. sorry]

Point Structure Render would be cool in its own right. I'm not sure of cylinders, but Cones would be useful for visualizing vectors in 3-space. Cylinders for polarity maybe? (where one has an axis, but not a direction?) I'm not up to speed on what scientists need to visualize, so I'm kind of grasping here.

franz's picture
going the structure way

seems pretty obvious to me, and would provide interest for even non-scientist ppl (like me). And since you've achieved quite a bit with you structure recorder, structural viz would definetly be awesome. With maybe the ability to read a structure off the disk (XML ?), process it (aka structure tools...) and render it....

Example QC graph rendering by boinx attached

PreviewAttachmentSize
daf2.gif
daf2.gif32.01 KB

cwright's picture
woah

I remember searching around a few weeks ago, and coming across that picture. The graph part shocked me (still wondering how they did it, just out of curiosity).

What were your thoughts regarding XML, especially compared to 'established' data storage in CSV? I don't know if I see a reason, but then I'm generally anti-xml and often short-sighted.

franz's picture
CSV vs XML

I'm okay with CSV, as all XML compliant app can output the data to CSV format i guess. It's just that i'm not used to CSV that much, and XML format is just SO pervasive, nowadays, everything just seems to be able to export XML data... CSV is definetly OK ....

smokris's picture
or both

we can have both CSV and XML importer patches. (cwright can write the CSV one; i'll write the XML one :^P )

cwright's picture
timelapse

We also haven't addressed animating this stuff (or, having large datasets that change over time).

Also, is there significant overlap between this (cvs loader) and the 3D Object Loader that we could just pack them together? Seems a stretch to me, but maybe some discussion can work out the kinks.

round 2, fight! ;)

franz's picture
fusion

Yes please.... merging both concept also seems pretty obvious, as, (and discuss previously), it would allow to manipulate 3D data (esp. vertices) in a structure-wise manner.... thus allowing for instance to deform a mesh with another structure (sound... etc). More generally, i truly beleive that going the structure way for all you plugins IS an excellent idea... but i can't say more for round2, as i haven't been previewing your structure manipulation toolz (merge, concat, avg...)

cwright's picture
data reduction

One more data point:

It'd be great to see people develop QC patches that implement some of the known-good data reduction techniques from information visualization.