-----------------------
Introduction
-----------------------
  Release Notes amira 3.1
  Release Date: November 2003

  This document describes changes and improvements in version 3.1 of
  the Visualization and 3D Reconstruction system amira.
 
-----------------------
Supported platforms
-----------------------

  - Windows 98/ME/NT4/2000/XP (recommended Windows 2000/XP)
  - Linux (RedHat 8.0 with glibc-2.3.2.so or higher)
  - Linux Itanium 64 (RedHat AW 2.1)
  - HP-UX 11.0, 32/64 bit code
  - SGI Irix 6.5.x, 32/64 bit code
  - SUN Solaris 8 or 9 (SunOS 5.8 or 5.9), 32/64 bit code

  Details about Software and Hardware configuration are listed 
  in the section "System Requirements" of the User's Guide included
  in this distribution and also available at http://www.amiravis.com.

  In order to add custom extensions to amira also a C++ compiler
  is required. Details about the supported compilers and compiler
  versions can be found in the section "System Requirements" of the
  Programmer's Guide included in the amira developer version.

  - Windows: Visual Studio 6 and Visual Studio .NET 2003
  - Linux: gcc 3.2.x
  - Linux Itanium 64: gcc 2.96
  - HP-UX 11.0: aCC 3.35 with new C++ standard lib
  - SGI Irix 6.5.x: CC MIPSpro 7.3.1
  - SUN Solaris 8: CC Workshop 6

-----------------------
Changes since amira 3.0
-----------------------

* New: Support for Linux Itanium 64

* Slice aligner: Also works on LargeDiskData objects, which are
  not stored completely in main memory, better interpolation when
  resampling images, new resize option allowing the result to be 
  bigger than the input image, new edge-based alignment algorithm,
  better performance and quality of the least-squares alignment
  algorithm by means of a hierarchical optimization strategy

* Direct volume rendering with the Voltex module: Instead of palette
  textures a pixel shader program is used now yielding higher quality
  images for high-frequency colormaps, support of compressed textures
  if available

* StandardView module: Now also supports RGBA color images, also
  a second 3D data set can be superimposed by means of blending,
  add or max intensity operations, or a checkerboard display

* New module for multi-modal image registration.
  For example, CT and MR data can be aligned easily. Different
  criteria  such as least squares or normalized mutual information
  are available. This module is explained in a new tutorial.

* New reader for the SEG-Y data format.

* Extended support for the Leica confocal image format (multi-channel
  images and time-dependent data)

* New image filters: Existing filters have been revised and new filters
  such as Gauss 2D or Sobel filters have been added. All filters now can
  not only be applied in an editor but also in a compute module.

* New semi-automatic segmentation tools: The segmentation editor
  provides active contours that move automatically towards the
  object boundaries.

* Script objects: more examples for writing amira script objects,
  ready-to-use script objects for creating and playing back demos
  (DemoMaker and DemoSequence). An online documentation for script
  objects can be created

* Improved movie maker: support for creating stereo movies

* Improved stereo movie player: it can convert a movie consisting
  of a sequence of separate image files into a compressed-texture
  format suitable for fast playback.

* New module to generate arbitrary parametric surfaces from analytical
  expressions.
  
* New module ConePlot to visualize vector fields by animated cones.  

* New system information dialog: version information of all amira
  components now can be easily obtained, including a list of
  installed patches

* Improved JPEG output, added Tcl variable AmiraJPEGQuality (0...100)

* Improved IO of ply files (endianess issues, colors per vertex)

* Support for AVS UCD files with time-dependent data

* InterpolateLabels: improved quality of the interpolated data, can
  now also be applied to label fields with stacked coordinates

* Extended export of reconstructed 3D models in VRML

* New module SurfaceCut that displays  cross-sections through 
  surfaces separating different regions. Each region in the cross-section
  is filled and displayed with its respective color. Previously,
  similar cuts could only be computed for volumetric tetrahedral grids.

* Two new items have been added to the File menu, allowing to quickly
  reload the files and networks which have been accessed most recently
  (Recent Files, Recent Networks).

* Improved documentation of global amira-specific Tcl commands. All these
  commands now listed in a common reference section in the user's guide.

* Includes all patches for amira 3.0 and many more bug fixes

  CHANGES IN amiraDev:

* New: Support for Visual Studio .NET 2003 (VC71)

* A new, fully automatic system that creates GNUmakefiles, Visual Studio 6
  project files, and Visual Studio .NET 2003 project files.

* AmiraDev is now based on Open Inventor 4.0 and  uses new platform-independent
  SoQt classes instead of SoWin classes on Windows and SoXt classes on Unix

* Strict separation between Hx* classes not depending on Qt and Qx*
  classes depending on Qt (implies renaming of some previously
  undocumented amira classes)

* Headers of more amira packages are included now: hximproc providing
  access to the amira image filters, hxvertexset providing access to
  the amira sphere rendering node

* New tool doc2html allows to create an online documentation for custom
  modules and IO routines. A new section in the programmer's guide explains
  how to create such documentation.

  CHANGES IN amiraVR:

* New amiraVR cluster extension, allowing to run amira on a graphics
  cluster driving a multi-wall display system. This extension allows it to
  start multiple instances of amira in a synchronized way. Each instance is
  responsible for rendering one particular wall or set of walls. It is
  possible to load standard amira networks and to interact with the modules
  via the 3d menus or via the amira script interface.

* Improved mouse interaction for standard amiraVR. In both planar and
  non-planar configurations you can now interact with the 2D mouse without
  any restrictions (pick slices, move draggers, etc.). Event processing for
  screens on a remote display is much faster now.

* Improved 3d menus: Possibility to constrain the menus to the screen
  plane, making interaction more easy. Possibility to customize the
  top-level menu, and not only the user menu. Possibility to interact with
  the 2d mouse in a VR config.

* Improved amiraVR API: An easy way to define geometry in fixed world
  coordinates in a module, a new class HxVREnvironment allowing to access
  all parameters of the current VR configuration from a user module.

* More demo modules, illustrating how to interpret Open Inventor tracker
  events and controller button events, and how use multiple trackers.

-----------------------
Changes since amira 2.3
-----------------------

* Slice aligner: reduced memory consumption, new option to align images
  with respect to a fixed slice

* New module HxDisplace for applying displacement vector fields to
  geometric models

* Support for TeraRecon's VolumePro 1000 volume rendering hardware
  including combined geometry and volume rendering and volume rendering
  of large 3D image stacked (images must not reside in main memory).

* Point probe module: new option for computing an averaged data value
  inside a sphere

* Line probe module: option for converting a line probe into a line set

* New module for displaying a test pattern for passive stereo projection

* Improved annotation module (multiple lines)

* New scripting guide. Revised Tcl commands for all data objects and
  modules. Better documentation of the Tcl commands. In order to get
  the help text for a command or for a port just type in the command
  in the console window and press the F1 key.

* Better Tcl error messages.

* New DICOM 3.0 export, improved DICOM 3.0 import (image preview)

* New image segmentation editor features, including improved region 
  growing, translation and rotation of selected areas, option for
  rotated or flipped views, new wrapping tool, new selection replace
  option in addition to add and subtract, way to create template label
  fields with predefined materials

* New option tile in the snapshot dialog, which allows generating 
  snapshots with arbitrary high resolution.

* Creation of snapshots with an alpha channel for later image compositing
  (viewer 0 snapshot -alpha <imagefile>). With this option two snapshots
  are taken, one with a black and one with a white background. From these
  images the correct color and alpha values are computed. 

* Possibility to write snapshots in DICOM 3.0 format.

* Renamed the GMC module for surface generation to SurfaceGen.

* Improved smoothing of label fields: new algorithm guarantees that no
  label is changed by the smoothing operation. The new option is
  available as an option in the SurfaceGen module. This is a major
  enhancement allowing to reconstruct much better surfaces in many
  situations.  The old smoothing in the image segmentation editor
  (smooth labels 3D) is still available.

* New features for dealing with large disk data (LDD concept).
  Very large regular 3D data stored on disk can be quickly
  accessed in parts or in low resolution. For fastest access a new
  distributed disk data file format is provided. Big raw data file,
  AmiraMesh files, and stacks of 2D images can be accessed via the LDD
  interface too.

* New Region-of-interest concept. ROI's can be defined either using
  the new SelectROI module or implicitly using an LDD-Access module.
  Standard modules such as LineSetView or all module derived from
  HxViewBase (Isosurface, SurfaceView, GridVolume, HexaView, ...), can
  be connected to a ROI provider. Then the view will be automatically
  restricted to the ROI.

* New module for displaying boundary faces in a hexahedral grid.

* Support for the the Leica TIFF image format.

* New -proc option for the module or dataClass Tcl commands used to
  register objects in amira .rc-files. With this option a Tcl procedure
  can be defined which is called right after the object is created.
  This allows e.g. to modify the default settings of an existing module.
  It also allows to create popup menu entries for virtual objects (just
  omit the -class statement). When selecting such an entry no object
  is created but just the Tcl procedure will be executed. With the same
  mechanism ScriptObjects can be added to the popup menu.

* New module for creating MPEG files directly from amira (MovieMaker).

* New CameraRotate object for producing simple animations. The MovieMaker
  module can be directly connected to this object.

* New module VolumeEdit for modifying a 3D image with 3D drawing tools.
  Useful for 3D image segmentation and background/noise removal.

* Improved TissueStatistics module. New options area per slice and
  volume per VOI.

* New Grouping module allowing to define arbitrary groups of elements
  in all modules derived from HxViewBase (SurfaceView, GridVolume,
  HexaView, etc.). The grouping module is connected to one or more
  of these display modules. It allows to define and select groups.
  The groups can be stored in AmiraMesh files or in network scripts.

* Improved time series control module. The module now optionally allows
  to interpolate between different time steps (surfaces and surface
  fields, tetrahedral and hexahedral grids and associated data fields,
  any other data type derived from HxVertexSet).

* New module CuttingPlane. The module defines cutting plane (via an
  Inventor dragger). It then cuts all geometry in the scene with this
  plane and produces a line set. Connected line segments are identified.

* New module SurfDistance. Computes the Hausdorff distance between two
  arbitrary surface.

* New module AlignSurfaces. Aligns two arbitrary surfaces so that the
  Hausdorff distance is minimized. The surfaces need not to have
  corresponding points.

* New module AlignPrincipalAxes. Aligns two arbitrary data objects derived
  from HxVertexSet (e.g. surfaces, grids, or point clusters) so that
  the center and the principal axes of both inputs match.

* New module SurfaceNormals for visualizing the normals of a surface.

* VertexMorph module replaced by new Interpolate module. The new
  module optionally also interpolates data fields connected to a grid
  or to a surface, or it optionally interpolates the grid or surface
  if connected to a field defined on such objects.

* New module TetraVectors. Visualizes the vectors of a vector field
  defined on a tetrahedral grid. Can be connected to GridVolume or
  GridBoundary. Vectors are displayed on the elements selected by
  these modules.

* New module StreamRibbons. Computes ribbons in a vector field.

* New module Animate. Allows to animate standard amira ports
  (sliders and numerical text fields) using a single Time object.

* Significantly improved Arithmetic module. Now operates on all fields
  on regular, tetrahedral, and hexahedral grids, as well as on surface
  fields. Can compute n-component result instead of only a scalar one.

* New module Merge. Combines an arbitrary number of possibly transformed
  3D images into one big resampled image using distance based
  interpolation.  Useful for reconstructing 3D models from objects which
  are scanned in in different parts.

* Colormap icons are shown in the popup menu of PortColormap. Colormaps
  can be loaded and edited directly from the popup menu. Better
  representation of transparent colormap in the user interface.

* Improved color map editor. New menu 'Extras' allowing to set predefined
  colormaps. Smaller brush for interactive editing of a channel function.

* New local range feature for PortColormap. Previously the colormap range
  was always taken from the colormap object itself. Now it is possible to
  define a module-specific range in PortColormap.

* Before quitting amira now it is checked if any data object or the current
  network need to be saved. These checks can be disabled or enabled in
  the preferences dialog.

* Transformed data sets are shown in Italics in the object pool. Modified
  data sets are marked with an asterisk.

* Significantly improved transform editor. The editor now provides an
  optional dialog allowing to define absolute or relative transformations
  exactly using text input field. For vertex set objects the editor now
  also provides an 'Apply Transform' button. Transformations can be copied
  into and pasted from an internal buffer. This makes it possible to
  copy a transformation from one data object to another very easily.

* Improved Curvature module. Now allows to compute the mean curvature,
  the Gaussian curvature, the maximum curvature, or both main curvature
  values or their inverse values.

* New module LegoSurface. This module reconstructs a surface from a
  label field like SurfaceGen, but the surface exactly matches the
  voxel boundaries.

* Improved online help. Module and editor indices contain short explanation 
  now.

* Better support for color fields with stacked coordinates. In particular,
  the modules CastField, OrthoSlice, and ObliqueSlice now support such input.

* Many bug fixes and minor improvements.

-----------------------
Changes since amira 2.2
-----------------------

* Slice aligner: new tool for manual and automatic alignment of 2D slices
  in a 3D image stack (facilitates reconstruction of geometric models from
  mechanical/histological cross sections, tutorial and demo included).

* New features for interactive image segmentation, e.g., a wrapper tool,
  allowing to interpolate 3D shapes from just a few segmented slices,
  or smoothing by means of morphological operations

* Option to view the current selection and segmented regions in the
  image segmentation editor in 3D. The selection can also be edited,
  e.g., cropped away, in 3D.

* New interactive tool for surface editing (move points, flip edges,
  collapse edges, refines triangles, delete triangles, define new
  triangles, specify boundary condition IDs and more)

* Better support for multi-channel images (individual channels can
  be grouped into one object, editors and modules can work directly
  on the multi-channel object, this includes OrthoSlice, ObliqueSlice,
  ProjectionView, Resample, CropEditor, and Voltex).

* Better support for time-dependent data using a time step controller
  (caches and replaces individual time steps on request, can be
  invoked via "Load Time Series..." option of the file menu)

* Improvements and new tools for measurement (lengths and angles)

* New options for resampling: specify voxel size of output data set,
  take dimensions and/or resolution of output from reference object

* New module ApplyTransform (resamples transformed 3D image onto new
  grid with identity transformation, resamples 3D image onto a new grid
  oriented as defined by a slicing module)

* Improved quality of reconstructed surfaces (compactify option and
  option for edge contraction in the GMC module)

* "Virtual slider" in text fields (shift-click into a text field
  displaying a numeric value and move the mouse while keeping the
  mouse button pressed in order to change the value, mouse wheel
  works as well)

* Volume rendering: support for palette textures and SGI/HP color table
  extension (less memory consumption, improved performance), real-time
  selection of subvolumes via a tabbox dragger (can be activated using
  the command "Voltex showBox 1"), much less flicker when rotating
  objects in 2D texture mode

* New file formats: BioRad confocal images, Metamorph STK format,
  Fidap neutral file format, I-DEAS file format, Analyze 3D images

* Improvements for many existing file formats: ZEISS LSM (16-bit,
  multi-channel), Leica 3D (memory handling), Fluent (boundary ids)

* Instead of the bounding box now on default the voxel size can be
  entered in the crop editor, the read raw dialog, and the channel
  conversion dialog. The bounding box option is still available, too.

* Improved console behavior (TAB auto completion, less flicker)

* Redesigned DICOM import dialog: DICOM files are listed in a table
  and can be sorted according to different criteria such as series
  id, file name, z position, date.

* ProjectionView: new option for combined pseudo-color display of both
  the projected values and the depth information (max + depth), support
  for projection of subvolumes (restrict option)
  
* New module ProjectionViewCursor (can be attached to a ProjectionView,
  shows location of the voxel containing the maximum value).

* New module VertexMorph for interpolating between two vertex set objects
  (e.g. surfaces) with the same number of vertices

* New module Histogram for computing histograms for any scalar field
  regardless of the coordinate type.

* New module CorrelationPlot for plotting the correlation matrix of two
  regular 3D input images of the same dimension. Possibility to segment the
  images by manually drawing contours into the correlation matrix.

* New module SurfaceArea to compute the surface and/or the volume of the
  different patches or regions of a surface.

* Enhanced version of the DistanceMap module.

* New option "pack & go" option for exporting network scripts. New
  preference dialog for further customizing the save network behavior.

* Viewer toggles are shown on the icons in the object pool (objects don't
  need to be selected any more in order to change the viewer mask).

* New modules selected from a parent's popup menu are automatically
  selected now (behavior can be turned off in the preferences dialog).

* Performance improvements for illuminated field lines (DisplayISL module)
  on several platforms like Windows/NVidia

* Better support for transparencies in slicing modules such as
  OrthoSlice and ObliqueSlice by use of OpenGL's alpha test function

* Surfaces may now have more than 32767 patches.

* Snapshots are always written as 3 channel RGB images, not RGBA. Improved
  compatibility of exported TIFF files with Windows applications.

* Support for a user-defined material database.

* Specification of colors in the parameter dialog via a color chooser.

* Data in plot window can be saved in Excel csv format. 

* amira 2.3 is based on the newest releases of Open Inventor (version
  2.6.2), Qt (version 2.3.1), and Tcl (version 8.3.2)

* All patches released since amira 2.2 are incorporated in the new version
  for all platforms. This includes bug fixes as well as functionality
  enhancements. 

* Starting with amira 2.3 a separate option called amiraMol is available
  for the visualization of moleculs (see ReleaseNotes for amiraMol).

* Starting in Q3/2001 a separate option for resolution enhancement
  by computational deconvolution will be available (amiraDeconv)

--------------------------------
Changes specific to amiraDev 2.3
--------------------------------

* New data type HxTime and associated port/interface HxPortTime

* New API for defining time-out methods/functions for animation tasks

* Two new example modules in the demo package illustrating the new concepts
  (MyDynamicColormap, MyAnimateColormap).

* Support for multiple result objects in compute modules (HxCompModule).

* Parent objects are now being notified if down-stream modules
  connect or disconnect (HxObject).

* New evaluator interface allowing the user to define higher-order
  interpolation methods for 3D data fields

