(Apparently my reply from a few days ago didn't get to the list for some 
reason, so I'm sending it again.)

Robert Hanson wrote:
> Jason,
>
> ho, ho! Now there's a challenge...
>   

Yeah, I figured it wouldn't be exactly trivial, but in reality, you guys
have already done all the hard work :).


> I am totally excited to hear that the Sage community (
> http://www.sagemath.org/) has embraced Jmol. What a cool thing. This is what
> open source is all about.
>   

I emphatically agree.  Again, we are *very* appreciative of the time and
effort you guys have put into a top-notch product.


> The JVXL file format is described in
> http://chemapps.stolaf.edu/jmol/docs/misc/JVXL-format.pdf Take a look there
>   

Yes, that's what I stayed up all night last night reading :).  Maybe
part of the problem was it was so late.  I don't have a background in
this, so I was learning what the marching cube algorithm was at the same
time.


> and see what you think. I'm not sure that is going to do the trick for you.
> But we can certainly work together to get something that does. I think it
> explains the basic idea. That we start with a 3D grid of values and aim to
> create an isosurface based on a given cutoff value. We use the marching cube
> algorithm, so we are basically creating a serial list of edges. It is this
> list of edges that is being registered on the line with the numbers you
> refer to below. There are lots of options.
>
> What exactly does a 3d contourplot look like? If you show me one, I might
> have some ideas.
>   

It would be enough to be able to send one level surface to Jmol.  A 3d
contour plot is just several level surfaces (i.e., isosurfaces) in the
same plot (usually with some sort of cut-away or transparency so that
you can see several level surfaces).  See
http://reference.wolfram.com/mathematica/ref/ContourPlot3D.html for
mathematica's implementation and images, for example.


Because we are communicating over the web to jmol running in the user's
browser, I think it's best for Sage to build the JVXL file containing an
isosurface on the server side and then send it to the client and have
jmol just plot that (if I understand things correctly).

In Sage, I'm starting with a function with three inputs and one output.
I'm confused about what I should do from there (yeah, I know I haven't
made much progress).  I think I should:

1. evaluate the function on a grid of points and store this grid in a
temporary variable,
2. Perform some sort of marching cube algorithm to somehow store the
JXVL format
3. Send the resulting jvxl file to jmol and have jmol do its magic.


To follow up on the specific question below, pseudocode for the last
paragraph before the Edge Fraction Data section is:

Go through all voxels (i.e., cubes) in the order prescribed (z varying
fastest, then y, then x).  For each cube, well, I'm not sure here.  Does
each number in the JVXL file represent a specific voxel (i.e., cube of 8
numbers)?  Again, what exactly does the number 115922 in the example in
the paper represent?  Say I have a voxel (numbered as in page 8), where
I determine that only the front intersection of edges 1, 2, and 10 is
under the surface (so the surface cuts edges 1, 2, and 10).  What number
do I put in the JXVL file?

Thanks,

Jason





------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to