=========================================================================
CHANGE LOG
=========================================================================

Changes up to 0.98

   beta35

   * isosurface and isomesh now use the same ranging criteria

   * matrix_transfer, matrix_reset commands (WHAT A PAIN)

   * added support for row-major 4x4 homogenous transformation
     matrices, and in resolving internal conflicts with TTT matrices,
     made them more compatible with homogenous matrices

   * internal matrix code cleaned up somewhat -- conventions used
     are now explicit in most cases.

   * distance wizard becomes measurement wizard

   beta34

   * fixed glitch in handling bogus CRYST records

   * patched up some memory leaks

   beta33

   * wildcards for model and selection names

   * auto disable atom name wildcard for files with asterisks in 
     the atom name field

   beta32

   * psw files now start from first scene by default

   * scene animation duration default = 2.25

   * async option to ray, now default for gui "ray" button

   * increased output buffering for script output

   * fixed sdf url support

   beta31

   * scene renaming

   * dihedral display during dihedral bond torsion editing

   beta30

   * presentation mode now auto-quits after blank screen on either end.

   * fixed (or rather worked around) two bugs with nVidia on Mac

   * wildcards for the main selection operations (alt, name, resi, resn,
     chain, segi, text_type) 

   * wildcard, atom_name_wildcard, ignore_case settings

   * pushed selection property list and range handling down into C
     (selections should now run much faster)

   * defer_builds_mode setting for improved performance with long
     trajectories -- now possible to work with files containing 
     thousands of states, and to render impossibly long movies piecewise.

   * switched SDF parsing into C -- "way faster dude!"

   * new "move" option for the fuse command

   * url support for pdb, mol, mol2, xplor, ccp4, pkl, and pse files.

   beta29

   * angle & dihedral visualization

   * fixed control-panel click bug

   * reorganized the Tcl/Tk modules to better enable customized
     user interfaces

   * fixed long-standing transparency shadow bug

   * improved 64-bit cleanliness

   * fixed stereo rendering for selections and edit indicators

   * added support for embedded data on stdin

   * support for 4-letter residue codes in PDB files

   * new selection operator for proteins "pepseq/ps." with 1-letter
     peptide codes

   * streamlined launch time in various ways

   * updated lighting model to increase WYSIWG characteristics
     between OpenGL and ray-tracing

   * fixed major bug with symmetry expansion

   * overhaul of the scene subsystem to create some order

   * orient command now chooses the least perturbation from the 
     current view

   * "as" command for more efficient changing of representations

   * reorganized color menus and added some new colors

   * selections now more visible

   * ribbon_side_chain_helper

   * new scroll wheel capabilities (MvSZ, MovZ)

   * used CHUD to optimize the new raytracer code

   * ray tracer now supports perspective by default.  Unfortunately, 
     this significantly slows down raytracing...

   * single-click actions

   * continued elimination of global state information

   * texture_fonts for better performance on low-end ATI hardware

   * fixed F10 action in external gui

   * added colors for each atomic element, plus deuterium

   * added 32 new automatic colors

   * fixed bugs with import pymol launch approach

   * fixed bug with TRJCONV multimodel PDB files

   * order command for managing entries in the control panel

   * P1M script format with embedded data & extra security

   * increased compatibility for variant MOL2 usage

   * various performance enhancements, esp. to MOL2 and SDF loads

   * fixed quiet setting for align function

   * surface optimize subsets setting

   * .pov file via save command

   * fixed bug with gadgetramp events

   * updated presets

   * cartoon_side_chain_helper setting

   * putty, and associated selections (thanks in part to Cameron Mura)

   * selection dots no longer fogged

   * new actions in the names list

   * fixed rare system crash on certain ATI Radeon hardware when
     picking or selecting atoms.

   * huge performance boost for large systems/heavily loaded PyMOL

   * ray_direct_shade setting 

   * adjusted povray camera and light settings

   * povray export now supports mesh2 -- no more need for MegaPOV.

   * performance increase for atom selections

   * updated output generated by PyMOL when loading various files...

   * rank as the final arbiter of atom sorts (if everything else matches)

   * handling of PDB files with mismatched SCALE and CRYST

   * special handling for CCP4 maps with missing symmetry blocks

   * long-term code changes: elimination of global state from PyMOL and
     allow for option of separating PyMOL graphics from Python top level

   * support for residue names and identifiers in mol2 files

   * dynamic grid for slice module

   * rank attribute for atoms ( = rank/row from input file)

   * additional safety margins around glReadPixels...

   * cmd.get_color_index

   * passive motion outside of window kills passive menus...

   * faster coulomb_local + menu changes

   * fixed bug with object/selection renaming

   * fixed bug with sequence viewer segment/chain display & spacing

   * slices + associated settings (thanks in part to Filipe Maia)

   * fixed bug with symexp for when template atoms are outside the
     target cell...

Changes up to 0.97

   * install plugin menu item

   * fixed sequence viewer bug -- GLU now shown as 'E' not 'D'!

   * included Remote PDB loader and APBS plugin

Changes up to 0.96

   * more VDW parameters & updated bond info for DNA/RNA

   * fixed a colossal memory leak in the champ module.

   * aromatic bond display

   * mol2 and multi-mol2 reading capability

   -- beta 16
   * added experimental ability to calculate vacuum electrostatic 
     potentials

   * fixed bugs with map_double, map_new, and color ramping

   -- beta 15

   * annotation wizard (e.g. for SD files -- experimental)

   -- beta 14

   * additional support for weird concatenated PDB files such as those
     output by MOE

   * fixed problem with rendering of discontinuous surfaces

   -- beta13
   
   * get_angle, get_distance commands
 
   * fixed pasting to OpenGL window under X11

   * fixed "Get View" button in MacPyMOL, now also copying
     matrix direct to the clipboard in all versions.  

   * API load actions now run quietly by default, like other functions.

   * pdb_reformat_names_mode = 3 gives IUPAC internally with PDB I/O
     pdb_reformat_names_mode = 1 (PDB) & 2 (Amber/IUPAC), now
     correctly handle 3-letter names correctly for various hydrogens

   * fixed occasional "snail track" bug with surfaces

   * seq_view_label_mode setting

   * wizard prompt now avoids overlap with sequence browser

   * double-click-to-center now uses current state coordinates only

   * tentative PQR file reading support

   * fixed major bug in map ranging code

   -- beta 11

   * updated color handling for sequence viewer

   * new settings: auto_classify_atoms, selection operators:
     polymer, solvent, organic, inorganic

   * transparency_mode now subordinates backface_cull and 
     two_sided_lighting in OpenGL and the ray tracer

   * seq_view settings

   * sequence viewer is now "in"

   * mouse_selection_mode setting

   * got real busy on the sequence viewer

   * created plugin menu

   * further menu consolidation to make room for plugin menus

   * fixed "use display lists" menu option

   * fixed "stereo swap" and Display->Stereo->Swap Sides menu item.

   * ray_transparency contrast back to default of 1.0 default (WYSIWYG).

   * fixed a few minor bugs with picked atom selection indices

   * menus now stay without mouse being held down (what an improvement!)

   * fixed a couple of scroll-bar glitches

   -- beta 5

   * movie.sweep convenience function for simple back & forth movies

   * PyMOL can now write multi-model PDB files (save with state=-2)
   
   * atoms with the name resi, but not the same resn are now considered
     to be in different residues (fixed byres bugs).

   * ray_transparency_contrast setting, default=2.0, improves contrast
     of the transparent surface relative to objects inside.  

   * set_name command

   * fixed save_session behavior to avoid accidental overwrites after
     opening a new session (mac & tcl GUIs)

   * active_selections setting & changes to the selection paradigm 
     in preparation for the sequence alignment tool : )

   * fixed minor bug in fitting code (faster convergence?)

   * added surface_trim_factor and surface_trim_factor settings
     in order to hard-to-tesselate peaks on the surface

   * taught PyMOL bond valences for G,A,T,C,U residues

   * greatly improved quality of the surface rendering algorithm for
     surface_quality = 2, 3, 4, etc.

   * fixed over-zealous movie security warning: no longer warns if
     there weren't any commands defined

   * surface_carve_cutoff, surface_carve_selection, surface_carve_state
     surface_clear_cutoff, surface_clear_selection, surface_clear_state
     settings, to enable sub-atomic culling of surfaces...

   * stick_transparency opengl rendering fixed

   * passive stereo GLUT support (extra-wide desktop) for Windows

   * adjusted reflectivity of interior color to better match exterior

   * minor fixes to depth_cue and ray_trace_fog control and input 

   * now uses 3X less memory when rendering surface_type=2 (meshes)

   * fixed bug in surface generation code, & treaked surface modes

   * various changes to surfacing algorithm greatly increase robustness
     when surfacing crevaces -- can now handle small(er) solvent probes.

   * surface_solvent, triangle_max_passes settings

   * mesh_type, mesh_lighting, dot_lighting settings

   * reinitialize now stops rocking

   * fixed logging of button presses in MacPyMOL

   * added multi-line command paste support to MacPyMOL

   * dropped support for "del all" in favor of "dele all"

   * StereoPyMOL1280 mode on mac for higher-resolution stereo

   * fixed a race condition that was causing OSX-X11-hybrid to crash
     when "quit" was typed into the external Tcl/Tk GUI
    
   * added numarray into the osx-x11-hybrid version for BSI use

   * increased the session file version # to account for the new colors

   * added a "perceptive space" rainbow & switched this over to default

   * fixed ray-tracing bug with infinite loops on transparent surfaces

   * fixed logging for new molecular editing features

   * pdb1 extension support

   * fixed unintentional default OpenGL bug reporting 

Changes up to 0.95

   * changed cartoon_tube_radius to a more aestically pleasing 0.5A

   * ribbon now shows nuc. acid backbone too

   * added presets for ligand sites, including our new surface reps.

   * fixed bug with scene coloring

   * adjusted clipping plane bounds to eliminate shingle effect from
     excessive depth ranges.

   * mesh_normals setting for surface_type 2

   * launch option: -P # enables multisampling on Macs & Windows.
     NOTE: on Windows, only "-P 4" works, and only tested on ATI cards.

   * session_migration setting

   * fixed problem with view matrix exploding on some proteins -- now
     allow front clipping plane to go negative with suitable safeguards

   * fixed bug with raytracing transparent surfaces using intermediate 
     backgrounds

   * surface code now tolerates superimposed identical atoms more gracefully

   * dot_normals setting

   * bound_to selection operator now complements neighbor...

   * fixed stereo opengl bug & improved opengl debugging capability

   * extended editor to support multiple picked atoms in different objects

   * fixed major bug in mesh representation

   * updated setup.py

   * surface_type setting:  0 = solid, 1 = dot, 2 = mesh

   * fixed off-center behavior of center command with respect to clipping planes

   * fixed label representation memory (on/off only) in scenes

   * added support for explicit RESN and RESI specification in selection 
     macros: RESN`RESI/, RESN`/, `RESI/ vs semi-ambiguous RESN/ or RESI/

   * fixed nonbonded detection problem with discrete objects

   * fixed serious bug with "state" selection operator and discrete objects.

   * improved ray-tracer's ability to handle multiple transparent objects

   * "Virtual trackball" toggle now in menu

   * added variety of new functionality to pop-up menus

   * fixed segmentation fault bug in atom picking (only seen on Mac?)

   * much-improved support for raytracing of large structures;
     various bugs fixed

   * fixed memory management issues on OS-X

   * endianness check for .phi files 

   * test cases updated to reflect new molecular editing behavior

   * default arguments (and behavior) changed for dist and bond commands

   * pdb_standard_order now default on

   * textual button mode indicator, more button changes...

   * ray-tracing of RGBA pixmap text now supported FINALLY.

   * pk1-4 now have different visual representations...

   * fixed hydrogen adding for amides/ureas

   * changed PyMOL file output to comply with PDB standards with respect
     to placement of the atomic symbol in the atom name field

   * overhauled C0700 test case

   * pdb_reformat_names_mode setting (for PDB and AMBER conversions)

   * appearance wizard

   * toggle command
 
   * virtual_trackball setting

   * many new menus to support viewer pop-up actions

   * pop-up menus in viewer

   * cascading pop-up menus
   
   * made spheres pickable

   * made cartoons pickable using pickable CGOs : )))

   * finally fixed visible operator to behave as expected

   * massive overhaul of user interface appearance

   * double-clicking actions

   * scrolling actions

   * new selection operations 
      byfragment (byfrag, bf.) 
      bysegment (byseg, bs.)
      bymolecule (bymol, bm. )

   * added setting internal_gui_control_size so that users can decide how
     many lines of buttons they'd like to see.

   * revamped GUI, made buttons look like buttons

   * added ray_blend_colors setting to provide a simple way of
     reducing oversaturation

   * fixed major bug in GRD map reading code & added normalization option

   * fix potential crasher bug with stick_balls

   * SHFT-F# key support, for set_key, scenes, and views

   * cmd.extend now adds help for function (updated test case).

   * various changes here and there for Mac OS/MacPyMOL compatibility

   * extensive work on the metaphorics P5M file format/Fedora stuff

   * massive tinkering with sequence visualization ideas, but nothing
     to show for it yet : (

Changes up to 0.94

   * no_smooth flag to make it easier to combine cartoon and atomistic
     representations

   * fixed yet another ray-tracing alpha channel bug with mixed 
     transparent/opaque objects.

   * new setting overlay_lines, overlay becomes a boolean toggle

   * specular now acts as a binary veto over spec_reflect and
     specular_intensity holds the OpenGL spec. intensity

   * ray_trace_fog deprecated (subservient to depth_cue)

   * Mac OSX native port completed as "MacPyMOL" Incentive Product
      - support for additional file extensions
      - GUI remembers last open location
      - QuickTime movie export
      - Cut and Paste image export

   * fixed bug in SelectorCountStates

   * default roving_polar_cutoff increased to 3.31 in order to show 
     marginal/potential hydrogen bonds

   * adjusted Z origin movement strategy again, and fixed problem
     with undesirable apparent z-translation in orthoscopic mode

   * pdb_insertions_go_first setting for handling structures where
     inserted residues come before, not after, the numbered residue.
     
   * Added support for older, binary-header O/DSN6 maps, including
     swap_dsn6_bytes setting (for unlikely scenarios).

Changes up to 0.93

   * Restored ability to read version 0.86 sessions with CGOs.

   * Fixed bug with O/BRIX map reading code.

   * Changed roving_origin behavior with respect to Z axis.

   * P5M file handling for browser helper (for Metaphorics, mostly).

Changes up to 0.92

   * added RPM support for "import pymol", fixed several bugs running
     PyMOL in this fashion, with or without a GUI.  

   * fixed alpha channel handling for transparent surfaces in ray tracer
     with a non-opaque background, with fog, and with both together.

   * added defer_updates setting to provide a gentler alternative
     to suspend_updates and which can allow a threading applications
     to process a series of cmd.do commands without unnecessary
     updates

   * fixed a couple annoying bugs in mpng command movie rendering
     COMPATIBILITY WARNING: mpng no longer automatically adds an 
     underscore to the movie filename prefix!

   * fixed Calcium detection for "CA+" residues

   * cmd.do updated to take multiple commands as a string or list of strings

   * increase the word length limit in the selector so that long lists
     of residues can be supplied.

   * new test case for PDB file IO (C0700odd), do command (c1100do)

   * WARNING: cmd.select API argument reordering may break existing code

   * adjusted behavior of "set" and "unset" to enable more concise
     changes of global settings: "set setting-name" "unset setting-name"
     WARNING: API changes to "set" and "unset" argument ordering may
     break existing code

   * pdb_retain_ids setting

   * Deuterium atom support, including DOD

   * split_states command

   * much faster loading of multi-model PDB trajectories

   * get_symmetry & set_symmetry commands for molecule objects

   * mutagenesis wizard now preserves cartoon display

   * fixed alpha channel handling for transparency OpenGL objects

   * get_pdbstr API function

   * movie_loop setting

   * changed behavior of movie controls in the internal gui so that
     the movie commands will run more consistently

Changes up to 0.91

   * fixed separate cartoon rendering bugs with helices and strands

   * added a fast C-based secondary structure assignment algorithm
     acessible through the "dss" command

   * cartoon_transparency setting

   * fixed "cake bug" in ray tracter for cylinders directly aligned
     with incident light ray

   * taught sculpting engine to treat unbound waters as donor/acceptors */

   * stick_ball, and stick_ball_ratio can be used to quikly generate ball
     and stick representation without messing around with spheres...
   
   * NEW: display of valences for sticks (controlled by valence setting).
     stick_fixed_radius determines whether they are inscribed or not

   * pdb HETATMS are no longer sorted by default

   * Torsional term added to sculpting engine...not perfect, but it's 
     probably better than allowing for eclipsed conformations all over the place.

   * Optimized sculpting engine using CHUD/Shark -- now much faster.

   * Fixed CENT action with multi-state object

   * Adjusting Z scaling for mouse to provide finer control

   * Better WYSIWYG: If they are set to zero, then the settings:
       mesh_radius, line_radius, ribbon_radius,  dot_radius, dash_radius 
     are now subordinated to:
       mesh_width, line_width, ribbon_width, dot_width, and dash_width.
     However, if changed to a non-zero value, they will take priority.

     This behavior provides better WYSIWYG for raytracing, but will break
     some scripts.

   * fixed map_new ...,gaussian,... command and added options
         gaussian_resolution
         gaussian_b_adjust
         gaussion_b_floor
      default "map_new name" now creates a 2 A electron density map using
      current atomic Q and B for direct comparison with experimental density

   * updated ray tracer to support edge oversampling -- Antialiased rendering
     is now SIGNIFICANTLY FASTER for simple scenes and is now enabled by
     default. Full scene supersampling is no longer necessary in most cases, but
     if activated, it will provide even better image quality.

     Antialias setting can now have values of 0-4:
       antialias 0: no antialiasing
       antialias 1: edge-oversampling (as per ray_oversample_cutoff)
       antialias 2: 2X full scene supersample plus edge oversampling
       antialias 3: 3X full scene supersample plus edge oversampling
       antialias 4: 4X full scene supersample plus edge oversampling

   * restored CRLFs on Windows versions of PyMOL so that
     python code can be viewed/edited with Notepad, etc.

   * added quiet parameter to alter and iterate commands

   * fixed raytracing bug with one residue cylindrical helices

   * fixed raytrace border bug

   * fixed isosurface session save bug

   * added high-quality transparency support to "isosurface"s

   * greatly improved quality of surface output by "isosurface"

   * added support for Biosym/InsightII ASCII grid files

   * support for BRIX map format

   * fixed endianness problems with map files

   * pdb_use_ter_records: setting disables TER records in PDB output

   * improved default hydrogen atom ordering in PyMOL
   
   * fixed bug in hydrogen name conversion -- this may break some scripts : (

   * pdb_hetatm_sort: disable and sort to see cartoons for
     non-canonical PDB residues
   
   * retain_order: enable and sort to preserve input atom ordering.
      NOTE: may prevent some residue-based operations from working
   
   * Fixed processor mis-detection bug on Linux with certain P4s

   * PyMOL now building warning-free on VC++ warning level 3
      (catches sloppy precision handling and conversion)

Changes up to 0.90

   * Fixed IRIX and Linux minimal dependency Python launch context.

   * Added CPU detection for IRIX and Linux

   * Fixed ribbon color and rendering bugs

   * Put in checking for overly long selection words to avoid seg.fault.

   * Incorporated Tom Lee's density wizard changes.

   * TCL_LIBRARY not overridden by PyMOLWin.exe if it exists

   * Various NULL POINTER Errors removed

   * Memory debugger disabled by default to support multithreading

   * initial support for display lists -- not yet enabled by default

   * partial surface calculations are now much much faster

   * intensive optimization of ray tracer, incl. inlining

   * updated online documentation & tests for the following commands
      feedback
      extend
      alias
      (python_help)
      get_view
      view
      scene

Changes up to 0.89
   
   * Fixed major session save and restore bugs

   * Updated ExtensionClass for improved Python 2.2 and 2.3 compatibility.

   * Improving hash-table construction performance in ray tracer.
   
   * Added CPU and RAM autodetection for OSX Mac

   * Added multithreading support to raytracter (set max_threads,n)

   * Fixed various bugs on Mac including TAB-crash in external GUI
   
Changes up to 0.88

   * fixed numerous bugs

   * validated current test suite and source code build against:
        Linux, Win32, IRIX, Mac OSX, and OSF

   * new cartoon settings controls & tweaks

   * reinit command

   * Moved demo code into a Wizard

   * Fixed an ancient memory trasher bug in Isosurface, thank God for
     test cases! 

   * Wizards, as Python objects, are now saved with sessions! : )

   * Wizard stack

   * scene annotation

   * tearoff menus

   * pdb_standard_order setting 

   * calibrated CGO line widths to produce consistent results

   * added color support to scenes

   * updated demonstrations

   * fixed suspend_updates setting

   * added map support to roving facility

   * enabled distance objects to persist through redefinition

   * fixed various geometry and rendering glitches with cartoon ribbons

   * ray_interior_texture, ray_interior_shadows

   * get command allows settings to be queried from the command line

   * added angle and shift options onto "ray" command for stereo figures
     (this automatically adjusts the light position)

   * added walleye stereo support

   * can now pick and rotate bonds with a single click-and-drag

   * overhauled map_new, isomesh, isosurface.  added new test case

   * scene commands

   * "rep" and "color" selectors 

   * $TUT environment variable points at $PYMOL_PATH/data/tut

   * fixed quadro stereo support with sessions...

   * cartoon_highlight_color now provides Molscript-like cartoon coloring
     which provides for an alternate color inside of helices and on the
     sides of beta strands.

   * ray_interior_color can enable solid interiors in the ray tracer!

   * fixed truncation error in view matrix composition.

   * Roving details. Many new settings.

   * Roving origin.

   * Added ribbon_color, cartoon_color settings.

   * overhauled color menu, improved performance of rainbow and color by chain

   * added color space menu to Tcl/Tk Ext. GUI

   * added color space clamping to better enable CMYK color matching as well
     as improve rendering quality

   * added z-ordered transparency (nice!) with menu controls

   * finished session save support for color ramps and gadgets

   * debugged and tested Quadro hardware support

   * Added mouse_scale and mouse_limit settings.  Reduced "jumping" of
     virtual trackball.

   * Worked to resolve threading issues with multiple demanding
     clients...

   * Finally fixed sporadic "GC object already in linked list" bug on
     mac.

   * huge cleanup of code to eliminate compiler warnings on VisualC
     and Windows & GCC32
      - at least one bug fixed
      - more careful handling of precision 

   * updated acknowledgements in the README file

   * Tcl/Tk external gui now also follows -X, -Y, -W, and -V window parameters
     "-V value" controls the size of the external Tcl/Tk GUI (if present)

   * INCOMPABILITY WARNING: "-X" option for launching rpcserver changed to "-R"
	in order to make room for "-X" and "-Y" options for positioning GLUT window.

   * command line options: "-X value" and "-Y value" along with 
	"-W value" and "-H value" can now be used to determine the position and size
	of the GLUT OpenGL window.

   * fixed session restore bug with editing mode

   * worked around Solaris compiler limitations.

Changes up to 0.87

   * improved launch speed by hard-coding sphere definitions

   * improved surfacing algorithm performance by about 12% 

   * dot_solvent, mesh_solvent, and sphere_solvent settings

   * simplified and improved mesh quality, added mesh_quality setting

   * fixed session restore crash with objects having multiple states.

   * improved specular reflection on transparent surfaces
     (ray_transparency_specular=0) will restore original behavior.

   * stick_transparency setting

   * ray_transparency_shadows setting

Changes up to 0.86

   * added command history feature to external gui

   * added security warning and mechanism for session files 
     containing movie commands.

   * session saves completed -- boy that was a lot of work!

   * reorganized tcltk menu structure

   * minimal texture options exposed in menu (slow!)

   * better support for Python in PyMOL command scripts ('\' works for multiline blocks).

   * freeze state and thaw state added to mol_action menu

   * added xmlrpc01.py demonstration program to examples/devel

   * ribbon_trace can be used to view CA-only models

   * ray_shadows setting can disable shadows in raytracer (slight performance inc.)

   * added secondary structure to chemical python model data structure

   * fixed slab mode of clip statement

   * update 'expand' and 'attach' can now take an atom name as well as an element symbol

Changes up to 0.85

   * mmatrix now stores the complete view instead of just the rotation matrix

   * unset command

   * fixed handling of calcium atoms
   
   * added automatic scroll bar for when you get too many objects/selections

   * added handle to manually adjust internal gui width

   * updated OpenGL depth_cue setting to more closely match those of raytracer

   * "center" command

   * PyMOL no longer wraps output lines by default "set wrap_output=78"
     to get previous behavior

   * relocated binary shared objects from modules into the modules/pymol
     tree

   * data files now separated from the modules directory into a parallel data
     tree in $PYMOL_PATH

   * added ability to build PyMOL using Python distutils
   
   * revamped the PyMOL launch process.  It should now be possible
     to launch pymol simply with an "import pymol" statement, provided
     that the modules are in the Python search path

   * fixed get_dihedral to use current state index

   * revamped smooth command and added documentation

   * added some nasty code to handle quotes and apostrophes in atom selections
     so that nucleic acids and sugars with apostrophes will work right while
     you can also still explicitly use apostrophes or quotes

   * added "safe" option to zoom command in order to provide a mode
     which will guarantee against clipping

Changes up to 0.84

   * updated SPHEROID command for use with trajectories

   * Can now read AMBER topology, coordinate, trajectory, and restart files

   * PyMOL now transforms 4-character atom names appropriately by default.
     Thus, 3HG2 in PDB file becomes an atom named "HG23"
     If you don't like this, "set pdb_literal_names=1".

   * PyMOL now preserves stereo field on MOL-files to better enable
     shuttling of 2D structures through PyMOL...

   * fixed bug with dumping of dot surfaces...

   * fixed bug reading element identifer from PDB files

   * fixed bug with alternate conformations

Changes up to 0.83

   * various tweaks to the semistatic minimal dependencies build...

   * fixed bug in startup file reading

   * first inclusion of cex file support

Changes up to 0.82

   * WARNING: default behavior of isomesh and isosurf changed!  By default, they
     will now always load the mesh into state 1.  If you need the previous behavior,
     then set the state argument to zero.

Changes up to 0.82

   * modified "cmd.system" to take an argument for asynchronous execution

   * flag command no longer indicates atoms by default -- set "auto_indicate_flags"

   * cross-eye side-by-side stereo support

   * fixed bug in valency display code

   * fixed major bug in "create"

   * raytracing bugfix for bond with zero length

   * complicated workaround for mouse atom selections with Radeon 8500 and WinXP
     PyMOL may now be somewhat resistant to broken OpenGL ReadPixels implementations 

   * improved water handling for "non-canonical" situations (i.e. real life muck)

   * moved configuration files to a subdirectory "setup"

   * mpng now can support a range in order to enable coarse-grained parallelism
     (distributed movie rendering)

   * "within" operator added to selection language

   * visible selection operator no longer hits disabled objects

   * origin, zoom, and orient now take "state" as optional argument with special
     handling for 0 (all states) and -1 (current state)

   * eigensolve output now considered blather

   * important bug-fix on rotate and translate commands

   * "present" operator in selection language and tests for "state" operator

Changes up to 0.81

   * fixed bug in bg_color API function

Changes up to 0.80

   * major bug fix to "carve" in isomesh

   * "command ?" now gives a list of arguments 

   * fix spurious bugs reading files under unix

   * added support for alternate residue id codes in secondary structure records

   * cylinders have become sausages, and...
      ...we now have flat-capped cylinders (0203)!

   * fixed duplicate logging with Run command

   * create a simple vector-based font (0203)

   * 3D text in CGOs

   * linear constraints in molecular sculpting engine

   * acetylene buidling block

Changes up to 0.79

   * internal character set

   * solid isosurface rendering algorithm: "isosurface" command

   * parser updated to handle selections like "resi 10 and (name c,n,o) and chain A"
     which lack surrounding parentheses, but which have delimiters inside

   * parser updated to handle (alt A+'') and similar constructs (previously DOA).

   * fixed ribbon & cartoon display when N-terminal atom is the CA

   * changes to support MacOSX port (0203)

   * ALIGN command

Changes up to 0.78

   * revamped Makefiles for better portability and dependency handling.

Changes up to 0.77

   * sculpting information now cached between changes to molecular structures

   * optimized sculpting for small regions of large proteins

   * FINALLY, modes for two-button mice

Changes up to 0.76

   * VDW radii adjusted.  Use "set legacy_vdw_radii=1" on start-up for old values.

   * Sculpt functionality.  Who needs gummy bears when you can have gummy molecules?

   * Numerous back-end bugs addressed.

   * transparent spheres

Changes up to 0.75

   * enabled automatic completion in the tcl/tk command window

   * altered settings for dot representation

   * created stop_on_exception and raise_exceptions settings.
     WARNING: stop_on_exceptions is NOT set by default (this is so that
     log files which contain errors will continue to function).

   * gutted cmd.py, and created a bunch of sub-modules which contain the
     code previously in cmd.py.  
   
   * superposition bugs fixed with multi-state objects (fit and intra_fit)

   * cmd.set_key can now be used to redefine ALT and CTRL keys in addition
     to function keys and other specials.

Changes up to 0.74

   * very minor bug/doc fixes

Changes up to 0.73

   * improved fragment and residue building capabilities

Changes up to 0.72

   * fixed some logging issues with dragging pieces

   * now possible to create empty objects, fixed mutagenesis wizard in response
 
   * all readable files are shown by default in the Tkinter file dialogs.

Changes up to 0.71

   * seg. fault bug fix in ObjectMoleculeConnect

   * two_sided_lighting option to help Jun at CCI project

   * fixed triangle rendering on lower-end graphics cards

   * revamped PyMOL's internal bond handling data structure.  I've done my best
     to insure that this doesn't break anything, but it is a major change
     and has the potential to create huge problems...

   * empirically synchronized PyMOL and PovRay's perspective transformations...

Changes up to 0.70

   * fixed symmetry bug with multiple state objects

   * symmetry now carried through create operations

Changes up to 0.69

   * PNG reading

   * First generation PovRay interface...whoopee!

   * Tweaked util.ray_shadow and added some new settings

Changes up to 0.68

   * HETATMS are no longer surfaced by default.  Clear the "ignore" flag or
     set surface_mode=1 to restore their surfaces.

   * flag command now takes name arguments and can now reset, set, and clear 
     flags

   * established some standard flag names and conventions

   * Upgrading OpenGL Pop-up menus, since it looks like the internal GUI
     will be widely used despite its original limited role (oh well...)

   * Fixed element name guessing

   * added ray_improve_shadows setting for improving shadows by
     projecting outward from triangles.

   * Fixed a major bug in the raytracer which was causing bogus shadows to appear
     on surfaces

   * Fixed a huge bug in surfacing of subsets. That function was totally whacked,
     but no one had noticed or complained!!!  Revised the function of the 
     surface_proximity setting

   *  by default, PDB HETATMs are no longer surfaced -- if you want them to be, then
      please "set surface_mode=1"

   * "transparent" renamed to "transparency"

   * switched to a three-pass OpenGL rendering model in order to properly display opaque, 
     transparent, and antialiased objects

   * OpenGL transparency now works too! See "help transparency".

   * nonbonded spheres are now pickable

   * surface_color and mesh_color override the default atom colors
     for uniform surface coloring -- added support for color names
     into the settings module

   * flags 24 and 25 now work with surfaces and meshes.  See "help flags"

Changes up to 0.67

   * Transparency support in rendering has been added, but it doesn't yet
     exist yet in opengl mode.

Changes up to 0.66

   * numerous bug-fixes

Changes up to 0.65

   * numerous bug-fixes

Changes up to 0.64

   * stage 1 API enhancements -- consistent return conventions adopted
     (many will not follow conventions until stage 2 though)

   * more surface_qualities: -3 to 2, surface_quality=1 is now even better

   * click-and-drag a box to select atoms

   * PyMOL now builds w/o warning in VC++6

   * LOG FILE CAPABILITIES:  logging of both PyMOL scripts (.pml) and
     PyMOL program files (.pym). The "resume" command allows propagation
     of session-like behavior.  This makes a huge difference in PyMOL
     user-friendliness.

   * autocompletion bug fixed, generalized autocompletion added

   * mesh_radius cut in half, for better default density figures

   * carve command on isomesh

   * pymolrc support 
 
   * isosurface speed boosted by about 33% using C-oriented field object.

   * fixed bugs with internal_gui options
 
   * internal_feedback setting

   * simple cartoon ribbon for DNA/RNA

   * selection language now supports '+' as substitute for commas, and '-'
     as substitute for ':' in residue identifiers (more user friendly)

   * selections no longer require parentheses unless they have commas or
     semicolons

   * unit cell display for molecules and meshes

Changes up to 0.63

   * Density wizard

   * isomesh meshes now use mesh_width instead of line_width

   * fixed rendering background color bug on BigEndian machines

   * fixed fatal bug with symexp

   * first attempt at support for CCP4's binary maps -- it works with my
     test maps, but will it work with others?

Changes up to 0.62

   * tuned up the util.ray_shadows function, added a "matte" mode for better
     definition of ribbons...

   * integrated workaround for an apparent GCC serial optimizer bug on x86.

Changes up to 0.61

   * bg_color command for easier background adjustments...

   * depth cue menu item and ray_trace_fog linked

   * cartoon_discrete_colors hack for coloring secondary structure properly

   * (ss ...) primitive in selector for selecting helices, etc.

   * many cartoon ribbons improvements -- flat fancy sheets now VERY nice.

Changes up to 0.60

   * third generation fancy helices complete -- revamped interpolation code.

   * ray now takes dimensions for rendering larger than screen

   * unpick and hide selection buttons

   * various new menu items...

   * preparing for GLUT independence on selected platforms...

   * choice of lighting modes for ray-tracing (improved shadows, contrast)

   * settings renames (gl_ambient, dot_radius)

   * settings changes (hash_max) and ray-tracing feedback

   * "help faster"

   * fixed minor glitch with fancy helices

Changes up to 0.59

   * fixed valency display bug...

Changes up to 0.58

   * second generation cartoon ribbons are in -- Goodbye Molscript!

   * fixed half-decade old logic bug in MemoryDebug (blush!).

   * "alter" and "alter_state" given a 50% performance boost

   * added a coarse hydrogen-bond assessment feature (internal)

   * added phi/psi measuring capability

   * fixed selector memory leak on errors

   * added first-generation cartoon riboons 
     (higher-quality to come later)

   * added more specific settings for mesh and ribbon width, etc.

   * add more settings-change side-effects 

   * fix bugs with saving pkl files for state > 1

   * added a concise notation into the selection language 

       model/segment/chain/residue/name
                                 */name
                           residue/
                           residue/name
                     chain/       /     
                     chain/residue/
                     chain/       /name
                     chain/residue/name
             segment/     /       
             segment/     /       /name
             segment/     /residue
             segment/     /residue/name
             segment/chain/       /
             segment/chain/       /name
             segment/chain/residue/
             segment/chain/residue/name
      /model
      /model/       /     /       /name
      /model/       /     /residue
      /model/       /     /residue/name
      /model/       /chain
      /model/       /chain/       /name
      /model/       /chain/residue
      /model/       /chain/residue/name
      /model/segment
      /model/segment/     /       /name
      /model/segment/     /residue
      /model/segment/     /residue/name
      /model/segment/chain
      /model/segment/chain/       /name
      /model/segment/chain/residue

Changes up to 0.57

   * mutagenesis module

   * finished the set_dihedral command

Changes up to 0.56

   * fixed a serious parser bug with the mdo command

Changes up to 0.55

   * fixed and enhanced util.mroll, util.mrock
 
Changes up to 0.54
   
   * ID and elem fields in alter, iterate

Changes up to 0.53

   * change order of drawing within object to improve the
     interaction with antialiased lines.

   * thread safety improvements (fixed bug involving serial 
     manipulations of the same object)

   * bug fix with stick representations

   * fixed minor goof with cmd.dist retval in 0.52

Changes up to 0.52

   * many improvements to online help

   * fixed discrete objects created from PDB files

   * prevented deadlock condition with re-entrant API locks

   * fixed couple of logic-bugs in threading 

   * changed output format from mouse click to a valid selection

   * finished retrofit of the parser.
   
   * formal charge now read from MOL files -- need to consider full
     implementation of MOL file reading capability (incl stereo)

Changes up to 0.51

   * Tcl/Tk GUI now contains a save molecule option

   * Tcl/Tk GUI help improved 

   * performance/quality options in the display menu

   * sphere quality setting
       
   * depth_cue toggle setting (important for low-end PC hardware)
 
   * specular reflections

   * fog setting

Changes up to 0.50

   * can now "pick" C-alphas in the ribbon

   * can now "pick" atoms and bonds in the stick representation 

   * improved clipping plane control command "clip"

   * pym file extension support, for PyMOL-specific .py files

   * better windows NT compatibility

   * settings browser

   * view, view_get, view_set commands

   * Parser now contains a general shortcut handling module to
     further help in reducing typing

   * Slight tweak of the virtual trackball

   * Saving and restoring matrix, center, origin, zoom, clip

   * Internal program output no longer includes python's stderr
   
   * New thread management solution -- simple and stable -- plus 
     it even works (I've even got test cases to prove it)!

   * Fixed memory-trashing bug in the selector

   * Found a workaround for KDE/Gnome/Tkinter/Tcl/Tk problems under linux

   * Created Save option on the Tkinter menu, and added additional file types.

   * TAB-activated filename and command completion (CTRL-D too)

   * Former TAB functionality moved to ESC (text/graphics toggle)

   * Auto-detection of stereo capability

   * Created a robust Feedback control mechanism

   * Eliminated hangs and crashes upon program termination with Win2k/NT.
   
   * "Distances" wizard (internal gui;replace with external version later)

   * "Pair Fit" wizard (internal gui; replace with external version later)

   * Mesh objects now have states, and new meshes are appended.

   * Modified raytrace antialiasing transfer function to improve sharpness.

   * Created alias and extend commands so that python scripts can extend the
   pymol language on the fly.

   * Additional test cases.

   * Parser improved with a new argument parsing subsystem which has a
   better mapping to standard Python arguments.  This has significant
   potential to break existing code if there are any bugs, but I am
   shooting for 100% backwards compatibility. 

Changes up to 0.49

   * Improved editor, hydrogens now auto-deleted.

   * Visible selections.

   * Default mouse actions changed for editing and atom selecting.

   * Callback objects (for use with PyOpenGL) now have extents.

   * get_state and get_frame API functions

Important Changes 0.42-0.48

   Too numerous to list them all...
   
   * Addition of support for PyOpenGL-based GL calls with callback objects

   * Wizard feature, for grabbing mouse input -- still needs flushing out.

====================================

See below for changes implemented in specific releases
------------------------------------------------------

PyMOL Architecture and Development Status

   OpenGL Core ( _cmd.so/.a/.dll/.lib and modules/pymol )

      Currently, deployed only in glutPyMOL (a.k.a. standard "PyMOL").

   Syndicated Application Ideas...

      glutPyMOL (PyMOL in GLUT window with an external GUI)
       
         Deployed -- the current standard, in use globally.

      ePyMOL Lite (EasyPyMOL, free version, win32 only)

         Planned for mid 2003

      ePyMOL Pro (EasyPyMOL, professional version, win32 only)
   
         Planned for mid 2003

      axPyMOL (PyMOL inside of an ActiveX Control)

         Working prototype partially completed

      wxPyMOL (PyMOL inside of a wxPython Widget)

         Working prototype near completion.

      MacPyMOL (fully Aqua-based native version of PyMOL)

         Planned for late 2003

      tkPyMOL (PyMOL inside of a Tcl/Tk TOGL widget)

         Planned for late 2003.

      qtPyMOL (PyMOL inside of a Qt/PyQt Widget)

         Planned late 2003 or 2004. 

      perlMOL (PyMOL wrapped into a Perl module)

         Under consideration.

      jPyMOL (PyMOL wrapped inside a Java class as an external C module)

         Under consideration.  

   External GUIs for glutPyMOL

      Default PyMOL Tcl/Tk GUI

         Deployed -- the current standard, in use globally.

      Tcl/Tk GUI for GAMESS-UK (CCP1)

         In development, under direction of Paul Sherwood.

      Stanford Java Teaching GUI (iRoom, etc.)

         In development by team of Stanford students.

      UT Southwestern Bioinformatics Project

         In development, under direction of Rama Ragnanathan.
         
      PHENIX 

         In development, under direction of Paul Adams.

OpenGL Core

   Changes planned

      * Add support for HKEY_USERS entries into PyMOLWin
         
      * IO routine for a generic volume data object (to supplement bricks and maps)
   
      * Real Edit Menu in Tk (with normal cut/paste, etc)

      * support anisotropic B-factor renditions (ellipsoids)

      * support MOL2 and multi-MOL2 file formats

      * add an interactive tutorial

      * finish abstracting GLUT away from PyMOL

      * Solid clipped spheres and surfaces (how?)

      * Completely black/opaque underside of surfaces

      * Finish 3D label support

      * Enable specific xyz positioning of labels (w/ mouse)
   
      * Cutting of images to the MS Window's clipboard for easy
        pasting into Powerpoint

      * clean up return values in the API and qualify exceptions.
        Include the source module name in messages, and provide proper
        feedback conditionals

      * add thorough test suite

      * matrix-based object translation and rotation

      * place feedback conditionals around all output.

      * create alter_state_atom command (combine PAlter and
        PAlterState into one function)

   Changes Under Consideration

      NOTE: Some of these are mutually exclusive, and many of them will
      never be carried out -- they are listed here so that we don't
      forget about them and so that you can see ways in which core PyMOL
      might evolve.

      * Allow multiple, parallel transformation matrices for each object 

      * Create a Rasmol translator in Python

      * Support mapping of additional dimensions into volume data sets

      * "Fragment" wizard, tied into the fragments subsystem. 
      
      * CTRL and CTRL/SHIFT numbers should add aromatic and aliphatic
        ring systems in the builder 

      * support reading and writing of XPLOR PSF/PDB files to enable
        direct use of NAMD with PyMOL.  Note that this will require
        integration of basic force-field structures into PyMOL...not a
        lightweight task, but something I think should be done in a
        general way to facilitate use of PyMOL as a molecular modeling
        tool...

      * support direct reading of DCD, and/or Gromacs trajectory files

      * fold MMTK into the main PyMOL distribution, and merge the two
        programs in a way which allow the user to "see" into MMTK's
        internal data structures using PyMOL while calculations are
        being performed.
      
      * create a VRML->CGO converter so that VRML can be displayed
        inside of PyMOL

      * create a VRML writer to facilitate export of PyMOL geometries.

      * support CML via some "swallowable" python XML parser
 
      * make PyMOL a compliant extension for the Chimera environment

      * statistics module, applicable to maps

Main Goals for 1.0 Release

   * MOL2 and CML file formats

   * Generalized volumetric rendering: (1) mesh (2) solid (3) colormaps

   * Integrated tutorial/demonstration system

   * Fully consistent API (defined and correct return values)

Current Bugs to Fix

   * superposition system fails with degenerate sets (planer systems,
     etc).  sometimes it just fails period
