VMD 1.6.1 Development Status

  • VMD 1.6.1 Released (4/22/2001)
    • Updated README
    • Updated documentation, added JMV to list of other projects.
    • Updated Windows installer files.
    • Updated README with BioCoRE publish/sync feature mention.
    • Fixed a minor bug in the documentation regarding IMD in the core text commands lists.
    • Updated documentation for changes to color scale size, updated example scripts.
  • VMD 1.6.1 Alpha 4 (4/12/2001)
    • Updated Win32 versions of AtomLexer and AtomParser code, and cleaned up the AtomParser.y and AtomLexer.l code to generate code that more closely matches what we need.
    • Added 'exwithin' atom selection construct, equivalent to '(within 3 of X) and not X'.
    • Added better defaults for image viewers and HTML viewers on MacOS-X
    • Created a help redirector for use with MacOS-X
    • The 'mol' command now forces an immediate display loop update only for 'mol load', not for the other mol commands. The fixes a bug in which calling 'mol modselect' from a callback keying off vmd_frame would cause animations to skip frames due to the second display update.
    • The xpos, ypos, and zpos atom selection functions now set their data to 0 when there is no timestep, rather than leaving the data unitialized. Fixes "atom selections access unitialized coordinates" PR.
    • Improved AIX threads code to schedule over all CPUs rather than just one.
    • Changed all of the Unix versions of VMD to use /tmp instead of /usr/tmp
    • Added multithreading support for MacOS-X.
    • Added a new SDLOpenGLDisplayDevice implementation.
    • Added preliminary support for the SDL "Simle Directmedia Layer" library for video and audio to VMD's configure scripts.
    • Significantly updated implementation and documentation of Python callbacks.
    • Updated README info for new MacOS-X port
    • Changed MACOSX builds to use /tmp instead of /usr/tmp for short-lived files.
    • Updated VMD startup script to be able to start correctly on MacOS-X with XFree86-based build of VMD.
    • Built Stride and Surf for MacOS-X
    • Fixed configure script to allow VMD to build on MacOS-X using XFree86 4.0.2 and Mesa.
    • Added input fields in the Sim form for establishing an IMD connection. Also eliminated redundant data from the simulation status window, and reduced the size of the form to eliminate unused space. All IMD functions can now be done from the Sim form.
    • Added more info about other TB projects into the VMD README file
    • Upgraded binary builds to use FLTK 1.0.10
    • VMD now detaches its IMD connection automatically if the MD simulation aborts or the connection is somehow interrupted. Previously, you had to explicitly detach before VMD would let you establish a new connection.
    • Multithreaded IMD no longer tries to join a thread that was never spawned when an attempt is made to connect to a nonexistent MD simulation.
    • Fixed Win32 builds to support new Anaglyph stereo as well.
    • Added Python license information to source header.
    • Long-overdue update to IMD documentation.
    • Presented Interactive MD paper at Siggraph I3D 2001
    • Updated documentation for Raster3D file reader and number of colors in the color index palette (now 1024).
    • Updated documentation for use of Stereo in VMD, and added info on how Anaglyph stereo works.
    • Significant performance improvements for the graphics form atom name lists for large molecules containing hundreds of thousands of atoms. Very large name lists now display 10 to 30 times faster.
    • Fixed PR 153, "Graphics form atom name lists corrupted in VMD 1.6", code was not correctly allocating data items from stable storage before passing into the hash table data structures.
    • Implemented a real-time Anaglyph stereo rendering mode, for people that have quad-buffered stereo on their computer, but lack the LCD shutter glasses. The code is almost identical to the CrystalEyes code except that it uses glColorMask() to modulate which colors are written to the left and right eyes respectively.
    • Users of the Sun Expert3D card may need to use a special environment variable to get around a potential intermittent problem when running in stereo display modes: setenv SUN_OGL_IFB_NO_FAST_CLEAR true This environment variable disables a optimization in Sun's OpenGL 1.2.1 implementation which can cause screen drawing glitches in certain circumstances. The Sun graphics engineering people are working on fixing the problem, but it may be a while before the code/patch is available to end users, in the mean time, this environment variable can help solve the problem.
    • Chasing bugs in Solaris builds using Sun Forte 6 maint update 1, have temporarily turned down optimization level to -xO3 due to problems encountered with -xO5 builds.
    • Released alpha 3
  • VMD 1.6.1 Alpha 3 (03/12/2001)
    • Fixed PR 146, VMD would not compile on Redhat 7.x due to problems with the use of isatty() in generated flex/lex source.
    • Fixed PR 152, VMD can crash due to a free memory write that occurs immediately following a "mol delete all" command.
    • Updated MSVC build and install files/configuration
    • Added 64-bit IRIX6_64 target support to the configure script.
    • Built 64-bit Solaris binaries, using new "SOLARIS2_64" architecture target name.
    • Fixed a crash caused by invalid color IDs, due to mismatching VMD internal data structures.
    • Documented new method of starting RMSD fit routines
    • Added the command "vmdrmsd" to bring up the Tk rmsd menus
    • Fixed PR 150, loading a VMD saved state from a session that contained no molecules gives an error trying to set the top molecule.
    • Fixed PR 151, unitialized color entry in color by charge, beta, etc.
    • Fixed an inaccuracy in the README description for "atomselect get" speed improvements, need to be more specific.
    • Released alpha 2 to the public.
  • VMD 1.6.1 Alpha 2 (03/5/2001)
    • Fixed PR 145, "Tru64 gcc compiles fail".
    • Fixed PR 148, "color by position" color indexing bug.
    • Updated installation documentation in various spots.
    • Cranked revision to alpha 2, I plan to skip releasing it to the general public until at least alpha 2.
  • VMD 1.6.1 Alpha 1 (02/23/2001)
    • Updated documentation, mention of BioCoRE, Copyright dates, etc.
    • Turned off threads for statically linked Tru64 Mesa builds, since there isn't a statically linkable pthreads library there presently.
    • Fixed incorrect command logging by CmdDisplayDetail and CmdDisplayAltDetail. The error was caused by the logging code reporting the current value from the display device, rather than the value held by the command.
    • The Mouse no longer takes control of the event loop when a button is pressed in the graphics loop. Instead, it stores its internal state and turns off event checking for the Forms until the button is released.
    • Added infrastructure for masking classes of UIObjects. There are currently four types: mouse, uivr, textui, and forms. The idea is for Mouse to set the event mask when it wants to exclude GUI events, rather than take over the event loop and call VMDupdate explicitly. In fact, FLTK is sufficiently fast that Mouse doesn't really need to do this anymore (XForms was a different story), but if we ever decide to use a different GUI library it might be nice to have this mask setup in place.
    • Created a new mouse mode: Move Highlighted Rep. The highlighted rep is whatever rep is highlighted in the Graphics form (the molecule must also be selected for the rep to be highlighted, thus only one rep from only one molecule can be active at a time). Added a new radio button for this mode to the Mouse form. This mode allows users to move arbitrary atom selections, whereas previously they were limited to atoms, residues, fragments, or molecules.
    • Fixed bug in the VMD "trans" Tcl command, patch from Willy Wriggers
    • Added POSIX threads flag to Linux builds.
    • Fixed Python display.update_ui() (PR 140)
    • Fixed a typo in the transvec command (PR 139).
    • Added getvalues command to the Python label module, which allows you to get the value of a label for all coordinate frames. Should be useful for making graphs.
    • Moved InitializeStructure callbacks from the DrawMolecule con/destructor to CmdMolNew/CmdMolDelete so that callbacks are triggered only when VMD has completed loading or deleting a molecule and MoleculeList has been updated. This also fixes a bug in which a callback triggered by deleting a molecule could read string data that had already been freed.
    • The Python method molecule.coor_file now checks to see if the value returned is NULL before trying to convert it to a Python string; VMD used to core dump if you called this method on a molecule that didn't have a coordinate file.
    • Fixed typo in display.update_ui() method.
    • Fixed a bug reading certain kinds of structure-only G96 files.
    • Fixed an unitialized variable that led to a segfault when the tracker offset was set in the Tracker Form.
    • DrawMolItem now sorts selected atoms by color when the selection or color is changed. Lines are now added to the display list in a block, using a single DispCmd, rather than one at a time. This allows much greater efficiency in rendering, both in VMD's code and in avoiding GL state change, resulting in rendering speedups by factors of 3-4 for large systems. Animation is also faster by around a factor of 3 due to the shorter time needed to construct the display list.
    • IRIX6 builds now build using Posix threads as well since name collision was fixed.
    • Fixed name collision between IRIX's own barrier sync data structures and those used by VMD.
    • The Main form's light buttons now turn off when you close a form with the window manager buttons rather than VMD's off buttons, as suggested by L. Wood.
    • Updated msvc build.
    • Added "getbonds" and "setbonds" commands to Tcl and Python atomselections. Eliminated the Tcl "bond" command, which had never been documented anyway. It's still possible to type "$sel get bondlist" in Tcl, and sel.get('bondlist') in Python, but that's a nasty hack: the lists are returned as strings. "getbonds" and "setbonds" are documented in the molinfo/atomselect chapter; we should eliminate "get bondlist" altogether.
    • Fixed typo for IMDSimBlocking include.
    • added POSIX threads to HPUX11, SOLARIS2, TRU64, and LINUX builds by default.
    • Updated a bunch of defines in the threads code to match what VMD's architecture definition scheme does.
    • Successfully built on HP-UX 11.0 with POSIX threads enabled.
    • Successfully built on IRIX 6.0 with POSIX threads enabled and CAVE disabled.
    • Updated MSVC project for IMDSimBlocking.C for now.
    • Added IMDSimThread, an implementation of IMDSim which reads coordinates and energies from NAMD in a separate thread so that blocking reads don't disrupt VMD; very noticeable improvements when there is significant latency between VMD and the simulation.
    • The VMDThreads code conflicts with the CAVE code on IRIX, because of an IRIX barrier_t type name collision. Will deal with it later, for now IRIX builds only work with threads when CAVE is turned off.
    • Cleaned up VMDApp.C a bit.
    • Added -mt for Solaris x86 pthreads builds too.
    • Cranked configure script version number to 1.6.1a1
    • Added new VMD startup messages when multithreading has been compiled in.
    • Added -mt compile flags for Solaris on pthreads-enabled builds.
    • Added configure option for POSIX Threads support.
    • Changed -DTHR sensitivity to -DVMDTHREADS for better match with VMD.
    • Renamed rt_xxx() threads routines (from Tachyon) to vmd_xxx().
    • Added portable threads code donated by John Stone, originally from Tachyon.
    • Made VMD startup script use fully qualified path to aixterm.
    • Fixed OpenGLRenderer class to use the DISP_LIGHTS macro.
    • Fixed a problem with IMD not destroying its socket object when the connection fails; this results in the user being unable to reuse the port, because the socket hasn't been closed. Also cleaned up the code so that connection status is tested using isConnected(), rather than the actual data member, and eliminated the redundant "connected" flag.
    • IMDSim now copies coordinates and energies into a passed-in buffer, rather than returning pointers to its internal buffers.
    • Split IMDSim into base class and blocking implementation, in preparation for possible nonblocking or multithreaded subclasses.
    • Increased the number of colors in the color scale map from 16 to 1024.
    • Revised the atomselect get function to use the new Tcl API and avoid unnecessary copying of arrays. For data of float or integer type, the new version is faster by 10-30x for large systems; however, data of string type is slower by about a factor of 2 (on Linux). The inefficiency is due mainly to JString; my tests show that we could get similar speedups for strings if we could get away with using raw pointers instead of JString. In any case, it's worth making floats faster because only floating point values change over the course of an animation; all string values are constant.
    • The implementation of the Tcl atomselect:get function now checks to see if an atom is in the selection before copying the data into the output array. This is several times faster in the case of large molecules and relatively small atom selections; for small molecules it's pretty fast anyway.
  • VMD 1.6 final release (Dec 22, 2000)

Please email any questions to vmd@ks.uiuc.edu.