Jmol English Français Español Home | Demonstration pages | Websites
Documentation | Wiki | History | FAQs
Browser check | Download | Project pages

Jmol FAQs

About the Jmol project
     How do you write Jmol?
     Is there another JMol?
     How do I reference Jmol in published papers?
Hardware requirements
     What are the minimum hardware requirements?
     What are the recommended hardware requirements?
     Is OpenGL or 3D hardware required to run the JmolApplet?
Application system requirements
     What platforms does the Jmol application run on?
Performance
     Performance is great! Why is it so fast?
     Rendering speed is really slow. What can I do?
     Will a 3D graphics card improve performance?
     Why does it get so much slower when I make the window bigger?
Graphics and rendering
     How are the graphics different in Jmol v10?
     I see jaggies. Why aren't the graphics anti-aliased?
     But I need some higher-quality images ...
     Does Jmol support isosurfaces?
     What shapes does Jmol support for protein secondary structure?
JmolApplet deployment
     For the applet, what must be installed on web client machines?
     Jmol.js JavaScript Library
     Can the JmolApplet be permanently installed locally, like a plug-in?
     Use SQUARE applets
     Use FIXED pixel width & height, not percentages
     What MIME types must be installed on the server?
     Should I use APPLET, OBJECT or EMBED for my html tag?
     I am having problems with loadInline
     The loadInline param does not seem to work
Scripting questions
     rotate Z ; rotate Y ; rotate Z

About the Jmol project

How do you write Jmol?

Capital J, lower case mol

Please do not write it any other way ... to avoid confusion with other projects ... keep reading ...

Is there another JMol?

Yes, there is a project called JMol ... but not Jmol ... note the difference in spelling.

Will York wrote the JMol viewer at the Complex Carbohydrate Research Center, University of Georgia, USA. The home page was at http://www.ccrc.uga.edu/~will/jmol/jmol.html (it is no longer there).

How do I reference Jmol in published papers?

Both on the web and in published papers you should reference Jmol in this way:
Jmol: an open-source Java viewer for chemical structures in 3D. http://www.jmol.org/

Hardware requirements

What are the minimum hardware requirements?

400 Mhz CPU + 128 Mb RAM
There is no absolute minimum. This is a practical minimum. Performance is a function of molecule size, window size, and image complexity.

What are the recommended hardware requirements?

750 Mhz CPU + 256 Mb RAM -- Of course, more is better.

Is OpenGL or 3D hardware required to run the JmolApplet?

No special hardware is required to run the JmolApplet.

The graphics engine is a z-buffer implemented in Java, and designed for rendering molecules. (In fact, designed just for Jmol.)

Application system requirements

What platforms does the Jmol application run on?

The Jmol application should run on any system that supports Java 1.4. Previous versions of Java are not supported.

Performance

Performance is great! Why is it so fast?

It does not use any Java graphics calls. The entire image is built offscreen and sent to the screen with one java.awt.Graphics.drawImage operation.

Rendering speed is really slow. What can I do?

  • Get a faster machine ... something built this century
  • Convince Sun to fix graphics performance problems
  • Review the source code and find some way to speed it up

Will a 3D graphics card improve performance?

A high-performance graphics card will certainly help. The underlying system spends a lot of time blitting 32-bit RGB bitmaps to the screen. But no 3D capabilities of the card will be used.

Why does it get so much slower when I make the window bigger?

Twice as many pixels means twice as much work ... and if your applet is twice as wide and twice as high then you have 4 times as many pixels so you get 1/4 the speed.

Graphics and rendering

How are the graphics different in Jmol v10?

A new 3D graphics engine has been developed for Jmol v10 to properly support intersecting shapes. This is important when viewing spacefilled molecular models.

The 3D engine also has much higher performance when dealing with larger molecules.

I see jaggies. Why aren't the graphics anti-aliased?

No java graphics calls are used in the construction of the image. The entire scene is constructed in memory and transferred to the screen with one drawImage operation.
Hey ... aren't you the person who was complaining about speed? (A future release will include Full-Scene-Anti-Aliasing.)

But I need some higher-quality images ...

Use the Jmol application and export to PovRay.

Does Jmol support isosurfaces?

Yes. Starting with version 10.2, Jmol has some functionality for rendering isosurfaces, that is greatly expanded on version 11.0.

What shapes does Jmol support for protein secondary structure?

Using RasMol/Chime terminology, Jmol current supports backbone, trace, strands, ribbons, meshribbons, cartoons, and rockets.

JmolApplet deployment

For the applet, what must be installed on web client machines?

No special Jmol-specific software needs to be installed on the client machines.

Client machines do not need anything other than a web browser that supports Java. When a client visits a web page containing the JmolApplet, the applet gets automatically downloaded from the web server and executed.

The JmolApplet runs as an untrusted applet. The applet does not any confirmation from the user to load and begin execution. There is also a trusted version of the applet (JmolAppletSigned) for authors that prefer to make use of its advantages (see TechNotes, Browser Enhancement Technologies for details).

Jmol.js JavaScript Library

Use the Jmol.js JavaScript Library to allocate your applets within your web pages.

Can the JmolApplet be permanently installed locally, like a plug-in?

No

Applets get cached in the local browser cache. Subsequent uses of the the applet will pull the applet from the cache (after confirming that the date/time/size have not changed on the web server). At least, that's the theory ... and it works correctly on the browsers I have seen :-)

Note that I am investigating several schemes to address this request. I think it is possible to come up with a scheme that would allow local installation to facilitate offline use. The problem areas are 1) complexity for end-users associated with a local installation, and 2) version control problems when different web sites use different versions of the Jmol applet.

Use SQUARE applets

You should probably use the Jmol.js JavaScript Library

Applets should generally be square ... width == height.

This is because the molecule will be automatically scaled so that it fits within the smaller of the two dimensions. The the other pixels will never be used (unless zoom is used). Nevertheless, those pixels must be cleared to the background color each time the window is repainted. This clearing is a relatively expensive operation.

Use FIXED pixel width & height, not percentages

You should probably use the Jmol.js JavaScript Library

<applet ... width='{n}' height='{n}' ... > where {n} = 300, 400, 600 ... you get the idea.

While most browsers allow you to specify applet width and height in percentages, in practice this causes many problems. It tends to trigger lots of browser bugs during window resize operations.

What MIME types must be installed on the server?

None. The web server needs no special configuration.

Applets do not get associated with MIME types in the same way that plugins do. While the Chime plugin requires configuration of the web server, the JmolApplet does not.

Check out the Tech Note on Browser Enhancement Technologies

Should I use APPLET, OBJECT or EMBED for my html tag?

You should probably use the Jmol.js JavaScript Library

Always use the APPLET tag.

Do not be confused by the Sun Java Plug-in developer documentation!

Unfortunately, the Sun Java Plug-in documentation does not do a good job of explaining the current state of the world. The doc was written several years ago and really needs to be cleaned up. In many places it still seems to recommend the use of the OBJECT tag. That is the way things used to be up until about 2002. Since then the Sun Java Plug-in has had direct support for the APPLET tag on Microsoft Internet Explorer, and this issue has essentially gone away. However, Sun needs to maintain the doc for legacy corporate intranet applications that were deployed using the OBJECT tag.

Chapter 12 of the Sun Java Plug-in developer guide says:
With Internet Explorer it is recommended that you use the APPLET tag for internet deployment.
...
With Netscape it is recommended that you use the APPLET tag for internet deployment.

I am having problems with loadInline

You should probably use the Jmol.js JavaScript Library

Make sure you make a clear distinction between the loadInline param tag and the loadLine method.

The loadInline param does not seem to work

You should probably use the Jmol.js JavaScript Library

Unfortunately, the mechanism for the loadInline param tag is rather ugly ... the HTML specification causes a few problems for us.

The HTML specification requires that newline characters get removed (and carriage-return characters get turned into spaces) before the parameter string is passed to the applet. Therefore, the browser removes the newline characters before they get sent to the applet.

Jmol has a special syntax to work around this issue. you put a vertical bar beginning of each line ... like this:

	...
	<param name="loadInline" value="
|put your
|molecular model
|data here
" />
The JmolApplet will replace the vertical bars with a newline character. (Any white space up through the first vertical bar is removed).

If you have a text string with the molecular model and you want to convert it, you can use a regular expression to perform the substitution. Different OS platforms use different conventions for line termination, so your code should check for three different end-of-line sequences ... carriage-return, linefeed, or carriage-return linefeed.

In Perl: myMolecularModel ~= s/\r|\n|\r\n/|/g;

In JavaScript: myMolecularModel.replace(/\r|\n|\r\n/g, "|");

Scripting questions

rotate Z ; rotate Y ; rotate Z

When you issue the script the command show orientation it outputs three axis rotations that will return the molecule to its current orientation. This type of rotational orientation in 3-space is known as an Euler Angle.

Unfortunately, there are several different conventions for Euler Angles. The most common are Z-X-Z (the x-convention) and Z-Y-Z (the y-convention). The Z-Y-Z (y-convention) is generally followed in in quantum mechanics. Therefore, Jmol uses the y-convention.

For more info see
http://www.algebra.com/algebra/about/history/Euler-angles.wikipedia
http://mathworld.wolfram.com/EulerAngles.html http://casgm3.anorg.chemie.uni-tuebingen.de/klaus/nmr/conventions/euler/euler.html



Hosted by SourceForge Logo