Getting Started Using OpenDX

3.4 Isosurface.net
Return to our Samples… opening dialog and select Isosurface.net. This program also uses the water molecule data set (the data is electron density, if you were wondering). It shows another powerful feature of DX: you can have any number of Image windows open at a time (within memory limits), and display different (or the same) views of the data objects. Here, two copies of the Isosurface module are used: one generates the surface you see in the lower Image window. The other instance is being applied to the output of a MapToPlane module whose purpose is to take a 2D slice through a 3D volume and map the data coincident with that 2D plane from the 3D data set. Thus, the Isosurface module applied after MapToPlane sees only a 2D plane with data on it and derives one or more 1D lines.

You probably would like a peek behind the curtain by this time. So on the "Data Explorer" anchor window, choose Windows: Open Visual Program Editor. This opens the programming editor window and you can view the actual program (all six modules) that makes the two images we've just viewed.

Let's talk about this "net" briefly. The Import module accesses a file by name from the file system. The contents of the file have previously been formatted in a way that DX understands. You cannot tell by simply inspecting the net, but this particular data set is of data sampled on a 3D grid. The 3D data is sent on the left to Isosurface and that module derives a 2D surface (topologically speaking) from the 3D volume and passes it to an Image window for display.

On the right, you see the previously described MapToPlane module. This takes a 2D slice from the 3D data volume and hands that slice to another Isosurface. This time, Isosurface is only able to derive 1D lines on that 2D surface and sends them to another Image. (Someone just asked: can I put both objects into the same Image? Yes. Hold that thought.)

It may initially seem unfortunate or confusing that there is no "Isoline" module, but this is actually the first indication of how generic and flexible many of DX's modules are. Since objects are "self-describing", they can tell a module like Isosurface what dimensionality they have and the module can then do the "right thing" for that type of object. In fact, this greatly simplifies the network programmer's task: if you want an "iso this" or an "iso that", you just use the Isosurface module. (Besides, if you want to get really picky, a line is a surface, topologically speaking.)

Let me emphasize, in case anyone wonders, that Isosurface created the surface on the fly; this object does not reside in the Imported data file as a geometric description.

Quit out of this program and return to Samples…