Jmol Changelog

New in version 14.2.4

October 9th, 2014
  • bug fix: annotation atom sets not adjusted for added hydrogens
  • bug fix: 14.3.3_2014.08.02 broke mmCIF reader
  • bug fix: BinaryDocument (Spartan file) reading broken in 14.1.12_2014.03.18

New in version 14.1.8 Beta (February 12th, 2014)

  • new feature - set cartoonRibose:
  • draws in ribose rings, with facets showing puckering
  • connects via C4'-C5'-O5'-P explicitly
  • shows C3'-O3' for reference.
  • disables cartoonBaseEdges (Leontis-Westhof Edges)
  • disabled by SET cartoonBaseEdges ON
  • suggested by Rick Spinney, Ohio State
  • new feature: anim frame [a,b,c,d] works with negative numbers to indicate ranges:
  • anim frame [1, -5, 10, -6] --> [1,2,3,4,5,10,9,8,7,6]
  • read as "1 through 5 and then 10 through 6"
  • new feature: Tinker file reader (and FoldingXYZ reader upgrade):
  • Can use Tinker:: but this is only required if first line is JUST an atomCount
  • accommodates older Tinker format with n-1 atoms for atomCount
  • allows for trajectories and desired model number
  • new feature: (actually 13.1 but undocumented) animation frame [ 51 50 49 48 47 46 45 (etc) 27 1 2 3 4 5 6 7 (etc)....]
  • new feature: x = compare({atomset1}, {atomset2}, "MAP")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "all")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "best")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "H")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "allH")
  • new feature - x = compare({atomset1}, {atomset2}, "MAP", "bestH"):
  • generates one or more correlations lists based on non-aromatic SMILES
  • optionally includes H atoms
  • optionally generates all possible atom mappings
  • returns int[][] = [ [a1 b1],[a2 b2],[a3 b3],... ]
  • where an and bn are integer atom indices or list when "all" option is chosen.
  • the following will generate one atom correlation map for two structures including hydrogen atoms: load files "a.mol" "b.mol" x = compare({1.1} {2.1} "MAP" "H")
  • the following compares the model of caffeine from NCI to that from PubChem:
  • load $caffeine;load append :caffeine;frame *
  • select 2.1; label %[atomIndex]
  • compare {1.1} {2.1} SMILES rotate translate
  • x = compare({1.1}, {2.1}, "MAP" "bestH")
  • for (a in x) {a1 = a[1];a2=a[2];select atomindex=a1;label @a2}
  • new feature: compare {model1} {model2} SMILES:
  • no need to give SMILES; Jmol can generate it from {model1}
  • new feature: x = {*}.find("SMILES", "H"):
  • generates SMILES with explicit H atoms
  • bug fix: substructure() function using SMILES instead of SMARTS, so only full structures;
  • bug fix: better error trapping and messages in SMILES-related methods
  • bug fix: make webexport discovery of path to Jmol.jar and jsmol.zip more robust.
  • bug fix: getProperty extractModel not honoring subset
  • bug fix: set pdbGetHeader TRUE does not capture REMARK3 REMARK290 REMARK350
  • bug fix: getProperty("JSON",....) should wrap value in {value:...}
  • bug fix: MO persistent translucency broken in 11.x
  • bug fix: show MENU write MENU load MENU all broken in 12.2
  • bug fix: {*}[n] should be empty if nAtoms

New in version 14.0.7 (January 21st, 2014)

  • Bug fix: 14.0.6 fatally bugged -- unitcell and echo rendering, getProperty

New in version 14.0.5 (January 11th, 2014)

  • Bug fix: LCAOCartoon translucency broken
  • Bug fix: translucent backbone broken
  • Bug fix: pqr,p2n readers broken
  • Bug fix: isosurface map property xxx can fail if surface is a fragment that (somehow) has a point not associated with an underlying atom.

New in version 14.1.5 Beta (January 10th, 2014)

  • bug fix: LCAOCartoon translucency broken
  • bug fix: translucent backbone broken
  • bug fix: pqr,p2n readers broken
  • bug fix: isosurface map property xxx can fail if surface is a fragment that (somehow) has a point not associated with an underlying atom.

New in version 14.0.4 (January 7th, 2014)

  • Bug fix: rockets broken
  • Bug fix: PDB byChain, bySymop not supported.

New in version 14.0.2 (December 17th, 2013)

  • bug fix: modulation not distinguishing between q and t;
  • bug fix: modulated measurements not working
  • bug fix: not skipping set defaultLattice "{NaN NaN NaN}"
  • bug fix: isosurface map atomic orbital fails
  • bug fix: vibrational display of modulation with distances doesn't update
  • bug fix: vibration off causes unnecessary warning in console
  • bug fix: draw symop broken
  • bug fix: array.mul(matrix3f) crashes Jmol
  • bug fix: select symop=1555 broken
  • bug fix: set picking dragSelected not working
  • code: refactored CifReader, separating out MMCifReader and MSCifReader code: minor renaming/refactoring of methods in SV
  • code: adds javajs.api.JSONEncodable interface
  • super-simple implementation in org.jmol.script.SV
  • allows implementations of javajs to deliver custom JSON results

New in version 14.1.2 Beta (December 14th, 2013)

  • new feature: JavaScript: JSmol api Jmol.evaluateVar(applet, expression):
  • better than Jmol.evaluate because result is a JavaScript variable, not a string.
  • DEPRECATING JSmol api Jmol.evaluate(applet, expression)
  • new feature: getProperty("JSON", ....):
  • returns JSON code for property
  • allows JavaScript: x = Jmol.getPropertyAsArray("variableInfo","some expression")
  • new feature: getProperty variableInfo :
  • allows retrieval of variables in Java or JSON format
  • evaluates expression
  • defaults to "all"
  • new feature: modulation adjustable by q and t, up to d=3:
  • modulation on/off (all atoms)
  • moduation {atom set} on/off
  • modulation int q-offset
  • modulation x.x t-offset
  • modulation {t1 t2 t3}
  • modulation {q1 q2 q3} TRUE
  • new feature: pickedList:
  • ordered array of recently picked atoms
  • can be used the same as the PICKED variable, but that is ordered sequentially, not temporally
  • twice clicking off structure clears the list
  • @{pickedList}[0] last-picked atom
  • @{pickedList}[-1] next-to-last-picked atom
  • @{pickedList}[-1][0] last two picked atoms
  • new feature: array.pop(), array.push() - similar to JavaScript
  • new feature: modulation scale x.x
  • new feature: caption "xxxxx" x.x - number of seconds to run
  • new feature: modulation 0.2 // sets t-value
  • new feature: array.pop(), array.push(x)
  • a=[];a.push("testing");print a.pop()
  • new feature: select ON/OFF atom-set:
  • turns selection halos on or off as well as doing the selection
  • convenience only
  • new feature: pt1.mul3(pt2):
  • returns {pt1.x*pt2.x, pt1.y*pt2.y, pt1.z*pt2.z}
  • if both are not points, reverts to simple multiplication
  • new reature: array.mul3(pt2) - applies mul3 to all elements of array
  • new feature: {atomset}.modulation(type, t):
  • delivers P3 (displacement modulation)
  • implemented only for type="D" (optional)
  • optional t is 0 by default
  • bug fix: modulation not distinguishing between q and t;
  • bug fix: modulated measurements not working
  • bug fix: not skipping set defaultLattice "{NaN NaN NaN}"
  • bug fix: isosurface map atomic orbital fail
  • bug fix: vibrational display of modulation with distances doesn't update
  • bug fix: vibration off causes unnecessary warning in console
  • bug fix: draw symop broken
  • bug fix: array.mul(matrix3f) crashes Jmol
  • bug fix: select symop=1555 broken bug fix: set picking dragSelected not working
  • code: refactored CifReader, separating out MMCifReader and MSCifReader
  • code: minor renaming/refactoring of methods in SV
  • code: adds javajs.api.JSONEncodable interface:
  • super-simple implementation in org.jmol.script.SV
  • allows implementations of javajs to deliver custom JSON results

New in version 14.0.1 (December 6th, 2013)

  • new feature: Jmol._j2sLoadMonitorOpacity (default 55)
  • new feature: load() function, as in print load("xxx"), limited local file reading in applet:
  • no root-directory files
  • no files without extension
  • no files with any "/." in path
  • new feature: JAR files securely signed
  • new feature: applet JAR files include JNLPs (Java Network Launch Protocols) for local file loading
  • new feature: JSmol URL options _USE= _JAR= _J2S= overrides for Info data
  • new feature: (was present but undocumented) print quaternion([array of quaternions]) - returns spherical mean a la Buss and Fillmore
  • new feature: print quaternion([array of quaternions], true):
  • returns standard deviation for spherical mean a la Buss and Fillmore
  • units are angular degrees
  • new feature - named quaternion modulus values:
  • print quaternion(1,0,0,0)%"matrix"
  • options include w x y z normal eulerzxz eulerzyz vector theta axisx axisy axisz axisangle matrix
  • ew feature - set celShadingPower:
  • sets strength of cel shading
  • integer values
  • default 10 is a thick line
  • 5 is a fine line
  • 0 turns cel shading off
  • negative value removes interior shading -- outline only
  • operates on pixel based on normal to light source (power > 0) or user (power < 0)
  • sets color to background contrast (black or white) when normal_z < 1 - 2^-(|celShadingPower|/10)
  • new feature: mmCIF reading reports _citation.title in Jmol scripting console
  • new feature: minimize SELECT {atomset} ONLY - ONLY option excludes all other atoms
  • new feature: minimize {atomset} - implicit SELECT and ONLY
  • new feature -"extensions" directories in JSmol for contributed JS and SPT scripts:
  • jsmol/js/ext
  • jsmol/spt/ext
  • new feature: load ... filter "ADDHYDROGENS" - local set pdbAddHydrogens just for one load command
  • new feature: compare {1.1} {2.1} BONDS SMILES
  • new feature: list = compare({atomset1} {atomset2} "SMILES" "BONDS")
  • new feature: write JSON xxx.json
  • new feature: [#210] JSON {"mol":...} reader
  • ew feature - set particleRadius :
  • global radius for atoms over the max radius value (16.0)
  • defaults to 20.0
  • new feature - CIF and PDB filters "BYCHAIN" and "BYSYMOP" for virus particulation:
  • creates just one atom per chain or per symop
  • size can be scaled larger than the max of 16 Angstroms using, for example:
  • set particleRadius 30;
  • spacefill 30; // any number over 16 here uses particleRadius instead
  • new feature: list = compare({atomset1} {atomset2} SmartsString "BONDS")
  • new feature: symop() function allows symmetry from biomolecule filter for PDB and mmCIF
  • new feature - isosurface SYMMETRY:
  • applies symmetry operators to isosurface
  • more efficient rendering and creation
  • default selection is {symop=1} only
  • default coloring is to color by symop based on propertyColorScheme
  • example:
  • load 1stp filter "biomolecule 1"
  • color property symop
  • isosurface sa resolution 0.8 symmetry sasurface 0
  • new feature - new atom property: chainNo:
  • sequentially from 1 for each model;
  • chainNo == 0 means "no chain" or chain = ''
  • new feature - new propertyColorScheme "friendly":
  • color-blindness-friendly color scheme
  • used at RCSD
  • new feature: JSpecView completely Java-free; includes 2D nmr and PDF printing of spectra
  • new feature - WRITE PDF "xxx.pdf" quality > 1 requests landscape mode:
  • uses efficient custom PDF creation classes
  • sizes image to fit if too large
  • new feature: JSpecView adds PDF and 2D NMR for JavaScript
  • new feature: load "==xxx" FILTER "NOIDEAL" - Chemical component load from PDB using the "nonideal" coordinate set
  • bug fix: write CD removed; ChemDoodle has changed formats; use JSON instead
  • bug fix: PDB and CIF files indicated assemblies such as PAU as large negative number
  • bug fix: COMPARE with no rotation starts infinite loop
  • bug fix: looping problem with delay(-1)
  • bug fix: Mouse wheeling for Chrome in JavaScript
  • bug fix: JavaScript popup menu fix for language changes
  • bug fix: JavaScript core components not being processed; Jmol._debugCode not recognized
  • bug fix: unitcell offset incorrectly for biomolecules; origin incorrect for axes.
  • bug fix: isosurface/mo FRONTONLY broken
  • bug fix: language localization broken in JavaScript
  • bug fix: ADF reader not reading MO output from DIRAC Build 201304052106
  • bug fix: Safari reports yellow Jmol info instead of asking to accept applet
  • -- tag needed to be
  • bug fix: CIF reader not handling _pdbx_struct_assembly_gen.assembly_id properly
  • -- wrong atom set for load =3fsx.cif filter "ASSEMBLY 1"
  • bug fix: [#558 Compatibility issue with ChemDoodle] JSmol error in definition of Number.toString()
  • bug fix: mouse wheel not working properly
  • bug fix: JavaScript J2S compiler error does not coerce int += float to integer
  • bug fix: JavaScript WEBGL option broken
  • bug fix: JavaScript NMRCalculation does not access resources
  • bug fix: JavaScript stereo not implemented
  • bug fix: MOL reader fix for multiple-model file (just 13.3.9_dev)
  • bug fix: MOL reader error with load APPEND -- does not continue atom numbers
  • bug fix: CIF modulation reader not reading linear combinations of cell wave vectors
  • bug fix: CIF reading with filter "BIOMOLECULE 1" fails if only the identity operation
  • bug fix: mmCIF reader not reading all _pdbx_struct_assembly_gen.oper_expression options
  • bug fix: PDB CRYST entry 1.0 1.0 1.0 90 90 90 should mean "no unit cell" regardless of biomolecule filter
  • bug fix: isosurface slab not adapting well for flat molecules such as HEM
  • bug fix: print userfunc() may fail (userfunc() by itself is fine)
  • bug fix: within(helix) not implemented for C-alpha-only polymers
  • bug fix: _modelTitle not updated when a new file is loaded or zapped
  • bug fix: {*}.symop.all not delivering symmetry operator appropriately
  • bug fix: for triple bond in SMILES in URLs
  • bug fix: build.xml missing PDF creation classes
  • bug fix: following Java update, adding proper path check for local signed applet
  • bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518)
  • bug fix: Manifests updated for signed and unsigned applet JAR files
  • bug fix: write fails
  • bug fix: applet scriptWait() method broken
  • bug fix: PyMOL session may display unit cell after read from saved state
  • bug fix: MMCIF reader fails for multiple assembly types
  • bug fix: CIF reader "biomolecule 1" translating to "molecular" rather than "assembly"
  • bug fix: load trajectory with multiple files not working
  • bug fix: JS applet popup menu not closing properly upon language change
  • bug fix: HTML checkbox id attribute not assigned
  • code: refactoring of applet/appletjs code; org.jmol.util.GenericApplet
  • code: refactoring, simplification of buffered readers and buffered input streams.
  • code: JavaScript refactoring, better build_...xml
  • code: JavaScript Integer, Long, Short, Byte, Float, Double all reworked
  • code: disambiguation of GT._
  • code: Refactored all unnecessarily inner classes to top level
  • code: isolated util/ModulationSet using api/JmolModulationSet
  • code - All applet language localization read from plain .po files :
  • as for JavaScript already
  • no need to compile class files for applet languages
  • no language .jar files
  • new jsmol/idioma directory holds .po files for both Java and HTML5
  • code: faster isosurface rendering adding implicit "frontonly" with select {xxx} ONLY
  • code: faster isosurface rendering with implicit "isosurfacepropertySmoothing FALSE" in relevant (integer) cases
  • code: JmolBinary.getBufferedReaderForResource() - consolidates all references to URL.getContent() and Class.getResource()
  • code: JavaScript work around for inner class problem with variable name reassignment
  • code: work-around for eval(functionName) not working in JavaScript.
  • code: experimenting with ambient occlusion
  • code: Required manifests added for Java Ju51 (January, 2014).
  • code: JmolOutputChannel moved to javajs.util.OutputChannel
  • code: jsmol.php fixed to allow " in saveFile method
  • code: refactoring Parser into javajs.util
  • code: DSSP moved to org.jmol.dssx, reducing JSmol bio load by 20K
  • code: iText package jettisoned, no longer nec, as I wrote my own PDF creator

New in version 13.0 (August 24th, 2012)

  • This major release brings to the stable release several very important new features in Jmol developed over the past year.
  • With well over 500,000 full application downloads (that is, distinct binary downloads by application users or developers, not simple applet downloads by web page visitors), full server-side Java support for non-Java (iPhone/iPad) or non-applet (Android) mobile devices, and a completely new JavaScript interface, Jmol is well-positioned for the next phase of development of a high-level scripted high-functional HTML5/WebGL user interface.
  • New features (see http://chemapps.stolaf.edu/jmol/docs/examples-12/new.htm) include:
  • APPLET:
  • a new OOP JavaScript interface (Jmol-JSO) allowing nonJava options such as ChemDoodle and GLmol as well as JME/JSpecView connectivity (see http://wiki.jmol.org/index.php/Jmol_Javascript_Object) to be seamlessly integrated into a web page in a platform-aware manner.
  • JmolData full "headless" operation for server-side processing allowing image-creation, server processing, and remote cross-domain sourcing for the unsigned applet and applet surrogates such as ChemDoodle and GLmol.
  • BIOPHYSICS:
  • COMPARE command
  • FILE READING:
  • reading of JCAMP-DX files having structure/spectra assignment data using ##$MODELS and ##$PEAKS (see http://chemapps.stolaf.edu/jmol/jspecview)
  • Gaussian log reading of Natural Transition Orbitals
  • automatic PNGJ file caching for immensely faster loading of PNGJ files from remote servers
  • FILE WRITING:
  • write PNGJ files encapsulate all model file data into one PNG file
  • write image 400 400 PNGJ "http://....." POSTs JMOL or IMAGE or structure to a server as application/octet-stream
  • write MOL adds partial charge data as > in SDF format
  • multiple-scene PNGJ files allowing minimal or full data loading and scripted animations
  • ISOSURFACES:
  • isosurface caching
  • isosurface MOVE [[...matrix4f...]] moves/rotates an isosurface (for
  • the state)
  • MINIMIZATION:
  • MMFF94/UFF minimization and energy calculation
  • MOLECULAR DATA:
  • show CHEMICAL
  • show NMR
  • MOLECULAR PLAYGROUND:
  • MolecularPlayground remote status and remote control
  • SOLID-STATE PHYSICS:
  • solid state physics support

New in version 12.2 (October 4th, 2011)

  • FEATURE CHANGE: "ligand" definition changed to
  • !(protein,nucleic,water,UREA)"
  • instead of "hetero and not solvent"
  • FEATURE CHANGE: default zShadePower set to 3
  • FEATURE CHANGE: undocumented a[13] = 3 (where a is a matrix, for a[1][3]) removed
  • FEATURE CHANGE: DSSP default for "calculate structure"
  • -- old way is now "calculate structure RAMACHANDRAN"
  • FEATURE CHANGE: DSSP default for LOAD of PDB file with no header.
  • in previous versions, Jmol used a ramachandran-angle-based calculation
  • for secondary structure determination when a PDB file had no HELIX or SHEET records.
  • It just seems reasonable to use the industry-standard DSSP method instead.
  • new feature: JmolSmilesApplet method (smiles1)
  • new feature: JmolSmilesApplet method getRelationship(smiles1, smiles2)
  • new feature: The Jmol application can now communicate via sockets
  • with other Jmol applications or specialized servers.
  • The SYNC command has been expanded to make this very easy:
  • sync -nnnn starts a server on local port nnnn accepting only local connections
  • sync nnnn "background white" (from another app, generally) would execute that
  • command on the app acting as a server
  • You can also do this from one app frame to another, because they are independent
  • instances of Jmol.
  • Jmol can provide server service to other apps using:
  • sync -3000
  • [start other app, connecting on 3000]
  • sync 3000 .....
  • Because once the server is started and another app has connected,
  • Jmol will send messages to that other app, not itself.
  • To test the service within one application, just create the server and send
  • commands to itself using a negative port number:
  • sync -3000;sync -3000 'Mouse: rotateZBy 30'
  • Note that in this context the "server" is the one getting commands from the "client"
  • But the server can also send commands to the client provided the client has given the
  • appropriate handshake: {"magic":"JmolApp","event":"out"}
  • Sent from Jmol (via outSocket):
  • {"magic" : "JmolApp", "role" : "out"} (socket initialization for messages TO jmol)
  • {"magic" : "JmolApp", "role" : "in"} (socket initialization for messages FROM jmol)
  • {"type" : "script", "event" : "done"} (script completed)
  • Sent to Jmol (via inSocket):
  • {"type" : "banner", "visibility" : "ON" or "OFF" } (set banner for kiosk)
  • {"type" : "banner", "text" : bannerText } (set banner for kiosk)
  • {"type" : "command", "command" : command } (script command request)
  • {"type" : "content", "id" : id } (load content request)
  • {"type" : "move", "style" : (see below) } (mouse command request)
  • {"type" : "quit" } (shut down request)
  • {"type" : "sync", "sync" : (see below) } (sync command request)
  • {"type" : "touch", (a raw touch event)
  • "eventType" : eventType,
  • "touchID" : touchID,
  • "iData" : idata,
  • "time" : time,
  • "x" : x, "y" : y, "z" : z }
  • For details on the "touch" type, see org.jmol.viewer.ActionManagerMT::processEvent
  • Content is assumed to be in a location determined by the Jmol variable
  • nioContentPath, with %ID% being replaced by some sort of ID number of tag provided by
  • the other half of the system. That file contains more JSON code:
  • {"startup_script" : scriptFileName, "banner_text" : text }
  • An additional option "banner" : "off" turns off the title banner.
  • The startup script must be in the same directory as the .json file, typically as a .spt file
  • Move/sync commands include:
  • {"type" : "move", "style" : "rotate", "x" : deltaX, "y", deltaY }
  • {"type" : "move", "style" : "translate", "x" : deltaX, "y", deltaY }
  • {"type" : "move", "style" : "zoom", "scale" : scale } (1.0 = 100%)
  • {"type" : "sync", "sync" : syncText }
  • Note that all these moves utilize the Jmol sync functionality originally intended for
  • applets. So any valid sync command may be used with the "sync" style. These include
  • essentially all the actions that a user can make with a mouse, including the
  • following, where the notation represents a number of a given type. These
  • events interrupt any currently running script, just as with typical mouse actions.
  • "centerAt "
  • -- set {ptx,pty,ptz} at screen (x,y)
  • "rotateMolecule "
  • "rotateXYBy "
  • "rotateZBy "
  • "rotateZBy " (with center reset)
  • "rotateArcBall "
  • "spinXYBy "
  • -- a "flick" gesture
  • "translateXYBy "
  • "zoomBy "
  • "zoomByFactor "
  • "zoomByFactor " (with center reset)
  • new feature: preliminary QuantumEspresso XML reader
  • new feature: Jmol Application flags -k and -P
  • -- -k kiosk mode: like applet, but with a banner across the top
  • -- -P JSON NIO client mode over port
  • -- for JSON NIO, use -J or -j to set nioContentPath and nioTerminatorMessage
  • to the desired values. For example:
  • Jmol -k -P 31461 -j "nioContentPath='./%ID%/%ID%.json';nioTerminatorMessage='SCRIPT_DONE'"
  • new feature: Jmol.js adds jmolSwitchToSignedApplet().
  • This needed a new tag that is now inserted around the applet.
  • new feature: filter "_Xx" for filtering element Xx

New in version 12.0.1 (July 30th, 2010)

  • customizable mouse button/action bindings
  • multi-touch/Kiosk capability using SPARSHUI adaptation (U-Tube video)
  • parallel multiprocessor capability for isosurface creation
  • drag-and-drop to signed applets and the application
  • model kit mode allows rapid construction of simple models
  • extensive support for depiction of space groups
  • conversion of 2D models (SMILES, JME, MOL) to 3D
  • interface to JSDraw for 2D structure input
  • interface to Flot for plotting data
  • full implementation of Daylight SMILES/SMARTS
  • extension of Daylight SMARTS to 3D conformation
  • introduction of Jmol bioSMILES and bioSMARTS
  • new JmolSmilesApplet.jar.
  • JavaScript-like flow commands and TIMEOUT
  • JavaScript-like TRY/CATCH error handling
  • direct reading of Uppsala electron density maps
  • natural bond orbital reading/rendering
  • direct logging to files using the LOG command

New in version 11.6.26 / 11.7.46 (July 15th, 2009)

  • bug fix: undocumented/unoperational navigation ON/OFF removed
  • bug fix: spacegroup "-- [--]" displayed when load command option SPACEGROUP is used
  • bug fix: quaternionFrame default now "p"
  • bug fix: quaternion difference off by one group
  • bug fix: mol2 reader not properly allowing override of CRYSIN unit cell record
  • bug fix: draw picking in multimodel context causes null pointer exception
  • bug fix: WRITE MO does not work when no current MO is present

New in version 11.6.25 (July 1st, 2009)

  • bug fix: select model=1 does not work (since 11.6.RC17!)
  • bug fix: dipole offsetside not working for molecular dipole (EVER!)
  • bug fix: 2 pixels off in y for labels. Don't know why I thought that was necessary in Text.java::setBoxXY.
  • bug fix: dipoles cannot be colored by name
  • bug fix: dipole settings not accessible via wildcards
  • bug fix: gzipped gzip file not read properly. (Jmol-FAH files)
  • bug fix: Crystallographic Information File not recognized.

New in version 11.6.24 / 11.7.44 (June 29th, 2009)

  • bug fix: write FRAMES also for trajectories
  • new feature: MO LIST or SHOW MO LIST display listing of orbitals for all files
  • new feature: GAMESS reader now sets calculationType, orbital type, and auxiliaryInfo.calculationOptions
  • bug fix: select(x;{xxx};...) or for(x;{xxx};...) when {xxx} is empty returns incorrect result
  • bug fix: dipoles cannot be colored by name
  • bug fix: dipole settings not accessible via wildcards
  • new feature: merging of label() and format() functions -- same in all respects.
  • bug fix: spartan'08 reader not reading vibrations

New in version 11.7.43 (June 22nd, 2009)

  • bug fix: /** comment ending line can cause odd error
  • bug fix: set xxxx n where n is an integer fails.
  • bug fix: GAMESS reader not properly assigning MOs
  • code: better .stddev calculation
  • new feature: a = [] note that a+=2 then produces [2] -- "a+=" similar to JavaScript a.push(2)
  • bug fix: a="test";a[1] = "b" not working
  • bug fix: {atomExpression}.min, .max
  • new feature: merging of label() and format() functions -- same in all respects.

New in version 11.6.24 (June 22nd, 2009)

  • bug fix: Application setAppletContext null pointer
  • bug fix: point + integer wrong result
  • bug fix: biomolecules for new PDB format
  • bug fix: isosurface cavity colorscheme not applied
  • bug fix: isosurface cavity colorscheme "sets" error
  • bug fix: selected connected(hbond) not working.

New in version 11.7.37 (May 22nd, 2009)

  • new feature: load VIBRATION "filename" n .......
  • --all features of the load command, but only loads the vibrational information
  • --applies {within(loadAtomDataTolerance,xyzcoord)}.vxyz = vibcoord, so to all unit cells
  • --optional n is just as for any load -- optional nth model
  • --operates on previously selected atoms only
  • --allows embedded jmolscript, just as for any load
  • --sets _vibrationName from file's atom set collection name
  • new feature: loadAtomDataTolerance (see above)
  • bug fix: load {n n n} not saved in state
  • new feature: load {a b -c} packs a x b x c cells
  • new feature: select within(-0.1, {1/2 1/2 1/2}) -- negative distance within selects atoms based on unitcell coordinates
  • new feature: select within(-0.1, atomno=3) -- negative distance within selects atoms based on unitcell coordinates of all atoms involved
  • new feature: select within(-0.1, true, atomno=3) -- negative distance within model selects atoms based on unitcell coordinates
  • new feature: select ux|uy|uz < x.x -- selection based on unit coordinates
  • new feature: {x y z}.fxyz -- returns fractional from cartesian
  • new feature: {x y z}.uxyz -- returns unitcell from cartesian
  • new feature: {x y z}.ux, .uy, .uz similar to .fx, .fy, .fz
  • new feature: {x y z}.xyz -- returns cartesian from fractional
  • note that .x .y .z does NOT do this conversion. If that is
  • intended, you need to use {x y z}.xyz.x
  • if multiple models are visible, then all these just return as through there were no unit cell.
  • new feature: {atomExpression}.uxyz, .ux, .uy, .uz -- unit cell coordinate
  • The value depends upon the setting of unitcell offset. For example, if we have
  • unitcell 444
  • then {x}.uxyz will be in the range {-1,-1,-1/1} (inclusive) to {0,0,0/1} (exclusive)
  • Note that uxyz is not settable, but fxyz is, so one could, for example,
  • pack a unit cell using:
  • unitcell 555
  • # n = {*}.size
  • # for (var a = 1; a < n; a = a + 1)
  • # {atomno=a}.fxyz = {atomno=a}.uxyz
  • # end for
  • bug fix: {atomExpression}.fxyz does not return factional value, just 0.0

New in version 11.6.23 (May 22nd, 2009)

  • bug fix: {atomExpression}.fxyz does not return factional value, just 0.0
  • bug fix: Hall lattice operation (SHELX only) could place atoms in unexpected unit cell
  • bug fix: unitCell normalization error could miss some atoms in multi-unit cell visualizations
  • bug fix: calculate hbonds can fail when group does not have O or OXT atoms
  • bug fix: data "append" does not set model the way load "append" does
  • bug fix: application frame arrows do not work after loading multiple models
  • bug fix: isosurface incorrectly setting number of grid points for MEP surface map

New in version 11.7.32 (April 11th, 2009)

  • bug fix: reading multiple files from a ZIP file collection, Jmol was forcing autobond even when bonds were defined
  • bug fix: load MANIFEST not working properly
  • bug fix: V3000 reader chokes on CHG=n and does not recognize MASS=n
  • bug fix: Spartan SMOL file reader failure (coded & instead of && in if statement!)
  • new feature: CML "isotope" and CML "partial12" bond order.
  • new feature: GAMESS reader reads NBOs using
  • load "xxx.gamess" filter "!EIGEN" # to only load NBOs; by default ALL MOs are loaded.
  • new feature: QChem reader reads occupancy, frequencies and MOs

New in version 11.6.21 (April 11th, 2009)

  • bug fix: reading multiple files from a ZIP file collection, Jmol was forcing autobond even when bonds were defined
  • bug fix: (application) animation tooltips incorrect
  • bug fix: V3000 reader chokes on CHG=n and does not recognize MASS=n
  • bug fix: MOL files within ZIP files do not respect bonding. (not fully fixed, but fixed when reading single MOL files from ZIP files)

New in version 11.7.28 (March 17th, 2009)

  • bug fix: 11.7.27 does not display color for MOs; "color MO" can crash Jmol

New in version 11.6.19 (March 17th, 2009)

  • bug fix: isosurface/mo FRONTONLY not operative
  • bug fix: MO calculations skips d2+ orbital due to integer division.
  • bug fix: (application) measurement tool bar icon not toggling
  • bug fix: "color MO" if executed twice can crash Jmol

New in version 11.7.27 (March 3rd, 2009)

  • bug fix: line raster not completing lines
  • code: JmolCallbackListener implemented, extended by JmolStatusListener
  • code: JmolViewer now includes setJmolCallbackListener
  • bug fix: measure n1 n2 n3 n4 with just numbers selecting atoms in frame 1 rather than current frame.
  • bug fix: toolbar icon for pickMeasure tied to tools "measurements..." item
  • bug fix: (Application) meaurement table not updating properly
  • bug fix: (Application) measurements toolbar icon does not stay shaded
  • bug fix: very subtle code error on lines and cylinders rasterization not completing line end pixel in most cases
  • bug fix: (Application) measurement icon measures angles, not distances.
  • new feature: JVXL format supports polygonColixes[]
  • code: polygonColixes[] to define polygon colors rather than vertex-based colors (as in OBJ file)
  • new feature: isosurface points can be retrieved using $id[n] where n=0,1,2,3... similar to $draw[n]
  • debugging: setTestflag2() turns on vertex labeling in isosurfaces
  • new feature: isosurface OBJ file reader using
  • isosurface OBJ "myfilename" n
  • where n is an optional pointer to a specific group (starting with 1)
  • # bug fix: subtle MarchingSquares calculation error produces incorrect contours for mapped plane
  • new feature: hover displays isosurface values for contour plots and planar plots
  • new feature: isosurface .... map contour [n] [mep|MO homo|etc]
  • for example: isosurface molecular map contour 10 mep
  • [n] is optional; defaults to 9
  • new feature: isosurface CONTOURLINES|NOCONTOURLINES
  • displays contour lines; for planes, same as MESH|NOMESH
  • new feature: default rendering for isosurfaces involving the
  • CONTOUR keyword is CONTOURLINES NOFILL
  • new feature: hovering over isosurface contourlines displays value
  • bug fix: isosurface TRIANGLES not turning off when isosurface cleared
  • bug fix: remapping colors of translucent isosurface can have incorrect colors
  • bug fix: isosurface sphere 1.0 map molecular not working
  • bug fix: MO calculation with selected atoms can fail
  • bug fix: picked atoms automatically selected -- bug in 11.7.24
  • new feature: very preliminary isosurface ED (RHF only) //and isosurface ESD
  • bug fix: JVXL writing after reading JVXL file may not write properly
  • bug fix: Jmol in other applications not initialized the same way can cause null pointer exception loading file with symmetry

New in version 11.6.18 (March 3rd, 2009)

  • bug fix: line raster not completing lines
  • bug fix: (Application) meaurement table not updating properly
  • bug fix: subtle MarchingSquares calculation error produces incorrect contours for mapped plane
  • bug fix: isosurface TRIANGLES not turning off when isosurface cleared
  • bug fix: remapping colors of translucent isosurface can have incorrect colors
  • bug fix: isosurface sphere 1.0 map molecular not working
  • bug fix: MO calculation with selected atoms can fail
  • bug fix: Jmol in other applications not initialized the same way can cause null pointer exception loading file with symmetry

New in version 11.7.23 (February 3rd, 2009)

  • new feature: load "myfile.cif" {ijk i'j'k' -1}
  • loads crystal structure and packs unit cell
  • new feature: load "myfile.cif" PACKED
  • same as {555 555 -1}
  • bug fix: {*}.formalCharge = 1 after {*}.formalCharge = -1 sets formal charge to -7 and exception
  • bug fix: Menu File|Open does not honor "start in" directory

New in version 11.6.15 (February 3rd, 2009)

  • bug fix: set picking draw can lose focus during drag operation
  • bug fix: {*}.formalCharge = 1 after {*}.formalCharge = -1 sets formal charge to -7 and exception
  • bug fix: write command does not report full path to file written
  • bug fix: Menu File|Open does not honor "start in" directory

New in version 11.6.13 (January 24th, 2009)

  • bug fix: user menu ...Text menus not translated

New in version 11.7.22 (January 24th, 2009)

  • new feature: translate x|y|z x.x nm|angstroms|%
  • bug fix: structure helix ({xx:yy}) compiler bug
  • new feature: additional VRML support (Angel Herraez)
  • new feature: u3d exporter template only -- no actual output

New in version 11.7.18 (December 16th, 2008)

  • bug fix: 11.7.15 does not run script after loadInline applet parameter
  • new feature: Alchemy/3DNA reader
  • new feature: new command "exitJmol" does just that -- application only;
  • can be overridden in a script by user defining the function "exitJmol"
  • new feature: application -d --debug sets loglevel to 5
  • new feature: application -J --jmolscript1 Jmol script BEFORE -s
  • new feature: application -j --jmolscript2 Jmol script AFTER -s not accepting values
  • new feature: (embedded application method of JmolViewer):
  • public Object viewer.getImageAs(String type,
  • int quality,
  • int width,
  • int height,
  • String filename,
  • OutputStream outputStream);
  • allows creation of an image of a given type ("JPG", "JPEG", "JPG64", "PNG", "GIF", "PPM")
  • of a specific quality (-1 indicates default)
  • 0 to 100 for JPG (-1 = default of 75)
  • 0-9 for PNG (-1 = default of 2)
  • and specific width and height
  • and returned as byte[] (when fileName = null, os = null)
  • or sent to an output stream (os != null)
  • or set to a file (os == null, fileName != null)
  • return can be String if there is an error.
  • command sequence, for example:
  • jmol.viewer.scriptWait("load =1crn;cartoons on;set antialiasdisplay");
  • Object nullOrErrorMsg = jmol.viewer.getImageAs("JPG", 75, 300, 300, "t75.jpg", null);
  • Object nullOrErrorMsg = jmol.viewer.getImageAs("JPG", 75, 300, 300, null, os);
  • Object bytesOrError = jmol.viewer.getImageAs("JPG", 75, 300, 300, null, null);
  • Object stringOrError = jmol.viewer.getImageAs("JPG64", 75, 300, 300, null, null);
  • this method, like WRITE IMAGE uses the antialiasImage settings
  • primarily, this is for writing to an OutputStream directly, but
  • the rest seemed simple to implement along with that.
  • new feature: (embedded application method of JmolViewer):
  • public String clipImage(String text);
  • sends image (null parameter) or text to clipboard

New in version 11.6.9 (December 16th, 2008)

  • bug fix: application -i option still gives message from "set xxxx"
  • bug fix: some quaternions cannot be created from a 3x3, namely: q = quaternion({1 2 -2}, {2 1 2}) = {0.57735026 0.57735026 0.0 0.57735026} (xyzw format)
  • bug fix: ignoreError -- need not get error string
  • bug fix: write image does not set mustRender
  • bug fix: set debugscript and set loglevel do not act in script immediately
  • bug fix: translations of Console not implemented correctly
  • bug fix: translation not disabled when messageCallback is present
  • bug fix: script error messages not updating when language changed
  • bug fix: MO scale
  • bug fix: measure allConnected broken

New in version 11.7.17 (December 15th, 2008)

  • new feature: q = quaternion(matrixColumn1, matrixColumn2)
  • quaternion from first two columns of a 3x3 rotation matrix
  • bug fix: some quaternions cannot be created from a 3x3, namely:
  • q = quaternion({1 2 -2}, {2 1 2}) = {0.57735026 0.57735026 0.0 0.57735026} (xyzw format)
  • bug fix: ignoreError -- need not get error string
  • bug fix: write image does not set mustRender
  • bug fix: set debugscript and set loglevel do not act in script immediately
  • # new feature: Jmol.js jmolScriptWaitOutput(script) returns all messages that would
  • have been sent to the console.
  • new feature: applet.getJmolStatus("AS_VECTOR") and applet.getJmolStatus("AS_HASHTABLE")
  • allows slightly different format for JSON return
  • new feature: measureCallback reports pending measurements as well as completed ones
  • # code: documentation for callbacks in Viewer; refactoring of StatusManager
  • # function myAnimFrameCallback(frameNo, fileNo, modelNo, firstNo, lastNo) {}
  • function myEchoCallback(app, message, queueState) {}
  • function myErrorCallback(app, errType, errMsg, objectInfo, errMsgUntranslated) {}
  • function myHoverCallback(strInfo, iAtom) {}
  • function myLoadStructCallback(fullPathName, fileName, modelName, errorMsg, ptLoad) {}
  • function myMeasureCallback(strMeasure, intInfo, status) {}
  • function myMinimizationCallback(app, minStatus, minSteps, minEnergy, minEnergyDiff) {}
  • function myPickCallback(strInfo, iAtom) {}
  • function myResizeCallback(width, height) {}
  • function myScriptCallback(app, status, message, intStatus, errorMessageUntranslated) {}
  • function mySyncCallback(app, script, appletName) {
  • ...[modify script here]...
  • return newScript
  • new feature: errorCallback and scriptCallback report untranslated errors
  • new feature: when errorCallback or scriptCallback is enabled, messages are translated
  • note: To get translation in message callbacks, use jmolSetTranslation(true)
  • bug fix: translations of Console not implemented correctly
  • bug fix: translation not disabled when messageCallback is present

New in version 11.7.14 (November 29th, 2008)

  • code: efficiencies
  • new feature: jmolGetPropertyAsString("errorMessage")
  • new feature: out-of-memory "Java heap error" trapping in scripts and image creation
  • new feature: save [bonds|coordinates|orientation|selected|state|structure] DELETE
  • bug fix: write .... @{...} can fail # bug fix: write coords CLIPBOARD broken
  • bug fix: select {*.ca} (phi < select(y; {*.ca}; y.resno = _x.resno + 1).phi) fails when atomExpression is ({})
  • bug fix: applet compilation error not sent in termination message
  • bug fix: build javax package does not include AxisAngle4d.class, Matrix4d.class
  • bug fix: compilation of myfunc({1 2 3}) fails
  • bug fix: hover watcher occasional uncaught exception

New in version 11.6.8 (November 29th, 2008)

  • bug fix: write .... @{...} fails # bug fix: write .... @{...} can fail
  • bug fix: write image CLIPBOARD broken
  • bug fix: select {*.ca} (phi < select(y; {*.ca}; y.resno = _x.resno + 1).phi) fails when atomExpression is ({})
  • bug fix: applet compilation error not sent in termination message
  • bug fix: build javax package does not include Matrix4d.class, AxisAngle4d.class
  • bug fix: compilation of myfunc({1 2 3}) fails
  • bug fix: hover watcher occasional uncaught exception

New in version 11.7.12 (November 19th, 2008)

  • new feature: isosurface PMESH; pmesh command deprecated
  • code: pmesh now a subclass of isosurface, with org.jmol.jvxl.PmeshReader doing the work.
  • new feature: all options of isosurface now option for pmesh.
  • all pmesh command does is guarantee that if the pmesh data is standard pmesh ASCII data,
  • then it will be read correctly. Binary pmesh files may be read with isosurface command.
  • new feature: pmesh files and inline scripts now can be colored and saved as JVXL files
  • new feature: isosurface INLINE "--pmesh data--"
  • # bug fix: .xxx broken for Jmol 11.7.11
  • JVXL 2.0 format enhancements
  • new feature: #xxx comments act as targets for goto as well as MESSAGE commands
  • bug fix: goto xxx with trailing white space fails to find xxx
  • bug fix: goto with a
  • comment in the script prior to the target line fails
  • bug fix: two //xxx comments in a row breaks script
  • new feature: fully remappable JVXL files
  • new feature: JVXL file format version 2.0 writing and reading for general vertex/triangle file source.
  • code: superfast JVXL compression/decompression
  • bug fix: straightness absolute value -- values 0 (not straight) to 1 (straight)
  • load =1crn;calculate straightness;color "bwr" range 0 1;color straightness
  • new feature: efvet file reader (http://ef-site.hgc.jp/eF-site)
  • isosurface color "rwb" "myfile.efvet"
  • bug fix: isosurface APBS dx file reader broken (since 4/2007)
  • menu: "Minimize" GT

New in version 11.6.5 (November 19th, 2008)

  • bug fix: negative number in range involving ^ fails: select 10^P -17^P
  • bug fix: goto xxx with trailing white space fails to find xxx
  • bug fix: goto with a
  • comment in the script prior to the target line fails
  • bug fix: two //xxx comments in a row breaks script
  • code: superfast JVXL compression/decompression
  • bug fix: straightness absolute value -- values 0 (not straight) to 1 (straight)
  • load =1crn;calculate straightness;color "bwr" range 0 1;color straightness
  • # bug fix: isosurface APBS dx file reader broken (since 4/2007)
  • menu: "Minimize" GT

New in version 11.7.9 (November 5th, 2008)

  • bug fix: initializeBspf(); missing in setTrajectory()
  • new feature: hbonds delete
  • new feature: calculate hbonds {*} {*} between {O or N} and {O or N} only
  • new feature: set hbondsAngleMinimum
  • if hbondsAngleMinimum is set > 0 (default 90 ?), then that angle is checked for any atoms A--X- - -Y where A is attached to X, and X and Y are the two heteroatoms involved.
  • new feature: set hbondsDistanceMaximum
  • maximum distance for X---Y. (default 3.25 ?)
  • bug fix: AMBER atom type IM and IP not recognized
  • bug fix: AMBER topology file reading of IFBOX=2 files
  • bug fix: antialiased fontscaling labels can appear incorrectly
  • bug fix: font maximum reduced
  • code: major scaled memory font savings
  • bug fix: more lenient MopacGraphF format resolving
  • bug fix: "valence" not "valency" in data property_valence

New in version 11.6.3 (November 5th, 2008)

  • bug fix: set antialiastranslucent false not functional
  • bug fix: text color near black with antialiasdisplay becomes white
  • bug fix: text antialiasing of near-black text looks very bad when antialiased

New in version 11.7.6 (October 31st, 2008)

  • bug fix: draw point translucent only draws ring
  • new feature: mol2 format reads force field atom types for AMBER, CFF91, GAFF, ESFF, CHARMM, COMPASS, CVFF, CVFF_aug, PCFF force fields (rev2)
  • bug fix: load string inline with multiple models fails
  • code: FindBugs fixes for Eval, DrawRenderer, Isosurface, ForceFieldUFF,PdbReader
  • code: ScriptWindow public: sendConsoleEcho,sendConsoleMessage,notifyScriptStart,notifyScriptTermination

New in version 11.6.1 (October 31st, 2008)

  • bug fix: set labelToggle malfunctioning
  • bug fix: missing default background for toggled labels
  • bug fix: color {oxygen} translucent blue
  • bug fix: color translucent 1 blue 1-8 integer settings off by one
  • bug fix: background color +/-1 adjustment removed
  • bug fix: spardir within /M... directory
  • bug fix: (minor) "set echo xxx display" equivalent to "set echo xxx displayed" missing
  • bug fix: (minor) "set echo xxx hide" equivalent to "set echo xxx hidden" missing

New in version 11.6 (October 9th, 2008)

  • One of the most significant upgrades of Jmol to date, Jmol 11.6 includes over 200 new features introduced between January and October of 2008, including several totally new capabilities, such as point group identification and drawing of point group symmetry elements, thermal ellipsoid rendering, the capability to delete specific models from a set, 2D to 3D conversion and 3D minimization using the Universal Force Field (UFF), 3D Ramachandran plotting, quaternion maps for peptides and nucleic acids, and upgrading of the signed applet to enable file writing.

New in version 11.4.6 (August 31st, 2008)

  • bug fix: vibration thread not closing down for applet destroy when applet is off-screen
  • bug fix: was reading server path for local path from history in Webexport
  • bug fix: Removed stray semicolons from header script comments in webexport templates. They were causing WYSIWYG web editors to corrupt the scripts.
  • bug fix: Popin.png in WebExport replaced, was too large, causing dialog box to default to too big on small screens.
  • bug fix: PDB site definition does not ignore empty site definitions
  • bug fix: DEFINE can cause compiling error, e.g. "[2MO]" in 1tmo