Child pages
  • z_*OBSOLETE* Recent Changes and DOWNLOADS
Skip to end of metadata
Go to start of metadata



July 2016

June 2016

May 2016

December 2015

November 2015

  • 11/19
    • New version of the XMALab (1.2.19)  Mac and Windows

    • New version of the XMALab (1.2.18)  Mac and Windows

    • New version of the XMALab (1.2.17)  Mac and Windows

October 2015

  • 10/07
    • New version of the XMALab (1.2.16)  Mac and Windows

September 2015

August 2015

  • 08/28
    • New version of the XMALab (1.2.14)  Mac and Windows
  • 08/21
    • New version of the XMALab (1.2.13)  Mac and Windows
  • 08/20
    • New version of the XMALab (1.2.12)  Mac and Windows

July 2015

  • 07/24
    • New version of the XMALab (1.2.11)  Mac and Windows
  • 07/17
    • New version of the XMALab (1.2.10)  Mac and Windows

June 2015

  • 06/26
    • New version of the XMALab (1.2.9)  Mac and Windows
  • 06/01
    • New version of the XMALab (1.2.8)  Mac and Windows
  • 06/01
    • New version of the XMALab (1.2.7)  Mac and Windows

May 2015

  • 05/08
    • New version of the XMALab (1.2.6)  Mac and Windows
  • 05/06
    • New version of the XMALab (1.2.5)  Mac and Windows

March 2015

  • 03/25
    • New version of the XMALab (1.2.4)  Mac and Windows
  • 03/017
    • New version of the XMALab (1.2.3)  Mac and Windows
  • 03/13
    • New version of the XMALab (1.2.2)  Mac and Windows
  • 03/12
    • New version of the XMALab (1.2.1) with support for avi and cine movies Mac and Windows
  • 03/05
    • New version of the XMALab (1.2.0)  Mac and Windows

December 2014

  • 12/03

October 2014

June 2014

May 2014

February 2014

  • 02/23
  • 02/08
  • 02/02
    • AutoScoper page: Added link to upper extremity (radius, ulna and 3rd metacarpal) example data set and tutorial instructions
    • AutoScoper page: Added link to XROMM AutoScoper User Group

January 2014

December 2013

March 2013

  • 03/13
    • New version of XrayProject 2.2.3 (similar to 2.2.2, but some bugs fixed). Updated aviread/mmreader to VideoReader. If you are using versions of Matlab newer than 2011a, you will need XrayProject-2.2.3 Download is
  • 03/03
    • (Warning; buggy for cine movies. Use 2.2.3 instead). New version of XrayProject 2.2.2. Updated aviread/mmreader to VideoReader. If you are using versions of Matlab newer than 2011a, you will need XrayProject-2.2.2 Download is

June 2012

May 2012

July 2011

June 2011

February 2011

  • 02/14
    • KNOWN PROBLEM: In rigidBody.m, a gap in digitization followed by a single digitized frame, followed by another gap sometimes causes misalignments. Similarly, when working with four markers on a bone (e.g., markers 7-8-9-10), when the first marker (e.g., marker 7) becomes out of range of imaging or is not digitized, we cannot track (in Maya) for a while although we have 3 points. Then, when the first marker (e.g., marker 7) returns, the bone is misaligned. However, it is possible to track with non-first markers missing (e.g., markers 7-9-10, markers 7-8-10, or markers 7-8-9).
  • 02/02
    • XrayProject version 2.2 scripts support video input from files with .tif extension that contain more than one image frame. Such files can be saved using the phantom software (8,24 tif option). Collections of single tif images can be combined to create such files using the script stacktif.m.
    • When multiple files are selected, applyUndistort determines which jpg and tif files have names with suffixes of dot followed by numeral and treats the files with sequential numbers and same prefix as frames of a stack. For example, if four single-image files named pig1.003.tif, pig1.004.tif, bird3.jpg, bird6.002.jpg, and multiple images files named foot.tif and hand.avi are selected, applyUndistort will examine the files and report the starting files for five sequences:
      pig1.003.tif – 2 frames
      bird3.jpg – 1 frame
      bird6.002.jpg – 1 frame
      Next, applyUndistort will process the first sequence, then loop back and process the second sequence, etc. For each sequence, the user will be prompted for "Output Type and Range".
      In DLTdv3Brown (Digitize), the "Pick movie file" dialog permits one file to be selected for each movie. If the file is a tif or jpg with filename that ends with a dot followed by a number, the script treats the named file as the first of a stack. Subsequent frames are assumed to have names with suffixes that are increments of the first name. For example, if the file name pig.0008.tif is selected, pig.0008.tif is the first frame, and, the script will look for subsequent frames, pig.0009.tif, pig.0010.tif,...etc., until it fails to find a file with the expected name and assumes the end of the sequence was reached. If the folder also contains earlier images, e.g., pig.0007.tif, these will be ignored.

January 2011

  • 01/25
    • XrayProject version 2.1.9 scripts support multifile input selection and input of single or stacked tif or jpg file(s) to UndCal, UndistortVideo (applyUndistort), and Digitize (DLTdv3Brown). Download is

November 2010

October 2010

  • 10/28
    • XrayProject version 2.1.8 fixes the potential brightness variation of version 2.1.7. Version 2.1.8 finds the maximum pixel value for the entire movie, then scales each frame so the maximum value for the movie is mapped to 255 (i.e., the maximum that can be represented in 8-bits). Code for other possible scaling methods and bit-depths is commented out in this version. Download is
      Implementation details: Because undistortion can increase the number of bits required for a pixel, a temporary file is used to hold an unscaled high-resolution version of the entire movie. The file is named scratch_tmp and placed in the XrayProject 2.1.8 directory. If a file named scratch_tmp already exists, it will be overwritten. After the undistortion pass is completed, the temporary file is read and each frame is scaled and written to the permanent output file or stack of files. Finally, the temporary file is deleted. The user may edit the Matlab script to change the temporary file name. The script also has lines, commented out, that can be used to cause Matlab to open a file with a name that is likely, but not guaranteed, to be unique. However, it may be bothersome to try to locate a large, randomly-named, temporary file if Matlab crashes before the file is deleted.
      Four warning messages are suppressed by "warning('off'..." calls in the script XrayProject.m.
      Matlab defaults are used for the frame rate in calls to avifile. This change was made because specifying the frame rate (obtained from the cine file headers) did not seem to work correctly in some earlier versions of Matlab. While the default frame rate is not correct either, it does not seem to cause as many problems when playing the movie with some media players. In a future version of XrayProject, aviread calls will need to be replaced by mmreader calls because Mathworks is phasing out aviread and aviinfo. We will endeavor to fix the frame rate problem when converting to use mmreader.

September 2010

  • 9/30
    • XrayProject version 2.1.7 accepts any cine input for Undistort and UndCal steps and UndistortVideo. It has been tested with 8- and 12-bit cine grid, cube, and movie files, jpg, tif, and avi files. This version can process cine of any bit-depth (8-, 10-, 12-, 14-, or 16-bits) but outputs only 8-bit tif format. Image data are scaled to 8-bits just before it is written out. Download is
    • WARNING: Image scaling in XrayProject version 2.1.7 may cause brightness to vary between frames in an undistorted sequence. We recommend using XrayProject version 2.1.6 for 8-bit files until this problem is resolved.

August 2010

  • 8/31
    • XrayProject version 2.1.6 fixes layout problems that were introduced in version 2.1.5 on the Mac when the XrayProject window was made smaller to fit on 600 by 800 screens. When the XrayProject window is loaded, the font is set to Tadoma if a PC version of Matlab. If not running a PC version of Matlab, then the font is set to Arial Narrow and positions of objects (based on font character sizes) are adjusted. This version includes the reordered workflow for rigidBody.m which was added in version 2.1.5. Download is
  • 8/16
    • XrayProject version 2.1.5 has small changes to the user-interface. Workflow is reordered in rigidBody.m and the XrayProject window was made smaller to fit on 600 by 800 pixel screens.
  • 8/02
    • XROMM Maya tools 2.0.7. New pan and scan tool for rotoscoping and helcial axis import tools.
    • Helical axis scripts for Matlab. See instruction page on helical axes before using.

July 2010

  • 7/20
    • A flow diagram for XrayProject is available as a one-page pdf. Input files, which must be created or obtained beforehand, are represented by yellow boxes. Output files, which are produced by XrayProject functions, are blue boxes. Functions are white boxes. Download is XrayProject file flow diagram.pdf.

June 2010

  • 06/04
    • XrayProject 2.1.4 version has same functionality as version 2.1.3, but does not require the Matlab Mapping Toolbox. Undistorter.m, DLTcalibration5x.m, and mayacam.m are changed to eliminate calls to the function rad2deg. Three Matlab Toolboxes are still required: Image Processing Toolbox (used in many places), Signal Processing Toolbox (used only for "filterXYZ" button functionality), and the Symbolic Toolbox (used for "Calibrate 3-D" button functionality and the stand-alone script mayacam.m). Download is XrayProject-2.1.4
  • 06/03

May 2010

  • 5/27
    • XrayProject 2.1.3 version has changes to RigidBody.m and svdRigid.m to allow "Calculate Rigid Body Motion" to work even if the files contain partially digitized markers. Download is XrayProject-2.1.3
  • 5/21
    • XrayProject 2.1.2 version fixes bug that caused 8-bit cines to be mistakenly stored as 32-bit values in some parts of XrayProject.Download is XrayProject-2.1.2
  • 5/10
    • XrayProject 2.1.1 version fixes failure to process TIF calibration cube files. Download is XrayProject-2.1.1

April 2010

  • 4/26
    • XrayProject 2.1.0 version changes
      --Download is XrayProject-2.1.0
      --changes to applyUndistort.m and Undistorter.m fix cases where image height and image width were reversed for jpg and tif grid images. This fix is vital when working with non-square images.
      --the Undistorter.m function calimread has been separated from Undistorter.m and the function returns the image header information.
      --other changes may restore backward compatibility with Matlab 7.4 (R2007a). These have not been tested with R2007a.

March 2010

  • 03/22
    • XrayProject 2.0.9 version has small change to cineRead.m to support reading past the 2GB file boundary in CINE files. Download is XrayProject-2.0.9
  • 03/01
    • Fixed minor bug in XROMM shelf header and removed line -commandRepeatable 1 from shelf
    • Download is XROMM_Maya_Tools_2.0.3
  • 03/01
    • XrayProject 2.0.8 version changes:
      --Download is XrayProject-2.0.8
      --Undistorter.m and Undistorter.fig replace UndistortAuto6x.m.
      --Undistorter Size threshold slider may be rescaled by pressing "2X" button or "1/2X" button.
      --cineInfo and cineRead are separate m-files. applyUndistort.m, DLTdv3Brown.m (mediaRead), and Undistorter.m (calimread) call cineInfo and cineRead.
      --cineInfo and cineRead use more cine file header information to support more cine file formats, including 12-bit cine support.
      --bug fixes to support non-square cine files.
      --applyUndistort.m (UndCal and UndistortVideo) with cine input supports avi output.
      --applyUndistort.m (UndCal and UndistortVideo) no longer silently overwrites existing files with avi or cine input to stack of tif or stack of jpg output. Warns and creates unique filenames instead.
      --new feature in applyUndistort.m (UndCal and UndistortVideo): movie conversion without (re)processing to remove distortion. On "Cancel" at prompt for UNDTFORM file, a dialog prompts to choose "cancel" or choose "continue" to save movie in different format.
      --additional input checks and error recovery in applyUndistort.m (UndCal and UndistortVideo).

February 2010

December 2009

  • 12/11
    • New Maya Tools, version 2.0.2
      -- Create anatomical axes with or without the positioning locators. After selecting the jAx shelf tool, or typing jointAxesDual on the MEL command line, there are two buttons: create Axes with Locators or Create Axes without Locators.
      -- There is a new script, changeRotKeepAnim2.mel, and Shelf tool CRO. The change rotation order script asks for you to put in the rotation order you want for calculating the output from a joint coordinate system. Due to Maya conventions, enter zyx for what would usually be called xyz order. Default is zyx.
      -- Download is XROMM_Maya_Tools_2.0.2

November 2009

  • 11/18
    • XrayProject version 2.0.7 changes:
      --Autotrack mode has four additional choices: retreat, reverse semi-automatic, reverse automatic, and reverse multi. The pull-down menu must be used to select one of these reverse options. After a reverse-mode option is selected, the "x" key and "X" key will behave as they do for the forward options, but in reverse. The forward options and forward-mode behavior of "x" and "X" have not changed. In reverse semi-automatic mode, the "b" key behaves like the "f" key in semi-automatic mode, but in reverse.
      --Load Data requires only the *xypts.csv file. If *xyzpts.csv or *xyzres.csv are missing from the directory, user is prompted to allow XrayProject to recalculate these values or to cancel. Recalculation can take a few minutes. If cancel is selected, program will reinitialize any xypts that were read, but it will still attempt to read an offsets file. If offsets file is missing, all offsets will be set to zero.
      --filterXYZ button on XrayProject window is now in the logical work-flow location.
      --Download is XrayProject-2.0.7
  • 11/02
    • XrayProject version 2.0.6 changes:
      --tracks the last directory used. All file open and file save dialogs default to the last directory used.
      --butterBatch (filterXYZ) control window is resizable. Multiselect feature is working again.
      --butterBatch (filterXYZ) plots are labelled, and all files are plotted (not just the last).
      --butterBatch (filterXYZ) no longer silently writes over existing files. "_#" (underscore followed by a numeral) is appended to the filename to create a filename that is not in use, and a message appears in the console window.
      --XrayProject version number is displayed on GUI window.
      --added checks for some erroneous inputs. Instead of Matlab error messages, XrayProject messages appear and user can recover.
      Download is XrayProject-2.0.6

October 2009

  • 10/01
    • XrayProject version 2.0.5 changes:
    • new cancel buttons, additional .cine file support, and other GUI changes are in XrayProject version 2.0.5. Download is XrayProject-2.0.5
    • it is possible to view video files without UNDTFORM or DLT files by pressing Cancel and No when prompted for these files. This is useful for viewing .cine files in Mac OS.

August 2009

July 2009

  • 07/30
    • updates to Maya and XrayProject instruction pages; added images of new dialog boxes
  • 07/29
    • Resized and repositioned XrayProject windows for better appearance on Mac platform. Added a "Cancel" button to stop distortion correction of frames. Saves frames done so far, but does not change the file name (Note that default file name has the original range of frames. Users may wish to manually rename the file after using the "Cancel" button.). Download is XrayProject-2.0.4.
  • 07/27
    • added SVD residuals file to output from rigidBody.m. Fixed file type default for xzypts file requested by rigidBody.m. Download is XrayProject-2.0.3
  • 07/15
    • fixed XrayProject DLTdv3Brown 'x' feature on Mac. 'x' stops autotracking. Download is XrayProject-2.0.2
  • 07/07

June 2009

  • 06/23
    • fixed header of XrayProject markerDistances.csv file. Download is XrayProject-2.0.1 Note: this upgrade requires MATLAB r2008b or higher.
  • 06/18
    • bug fix in XROMM_Maya_Tools_2_0_1; the shelf file shelf_XROMM_tools_2_0_1 now has the current and correct name of the shelf in the header.
  • 06/09
    • corrected typos on XrayProject-2.0.0 GUI. XrayProject-2.0.0 Note: requires MATLAB r2007b or MATLAB r2008b
  • 06/08
    • changed name of shelf_XROMM_tools.2.0.0.mel to shelf_XROMM_tools_2_0_0.mel. Maya does not like periods (or dashes) in mel script names. Changed folder name to agree.
    • Added note on home page about new workflow for undistorting video sequences - use XrayProject window. We are no longer updating VideoCorrect or FluoroCorrect MATLAB programs. Undistorting a video is a two-step process, with both steps accessed from the new XrayProject (version 2 or higher) window: 1. Create an *UNDTFORM file and 2. Click Undistort Video in the X-rayProject window.
    • changed workflow on home page to seven steps instead of five steps; think makes the workflow more consistent with the XrayProject window for versions 2.0.0 and higher
  • 6/03
    • XROMM workflow through to calculation of rigid body motions from marker sets. Subsumes SVDRigidBodyMotion-2.0.0 and XrayProject-1.0.4 and VideoCorrection/FluoroCorrect. (see link at 06/09 for latest version)

May 2009

  • 5/26 Updated links on various wiki pages to newest software:
    • XrayProject-1.0.4. See list of changes and upgrades below (under 5/7).
    • SVDRigidBodyMotion-2.0.0
    • XROMM_Maya_Tools-2.0.0
  • 5/7
    • Upgrade Xrayproject to version XrayProject-1.0.4. Matlab GUIDE version of XrayProject.m; three buttons added to XrayProject.fig; uses Fluorocorrect versions of m-files called from DLTdv (i.e., FastDistortionCorrection.m and CreateLookupTable.m) instead of VideoCorrection-2.2.0 versions of these files; support for all frame sizes; corrections to four camera support; error recovery for some file dialogs and some default navigation to folders if the folders exist (see Filename and Folder Organization).
    • When MarkerA = MarkerB, Intermarker Distance plot value is -1 for frames where marker is not labelled (i.e., undigitized). markerDistances.csv file is larger because distances between marker and itself are saved. These values are NaN or 0. Both old and new files Load correctly.
    • "Save" removed from Check Distances figure because it was not needed and broken.
    • "Find marker centroid" checkbox is checked by default if required Matlab toolbox is available.
    • In Digitize, "Save File" dialog requests a prefix. If an existing file is selected, the existing file's prefix is used. When file already exists, user is asked if overwrite is okay.
    • Added Keypress features:
      • 'c' toggles "Find marker centroid" checkbox.
      • 'X' selects "multi" Autotrack mode.
      • 'F' jumps forward 50 frames.
      • 'B' jumps backward 50 frames.
      • 'n' adds a point.

March 2009

  • 3/7
    • added the Maya Mel script wsCoordinateAlongAxis.mel to the package (necessary helper script for xcamAngle.mel)
    • added instructions for using xcamAngle.mel to extract the angle between the two x-ray cameras from mayaCam files
    • added Maya instructions for Measuring XYZ Coordinates of a Point Over Time in Maya. This is useful, for example, if soft tissue markers have been implanted and their movement relative to a coordinate system defined by the bones is of interest.
    • reorganized the page Maya Magic: Creating and analyzing XROMM animations using MATLAB and Autodesk Maya, (aka Analyzing and Visualizing your XROMM Animations)

February 2009

  • 2/8
    • changed organization of front page to reflect overall marker-based XROMM workflow

November 2008

  • 11/12
    • Upgrade SVDRigidBodyMotion MATLAB scripts to version 1.0.1. Scripts for converting xyzpts marker data to rigid body motion. Latest update interpolates over gaps in data of less than 20 frames.
  • 11/10
    • Upgrade Xrayproject to version 1.0.3. Check Distances bug fix; now the s.d. is calculated correctly in the Check Distances window called from DLTdataViewer. The IntermarkerDistances.m script replaces NaNs with -1s. The s.d. calculation now omits the -1 values and gives a correct s.d. (in cm).
  • 11/5
    • Laser scanning protocol added 

October 2008

  • 10/30
    • XrayProject-1.0.2 update. Includes new 2-camera MATLAB workflow and automated merging of DLTcoefs
    • Updated MATLAB scrips for calculating rigid body motions from xyzpts added:
  • 10/23
    • Added this Recent Changes page!
  • 10/22
    • New method for calculating rigid body kinematics from XYZ coordinate data added (rigidBodyMotionFromMarkers.mat)
    • New MAYA MEL script added (impMatrix) to import the results from rigidBodyMotionFromMarkers
    • XROMM explanation added to front page and links renamed and reorganized

September 2008

  • New Amira instructions for making 3D bone models from CT scans
  • Instructions for digitizing using XrayProject substantially upgraded


  • No labels