Personal tools
You are here: Home / cmgui / Wiki / Peters notes
Log in

Forgot your password?

Peters notes

Useful tips from Peter

Tracker items

I am now using the new bugzilla tracker.

When using the tracker revision numbers should be used. see Cmgui Development Process for full details of what should be down.

It is possible to get tracker items to link automatically to svn revisions. Just write the word revision followed by the revision number prefixed with a C. eg svn revision C1234 would link to subversion revision 1234 of a change made to cmiss source.

Things To Do

The use of this list will be deprecated. Instead I am moving to use a piece of task management software called Things, which is available for max os/x (and iphone).

The tasks on this todo list will be gradually removed and migrated to my Things. I still intend to update what has been done.


  • Write explanation of coordinate system for digitise viewer in zinc digitiser (or change to be more understandable)
  • Develop Texture Coordinates Explained wiki page
  • Write a guide to Writing new computed fields for cmgui
  • Add instructions to building cmgui from source for itk without scp
  • Write more documentation about the zinc database file (format, how it is used etc).
  • Detailed explanation on Using the compose field applied to sampling textures, with pictures

Cmgui development

  • Validate cmgui itk filters
  • Fix memory leak caused by adding all to an egroup
  • Display nodes, even if field label is not present
  • Add itk metrics into cmgui (for Angela). May need registration instead?
  • Add itk registration to cmgui (for Angela, Poul, Marty)
  • See if IGES files can be some how read into cmgui (for Kumar)

Cmgui examples

  • Automate index_thumbs.html generation so that it is part of the overnight job. Create thumbs for each example? Smaller file sizes are produced if generated from scratch, much quicker to use convert though.
  • Add filtering to cmgui isoline example a/isolines
  • Add masking code to 3D segmentation example
  • Compose field cmgui example (moving node in mesh picking up on field value)

Cmgui support

  • Work on comfile to read in diffusion tensor MRI and visualise them (brain project and also for Ehsan)
  • See if monochrome head sketches can be automatically segmented to get muscle tissue (for Kumar)
  • Expand Cmgui File Formats page

Zinc development

  • Fix zinc to handle input files that have carriage returns (partially done, need to test)
  • Work on mac version of zinc
  • Get windows debug executable built
  • Set up zinc windows build environment on bioeng128 (replacement for bioeng126)
  • Build zinc for firefox 3
  • package zinc app for ff2 and ff3 (for submission to
  • Add in progress meter for reading in of data files

Zinc Digitiser

  • Check with digitiser users to see if they have ideas for future improvements to the digitiser
  • Isoline node generation for filtered images in the zinc digitiser
  • Improve the interface for isoline node generation from images in the zinc digitiser
  • Add level curve segmentation into the zinc digitiser
  • Improve seed point segmentation interface (waiting on per scene viewer node tools)
  • Automate node generation along a line between two defined end points

Other Zinc applications

  • Migrate existing zinc applications to new structure
  • Make signed versions available online
  • Update examples which mention mozCmgui to refer to zinc instead. Ensure they work with the latest version of Zinc.


  • Learn more about the architecture of cmgui and associated technologies (eg open GL).
  • Get valgrind running without crashing my machine
  • Look through outstanding tracker issues I have submitted and see which can be resolved
  • Look at installing eclipse to use as an IDE

Things I'm currently working on

  • Changing the image processing fields in cmgui to use the new creation and cast routines
  • Getting the Zinc image processing dialogues to work again

Things I've done recently

  • Set up my build environment for cmgui, firefox and zinc on my macbook pro (building under a virtualised ubuntu). Updated the wiki pages for these builds.
  • Created zinc apps for the first 5 examples
  • Written script to generate basic zinc apps for the cmgui examples
  • Standardized zinc application structure
  • Investigated floating scene viewer problem in zinc install page, suggest we work around it
  • Digitiser now raises alert if the group file names are not loaded from the settings file
  • Updated ecg_lab zinc application to run with latest zinc version (required major rewrite to place perl flow logic into javascript)
  • Signed zinc and associate applications. Tested they all work.
  • Changed zinc to handle jar urls (required to deal with signed jars)
  • Fixed save nodes/export nodes from zinc on windows (for Jason) probably an issue with spaces
  • Tested code which reads in and writes database files (especially for win32 version with dirs containing space names)
  • Standardized the url and path behaviour for file paths in the xml settings file
  • Added checkbox to digitiser which enables display of only one digitise group (for Sarah and others)
  • Updated the cmgui examples so that all comfiles explicitly specify the file extension for every file read/written
  • Fixed inconsistency with how file suffixes are appended in cmgui (default behaviour is not to append required suffix if ommitted, including when there is a dot in the path name)
  • Documented how to use a different step size for the slice set image sequence, by configuring xml settings file.
  • Fixed the zinc eye example so that if the display size is too small scrollbars appear (tracker issue 555).
  • Fixed the emoter example so that it can be placed in a signed jar and still run. Required renaming files (tracker issue 563).
  • Got a netscape code-signing certificate to sign zinc applications. See Code Signing
  • Figured out how to embed 3d volume textures within a mesh and sample at a slice for exporting (for Angela)
  • Got my win32 version of zinc building on vmware again
  • Updated the wiki instructions for building zinc for windows
  • Changed cmgui to read in files that have carriage returns
  • Worked out how to visualise a velocity vector at a node which is moving through a mesh which includes a flow velocity field (for Ehsan).
  • Created cmgui example index file with thumb nail images
  • Generated screen shot images for every cmgui example.
  • Updated the zinc digitiser and cmgui so that image files with unusual extensions can be read in by specifying the file format.
  • Created a perl script for Harvey that does direct conversion from tec to exnode and exelem (without going through cm). It uses tet elements.
  • Showed Nacho cm, cmgui and walked him through setting up a build environment
  • Helped Harvey to generate cmgui exnode and exelem files from tec format for visualising a tetrahedral mesh and its cutting plane. Conversion was done by going from tecplot format to ipnode and ipelem, followed by using cm to export exnode and exelem files.
  • Wrote code to reconstruct Natasha's lost zinc database file. Regenerated her data.
  • Learnt more about the example testing process and changed the script to generate stack traces for floating point exception errors instead of aborting
  • Debugged example a/segmentation and a/testing/image_processing_2D (Failing fpe checks on irix) and fixed bugs with fast marching image filter
  • Explored masking with segmentation for better isosurface generation
  • Figured out the compose field for exporting evaluated slice textures from deformed breast images
  • Reviewed Harvey's Cerebral artery segmentation paper
  • Added Shane's workaround for forward/back button zinc crash to all the zinc applications
  • Fixed rescale intensity filter to work on doubles
  • Fixed tmpnam vs mkstemp problem on the perl interpreter
  • Figured out how to build the perl interpreter and added instructions on the wiki Building the perl interpreter libraries
  • Fixed tmpnam vs mkstemp problem on cmgui
  • Wrote help for fast marching filter
  • Tested latest release of zinc (found problems with ATI graphics card and ubuntu software graphics)
  • Updated connected threshold filter seed points to use parameters consistent with the fast marching image filter
  • Added erode and dilate image filters into cmgui
  • Added more tests to the image_processing_2D test example, so that all image processing filters are now tested
  • Tested a/segmentation_3d on all platforms
  • Cleared out old mozCmgui pages from wiki
  • Written an example showing how to use 3d segmentation in cmgui
  • Written an example using segmentation in cmgui (fast marching and connected threshold filter) a/segmentation
  • Written help for constant and matrix_multiply fields
  • Tested 3d segmentation
  • Extended backup shell script to backup work at uni and home
  • Added itk based level curve segmentation into cmgui (fastmarching level set algorithm).
  • Fixed memory leaks in basis_derivative field plus corrected the routines to list the field and get the command string.
  • Updated snake and create_slices example html to include images
  • Investigated using OsiriX for visualisation
  • Fixed bug with cached string fields returning the same value for all components.
  • Added a curvature example. See example a/curvature
  • Written an explantion of Node, Line and Element numbering in exelem files
  • Wrote a wiki page on the Cmgui nightly build
  • Created an example for fitting a 2d bicubic hermited surface mesh to data ponts on the surface of a truncated cone. See example 2/21/21m
  • Fixed annoying bug with motif version of cmgui loading up a tiny command window. See Coding Motif for some lessons learnt.
  • Added a button to the digitiser to swap the digitise slice and extra slice over
  • Added help messages to the itk image filters in cmgui (using the option table)
  • Released a new version of Zinc and the digitiser incorporating the filter previews. See How to release software for some lessons learnt.
  • Got win32 version of Zinc building on my machine using VMware player. See Using VMware to build ZINC and VMware tips
  • Added a dialog to zinc for setting the canny edge detection image filter parameters
  • Extended the canny edge detection image filter in cmgui to allow all parameters to be set
  • Added the a/transform_coordinates example
  • Added more faqs to the zinc digitiser help page
  • Added a preview window to the filter settings dialogs (for the zinc digitiser)
  • Written wiki pages on building zinc
  • Written wiki page on installing and using cmissmake
  • Updated wiki page on building Building Cmgui from source
  • Updated wiki page on Building cmgui on win32
  • Added the following itk filters into cmgui: threshold image filter, connected threshold image filter
  • Updated the following filters from Harvey Ho to work in cmgui: derivative image filter, curvature anisotropic image filter, discrete gaussian image filter
  • Added xpcom components for the follwing filters into zinc: threshold image filter, connected threshold image filter, discrete gaussian image filter, grayscale filter
  • Added framework for adding filter pipelines to the zinc digitiser
  • Written wiki page on Adding Filters To Zinc
  • Written wiki page on Writing XPCOM components for zinc
  • Written wiki page on Developing GUIs for zinc applications
  • Added the following pipelines into the zinc digitiser: threshold, edge detection, segmentation, discrete gaussian
  • Added settings dialogs into zinc to update filter settings for the following filters:
  • Written help files for all the settings dialogs
  • Added support for non axially aligned image slice sets into the zinc digitiser
  • Added an example of the use of non axially aligned slices
  • Updated the digitiser example to use the new zinc plugin and zinc digitiser
  • Written a comprehensive help page for the zinc digitiser