VMD 1.7.1 Development Status

  • Final release VMD 1.7.1 (December 23, 2001)
    • Updated docs, README, and web site.
    • Added VMDMSECSLEEPHACK environment variable control of optional user specified delay inserted into the main event processing loop. This is a last-ditch mechanism for decreasing VMD's CPU usage on machines that fall over dead otherwise.
    • Windows version of VMD now accepts command line arguments as well.
    • Updated documentation for new representations.
    • Make FLTK the default file chooser for all platforms except Windows.
    • Fixed Tk file loader widget so that it can load files with no filename extension.
    • Updated READMEs, docs, etc for new vmd.rc behavior.
    • Windows version of VMD now uses vmd.rc instead of .vmdrc
    • Fixed a fixed-sized buffer overrun error in the FltkGraphics menu.
    • Eliminate the major leaks in the volume slice rep, and make it safer for CAVE runs etc.
    • Clarified sequence viewer 'turn off highlighting' instructions in docs.
    • Added checks for zero-length dataVal array, so won't get 'divide by zero' error when non-proteins (nucleic acids, etc) are loaded.
    • Added the plugins directory structure to the VMD tree, installer, etc.
    • Updated manual with sequence viewer information.
    • Added a maxforce option to the feedback device section in the .vmdsensors file - this allows you to avoid crashing VRPN.
    • Created a file rendering API in VMDApp. GUI's and text interfaces no longer need to #include FileRenderer in order to execute a rendering command, and they can actually get error conditions back which they couldn't do when they just fired off a CmdRender command. The CmdRender object is still created as before, but by the VMDApp API methods themselves, so that logging is still done and subscribers still get notified. FileRenderList is now private to VMDApp.
    • Changed the Linux PowerPC builds to be dynamically linked, and re-built both stride and surf to cure a problem reported by one of our users.
    • Fixed a configure script bug that caused vmdsock not to get compiled when IMD wasn't enabled.
    • Updated installation mechanisms.
    • Updated the VMD startup registry key.
    • Properly handle window resize operations when operating with scanline interleaved stereo.
    • The shutdown() function and SD_SEND parameter are only available when Winsock2 is used, which requires using a different include file, winsock2.h, silly Microsoft.
    • Added automatic checking for conflicts between antialiasing modes and interleaved stereo rendering.
    • Fixed Tachyon camera parameter matching, for perspective views, in non-stereo modes.
    • Added orthographic support for Raster3D.
    • Fixed VMD->Raster3D camera model conversion. Stereo mode will still work but with an incorrect model; orthographic mode not yet supported.
    • Atom selections work with negative resid's again.
    • IMD cleanups. MoleculeIMD instances are now deleted as soon as the connection is lost, rather than waiting until the next IMD session is started. Fixed misleading comments, got rid of unnecessary status flags, and moved error reporting from IMDMgr out to SimFormsObj and the Tcl interface.
    • Added operator == to GraphicsFltkRepVolumetric::minmax so that compilers like AIX that instantiate all template functions whether they're used or not don't choke on ResizeArray::find().
    • In biocore_publish() changed the filename that save_state() writes to from "tmp" to a unique name, vmdtmp+(session_id).
    • Added "mol selupdate" and "$sel update" commands. "mol selupdate" causes automatic updates of the selection for the specified rep; "$sel update" updates the atom selection so you don't have to create a new one over and over when the selection is distance-based. We don't have a GUI control for mol selupdate yet.
    • The delete option for atom selections works now: you can create atom selections inside a Tcl loop, call $sel delete, and you won't leak memory anymore.
    • Fixed the bug requiring you to be near an atom to tug a tool selection. Now, you can click anywhere, and your tracker will be bound to a point that moves with the center of mass of your selection.
    • Fixed "Invalid material crashes VMD" bug, PR 172.
    • make windows put the pub/sync file in the root of the current drive, seems shaky, but better than littering the whole disk with trash. The temp files are immediately deleted after use, so hopefully its not that bad.
    • fix biocore pub/sync interface, improve temporary file handling, delete the temp files, and add a quick hack to provide windows support with minimal code changes.
    • Added vmdsock_shutdown function; called by IMDSim before disconnecting so that pending sends are completed before the socket is closed.
    • vmdsock now gracefully completes pending send operations before closing the socket.
    • VMD now uses the Fltk file chooser when the environment variable VMDFILECHOOSER is set to FLTK, and the Tk file chooser otherwise. Tk remains the default on all platforms.
    • Updated example DNA molecule with better ones.
    • Replaced #includes of forms.h with FL/forms.H; this prevents collisions with the xforms include and also corresponds to how things actually get installed by Fltk.
    • Added a SelectionBuilder for building atom selections with the mouse.
    • Fixed a bug that caused CPU usage to max out when user-defined graphics were drawn (at least on Linux; the behavior doesn't show up on Sun for some reason). When Graphics molecules are created, they also create a rep. The rep gets told by Animation that the atom coordinates have been changed until the first time anim_update gets called. Problem was that MoleculeGraphics never arranged for that to happen. Now MoleculeGraphics calls Molecule::prepare() and the problem goes away.
    • Prettified MainFltkMenu and made it resizable in the y direction.
    • Added rep controls for VolumeSlice. Since all reps are now complete, tests for missing reps were replaced with assert statements.
    • Refactored the Isosurface rep control into a base class and subclass to better handle other volumeric data reps like volume slice.
    • Added range checks to all the pulldown menus in the rep controls.
    • Isovalues controls are deactivated when the currently selected molecule contains no isovalue data sets.
    • Added controls for isosurfaces. Not tested yet for multiple data sets, though it's certainly designed to work properly... Handles multiple surfaces, nonexistent data sets, etc.
    • Added a Default button, which resets the current rep to its default values. Also moved the material chooser over a little bit for better alignment, and changed the highlight color in the selection and color ID inputs.
    • Added a bunch more rep controls to the new menu.
    • Added GraphicsFltkMenu. Also fixed a bug in MoleculeList that caused material changes not to be applied properly when the Apply button on the graphics menu was pressed. There's still something the matter with the original GraphicsFormsObj for materials... The new GraphicsFltkMenu will be called "fltkgraphics" for now.
    • Made sure the CaveScene itself gets allocated from CAVE memory, and replaced the CaveResizeArray with a fixed size array (temporary fix). In the simulator, rendering seems to actually be taking place now (OpenGLRenderer is getting valid command lists) though nothing is actually appearing on the screen.
    • Moved the call to set_cave_pointers and set_freevr_pointers to before the new process is forked off, so that the new process can pick up the location of the pointers.
    • Changed write_pdb_record to write to a buffer rather than to a FILE object; this allows the atomselect writepdb command to write to the Tcl result rather than to stdout.
    • Added support for perspective stereo in the POV3 renderer code. Results are not 100% perfect yet, but are very close.
    • Added no_shadow modifier in smooth_triangle output for POV-Ray
    • Added shadowless rendering for POV-Ray. The shadowless identifier in light sources was causing highlights not to be calculated; used "no_shadow" in each object instead. (so specular highlights now work properly.)
    • Fixed POV-Ray orthographic camera model rendering.
    • Fixed translation of VMD's camera model to POV's; also fixed some comments giving the correct POV-Ray commandline.
    • Added code to read in unit cell data from the "extra block" of Charmm DCD files. Also fixed a bug that caused Charmm DCD files containing the extra block to be misread on opposite-endian platforms.
    • Added pick points to H-bonds.
    • Rewrote large portions of Raster3D code for cleanliness; has side effect of now properly handling bad files
    • For callback data, pass in a pointer to an int rather than an int to avoid having to cast between pointers and ints.
    • Fixed Raster3D crash caused by uninitialized colorList pointer.
    • Deleted commented code (previous rev log incorrect; fixed incorrect array index in loop in nearest_index())
    • Cleaned up some code while looking for POV cylinder cap bug
    • Fixed memory leaks in ParseTree.C, TclCommands.C, and utilities.C
    • Fixed a bug in the new code for doing integer-based lookups for atom selections.
    • Changed the Tk update mechanism to update through the Python interpreter when Python has been initialized; if Python has not been initialized or if Tkinter is not available, Tk is updated through the Tcl API. This seems to solve the problems we've had with Tcl stepping on Python's toes when Python is compiled with threads enabled.
    • Fixed an off-by-one error in menu updates. Also reworked the callbacks to be more robust to changes in the menus.
  • VMD 1.7.1 Alpha 1 (9/7/2001)
    • Rewrote various VMD startup routines to auto-detect the version of OpenGL in-use by the display server at runtime, and use appropriate 3-D drawing commands for the level of OpenGL functionality that is available. Also added simple runtime support for WireGL-constrained rendering features, avoiding use of unsupported OpenGL APIs.
    • added spaceball support to remaining linux versions by default.
    • Changed WIREGL default back to off, there's a better way of doing this.
    • Added more WireGL safety checks.
    • Added protection for the 2-D and 3-D texturing code so that they are only used when the OpenGL display server renderer is a high enough revision.
    • Turn on WireGL support by default.
    • Atom selections based on lists of ints (e.g. index 1 2 3 4 5...) are now parsed in O(1) time, rather than O(n) where n=# of elements in the list. This makes it possible to cache atom selections efficiently by storing just the indices of the atoms in the selection. Analysis scripts can benefit from this feature.
    • Improved the efficiency of JString by having it copy just the pointer when it receives a const char * while still copying the string when it receives a regular char * pointer. Atom selections involving string data (e.g. name) are around 3x faster, which is very nice for analysis scripts and even makes a noticeable difference when making atom selections in the Graphics form.
    • Updated MSVC build settings for new code.
    • Improved floating point type consistency in the Volume and Isosurface code, and fixed two initialization bugs that would have bitten us sooner or later.
    • added significant texture mapped display of scalar volume data into the volslice representation.
    • Added a texturing mode parameter, control buttons, and rendering code to enable higher toggle between texture mapping with GL_LINEAR and GL_NEAREST. Same code can be extended to implement other texturing modes.
    • Several improvements to the 3-D texturing implementation, adding texture clamping, border color, etc. Also corrected some bugs in the slice plane texture calculations.
    • Added 3-D texture-mapped volumetric slices as a new "VolumeSlice" representation for viewing volumetric data.
    • Added basic handling of applicable existing coloring methods to volumetric data sets, starting with colorid, and molecule.
    • Changed the Python library directory to make it easier to build VMD in non-TB environments.
    • Added 2-D and 3-D texture hardware query and initialization code.
    • Added new VMDFltkMenu and MainFltkMenu classes. VMDFltkMenu is a base class for future Fltk-based menus. MainFltkMenu is intended to be a replacement for the Main, Mouse, and Molecule forms; it's named "fltkmain" at the moment.
    • Eliminated faked volumetric data feature, added wireframe display capability, and made the default rep display be a wireframe box for now.
    • Updated counter settings for isosurface representations..
    • fixed points rendering, offset was all 'x' due to typo.
    • fixed missing origin offset in axes translation code.
    • enabled wireframe display mode.
    • Added isosurface code for trimesh display of isosurfaces.
    • Fully implemented triangle mesh isosurface code.
    • Updates to volumetric data internals. Added a name field to the struct, and changed the syntax of the Tcl command accordingly; now you would use, e.g., mol volume top "test data" {0 0 0} {1 0 0} {0 1 0} {0 0 1} 100 100 100 $data Deleted the delete_volume_data method for now.
    • implemented a cheap and sleazy point-based volume renderer until the marching cubes code is done. Its good enough to do sanity checking for now.
    • Make isosurface rep draw box-only by default.
    • Updated defaults for isosurface rep, got rid of excess chatty messages.
    • Added real solid box representation for volumetric data.
    • enable isosurface rendering feature by default.
    • added first rev of counter/button handling code for isosurface reps.
    • Added box rendering code for volumetric data. Really, it would be nice to be able to use this same box code for a few other things too...
    • Updated volume code to use new struct from BaseMolecule
    • Added code to read in volumetric data from a Tcl command and store it in newly defined data structures in BaseMolecule. The syntax is mol volume We can add rgb blocks of data later...
    • Added basic code for new isosurface reps to be written. Only enabled when compiled with -DVMDISOSURFACE
    • Added new scanline-interleaved stereoscopic rendering support for use with the Eye3D and similar stereoscopic glasses and decoders. Implemented for all platforms that support OpenGL stencil buffers.
    • Added multi-level stipple based transparency, much more useful to the end user when they try to make their ray traced output look similar to what they got on the screen.
    • Returned the behavior of the counters in the Edit form to the old behavior when reading files, i.e. it goes from -1 up to whatever you want. Having it range only over the existing frames made it impossible to read files properly.
    • Descriptions can now be added to hot keys. The new syntax is user add key [description], which is backward compatible with the old syntax (i.e. omitting the description is allowed, but older versions of VMD will concatenate the description onto the command). Paving the way for a GUI that handles hot key settings...
  • VMD 1.7 final release (August 1, 2001)

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