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
> 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
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
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
--
Jason Grout