How to learn to use Cmgui

Most Cmgui users learn by copying examples that achieve what they need, but a little background information is needed to even get to that stage.

The Documentation section provides links to the formal documentation pages but lists a few specific pages in the order that beginning users should read them, either before or while starting to run Cmgui.

The Examples section provides links to the Cmgui example suite, and gives a suggested order of working through a handful of the examples to gain a basic understanding of how Cmgui works.

Download, Install and Run Cmgui

Follow the Download and Install instructions to get the latest Cmgui executable. Run it to bring up the command window, and start following the documentation.

Documentation

The Cmgui documentation pages provide both introductory guidance and specific detailed information about features. Be aware that some of the documentation is slightly out of date as it hasn’t been updated to Cmgui v3.0!

Suggested reading for new users:

  1. Cmgui introduction. This introduces the main windows and dialogs in Cmgui, and works through example a1.
  2. Cmgui command window. This describes how text commands are entered and output and history are viewed. Critically you
  3. Cmgui scene editor. Describes the dialog where you create and edit attributes of graphics which visualise the model. Note: Cmgui does not automatically create any graphics on loading a model: you must create them in the scene editor otherwise you won’t see anything!
  4. Cmgui graphics overview. Description of the graphics types and their attributes. Note: this page is out-of-date for Cmgui 3.0 as follows:
    • all point graphics types have been merged and differ by the domain type option
    • lines and cylinders have been merged and differ by the line shape type (LINE/CIRCLE_EXTRUSION) plus its size and scaling information set the diameter instead of the radius.
    • iso-surfaces and iso-lines are merged into contours, which differ by the domain type option.
  5. Cmgui graphics window. Guide to the controls for graphics windows where the visualisation of models are rendered.
  6. Cmgui fields. When you are ready this gives an explanation about what fields are and how finite element models are described.

Other Documentation

The later sections of the Introduction to OpenCMISS-Zinc v3.0 [Alt] document summarise the main objects in the OpenCMISS-Zinc library on which Cmgui is based, and may help with understanding.

Cmgui Examples

The Cmgui Examples Gallery gives a visual overview of examples demonstrating Cmgui features and techniques. If you have particular things you need to do, it is a good idea to look through the examples to see if something similar has been done before (and if not, try the [support](support page)).

The examples can be individually downloaded from .tar.gz archives on each page, which can be unzipped using 7-Zip on Windows, or ‘tar -xf NAME.tar.gz’ in Linux.

Suggested learning examples for new users:

These examples have very good comments throughout them, and some are structured as tutorials with interactive instructions for users. Open the main command file e.g. ‘example_a#.com’ or ‘examplename.com’ for each example, read the text and double-click commands to enter them (and do them in order without skipping as some depend on previous commands being run).

  1. a2 - decorating a cube. This loads a simple 1-element cube model and creates some graphics to visualise its faces, nodes, etc. The example also shows how to edit nodes.
  2. a3 - heart model. Visualise the muscle fibre architecture of the heart.
  3. a7 - geothermal field. Cmgui is just as usable for use outside biomedicine. This example from geophysics has some nice solution fields and shows how to create isosurfaces, and how to colour fields over graphics using a spectrum.
  4. ao - heart fibre streamlines. Use streamlines to visualise heart muscle fibres.
  5. segmentation 3d. Segment a vessel out of a 3-D image block using image processing filters.

Arbitrary shaders: using GLSL shaders to create reflective effect on material.