What enhancements to Jmol and the Jmol in sage-notebook would interest you?...

12 views
Skip to first unread message

Jonathan Gutow

unread,
Nov 6, 2010, 9:49:06 PM11/6/10
to sage-devel, sage...@googlegroups.com, sage-n...@googlegroups.com
Dear Sage user and developers,

First I apologize if you see multiples of this message, but I wanted to reach as much of the community as possible so posted to sage-devel, -edu and -notebook. If there is anywhere else this should be cross listed please let me know.

I'm looking for input on what would be interesting to this community by way of enhancements to Jmol and how it works with Sage or within the notebook. I'm looking for this input because I may be able to get support to devote a month or two to Jmol development next summer aimed specifically at Jmol combined with Sage. The proposal is due December 1. Below is a list of things I was considering working on and wanted input on whether these would be useful to the community. Please comment on these and suggest other things you think would be useful.

Bob Hanson (lead Jmol developer) and I would very much like to increase the cooperation between the Jmol project and the Sage project and hope some dedicated time from me will encourage this. The main reason for me to do this is that I use Sage with my upper level Physical Chemistry classes, so am the Jmol developer who is most familiar with Sage. I also developed a new notebook interface for Jmol based on requests from some of the community. This interface is in the testing stage (see trac # 9238: http://trac.sagemath.org/sage_trac/ticket/9238).

In addition to being sure that I work on something the community is interested in, I also need a commitment from one or two people who are very familiar with the notebook code to be available for consultation during the months of May, June and July. If any of you can help please send me a private e-mail, using the address below. Thanks.

My present ideas in order of interest to me are:

1) Development of a slicer within Jmol. This would allow hiding all but an arbitrary thickness and orientation slice of the 3-D image. This involves both Jmol developments and probably additions to the javascript interface for the notebook. This I believe is reasonably straight forward.

2) Development of a plot4d command allowing time dependent 3-D plots. I believe this requires a little work on Jmol, but mostly a reworking of how sage sends data to Jmol.

3) I am also interested in exploring projections of hypersurfaces. This is probably the beginning of a much larger project and could involve only work in sage or parallel enhancements of sage and Jmol.

4) Reworking the way sage packages data for Jmol so that we could use more of Jmol's internal axes and things of that nature.

I have other ideas, but doubt that I could manage more than either #1 or #2 plus a stab at #4 in two months.

So if you have other ideas, words of encouragement or discouragement please let me know. Please reply to this discussion except in the case of volunteering to make yourself available as a resource next summer.

Thanks,
Jonathan
Dr. Jonathan H. Gutow
Chemistry Department gu...@uwosh.edu
UW-Oshkosh Office: 920-424-1326
800 Algoma Boulevard FAX:920-424-2042
Oshkosh, WI 54901
http://www.uwosh.edu/facstaff/gutow

Jason Grout

unread,
Nov 6, 2010, 10:22:15 PM11/6/10
to sage-...@googlegroups.com
On 11/6/10 8:49 PM, Jonathan Gutow wrote:

> 1) Development of a slicer within Jmol. This would allow hiding all
> but an arbitrary thickness and orientation slice of the 3-D image.
> This involves both Jmol developments and probably additions to the
> javascript interface for the notebook. This I believe is reasonably
> straight forward.

I think this would be fantastic. Just the other day, when we talked
about directional derivatives in multivariable calc, it would have been
handy to have a slicer to show how the directional derivative gives the
slope of the tangent line in a particular slice of a function. As it
was, I constructed a slicing plane and intersection curve "by hand" to
show the slice.


>
> 2) Development of a plot4d command allowing time dependent 3-D plots.
> I believe this requires a little work on Jmol, but mostly a reworking
> of how sage sends data to Jmol.

This would be cool too. Along these lines, it would be cool to "ride" a
parametric curve, for example, to show how motion works in 3d (T,N,B
vectors, for example).


>
> 3) I am also interested in exploring projections of hypersurfaces.
> This is probably the beginning of a much larger project and could
> involve only work in sage or parallel enhancements of sage and Jmol.
>
> 4) Reworking the way sage packages data for Jmol so that we could use
> more of Jmol's internal axes and things of that nature.

That would be great too.

Here is one thing that I don't know the level of difficulty in fixing.
It may have to do with (4) above (dealing with Sage's rescaling of
things before sending to jmol). If I have two planes that intersect,
but are almost parallel, there is a very unclean line of intersection
that flickers a lot as you rotate the figure. For example, see
http://sagenb.org/home/pub/2545/

I notice that, for example, Mathematica has a very clean line of
intersection that does not flicker. Maybe this is an issue on the Sage
side (i.e., we should be splitting our triangles at the point of
intersection so that each triangle is cleanly on one side of the
intersection), or maybe it could be handled on the jmol side. I don't
know. What do you think?

Thanks,

Jason

--
Jason Grout

Volker Braun

unread,
Nov 6, 2010, 11:19:45 PM11/6/10
to sage-devel
I also noted that the z-ordering of polygons done by jmol has issues
close to where triangles meet.

Being able to generate 2d vector graphics for 3d graphics objects
would be nice.

Is there a roadmap for the future of 3d graphics on Sage? Having
something hardware accelerated would be nice with today's hardware
capabilities. Or are we just waiting for realtime raytracing to be
common place?

Volker

William Stein

unread,
Nov 6, 2010, 11:21:01 PM11/6/10
to sage-n...@googlegroups.com, gu...@uwosh.edu, sage-devel, sage...@googlegroups.com
On Sat, Nov 6, 2010 at 6:49 PM, Jonathan Gutow <gu...@uwosh.edu> wrote:
> Dear Sage user and developers,
>
>>
> In addition to being sure that I work on something the community is interested in, I also need a commitment from one or two people who are very familiar with the notebook code to be available for consultation during the months of May, June and July.  If any of you can help please send me a private e-mail, using the address below.  Thanks.
>

I intend to be available for notebook consultation during those
months, and have an interest in doing significant notebook development
then (I recently got some specific grant support for this).

-- William Stein

Jason Grout

unread,
Nov 7, 2010, 1:03:53 AM11/7/10
to sage-...@googlegroups.com


Of course, jmol has been playing a central role in 3d graphics in Sage,
so that is a clear part of the roadmap.

Also, I have been working yesterday and today on understanding webgl
better and playing with implementing x3dom [1] in Sage as another 3d
graphics viewer (since we can already generate x3d files). I'm not very
successful (it seems that there are problems including an x3d inline
reference in various beta-level browsers using the beta-level library
x3dom, with my alpha-level understanding of x3d), though I have at times
had a webgl figure up and working in the sage notebook.

Carl Witty also worked for a bit on a webgl backend, and mentioned
exploring using SceneJS to do rendering.

Thanks,

Jason


[1] http://www.x3dom.org/


--
Jason Grout

Oscar Lazo

unread,
Nov 7, 2010, 1:17:20 AM11/7/10
to sage-devel


On Nov 6, 7:49 pm, Jonathan Gutow <gu...@uwosh.edu> wrote:
>
> 2) Development of a plot4d command allowing time dependent 3-D plots.  I believe this requires a little work on Jmol, but mostly a reworking of how sage sends data to Jmol.

That sounds very nice! Something I would love to see is genuine real
time interacts. I am not familiarized with interact code, but it seems
to me that when it needs to show a 3d plot that depends on some
parameter it recalculates and reloads jmol every time the plot
changes. It would be better if jmol didn't have to load each time and
it could change it's plot in a truly interactive way. I'm sure if this
is idea involves working with sage or jmol, but those are my two
cents...

Oscar

mmarco

unread,
Nov 7, 2010, 10:03:49 AM11/7/10
to sage-devel
I don't know if it is already done, but it would be great to have the
possibility of showing a curve as the intersection of two implicit
surfaces.

Jonathan

unread,
Nov 7, 2010, 12:15:48 PM11/7/10
to sage-devel
Jmol does have the ability to show the intersection curve of two
planes. At the moment that requires using the Jmol command line
interface. I will put it on the list of things to figure out how to
make a GUI to control that.

Jonathan

unread,
Nov 7, 2010, 12:18:51 PM11/7/10
to sage-devel
On Nov 6, 8:22 pm, Jason Grout <jason-s...@creativetrax.com> wrote:

> This would be cool too.  Along these lines, it would be cool to "ride" a
> parametric curve, for example, to show how motion works in 3d (T,N,B
> vectors, for example).

That is one of the places I am interested in going as in chemistry we
think about chemical reactions riding along the potential energy
surface of the reaction. Jmol already has a "fly-through" ability.
It would take some work to make it track a curve, but I think it could
be done.

Jonathan

unread,
Nov 7, 2010, 12:20:58 PM11/7/10
to sage-devel
This would not effect interacts, but if Jmol were passed all the
necessary data the interaction could be in real-time as Jmol is
running on the local machine. Along these lines we may want to
consider an automatic callback to Sage to do a recalculation if the
user zooms in a lot.

Jonathan
Reply all
Reply to author
Forward
0 new messages