This description of the kinemage format, which is taken from Mage's internal help, is very terse and may be incomplete in places. A more complete treatment in included in the KiNG documentation as format-kinemage.pdf, which covers all of the core functionality that Mage and KiNG share. For more information on the format, email Dr. David Richardson (dcr@kinemage.biochem.duke.edu) or Ian Davis (iwd@duke.edu).


Kinemage format from Mage's help:

Kinemage format keywords
Group,Subgroup,List parameters
Hypertext help


keywords ^TOP^


keywords start with @
alternates sometimes shown, but preferred form is listed first
@keyword {text characters} are those enclosed in {}
See 'Properties' listing for object keyword parameters and point attributes
--------text section------
@ of a real keyword must be first character of a new line
keywords here are set in by a space so this text can be read in Mage
@text starts text section
@mage #.## MAGE version (can come before @text),
only keyword recognized WITHIN text section
@kinemage # ESSENTIAL keyword to end text and start kinemage input
--------------------------
--------kinemage input----
# indicates an integer needed, #.## a floating point number.
@start control for reading from a sustained active pipe: start a frame
recognized by pipe handler code
@frame # frame number of image from a sustained active pipe, override
@finish control for reading from a sustained active pipe: finish a frame
@done control for reading from a sustained active pipe, close pipe

@mage #.##
@prekin #.##
@caption --->chars to caption until next recognized keyword---
@text --->any text appended until next recognized keyword (5_75+)

---MAGE object hierarchy: group, subgroup, list, (sets of points) points
points can be in connected line sets, or specify triangles, spheres, etc.
@group {name} [parameters... all on one line...]
@subgroup {name} [parameters... all on one line...] (@set)
@____list {name} [parameters... all on one line...]
some type of list is ESSENTIAL for a kinemage
@vectorlist (@vector)
@labellist (@label)
@wordlist (@word)
@dotlist (@dot)
@balllist (@ball)
@spherelist (@sphere)
@trianglelist (@triangle)
@ribbonlist (@ribbon)
@arrowlist (@arrow)
@marklist (@mark)
@ringlist (@ring)
@fanlist (@fan)

---MAGE points---follow @____list line on the next line
{pointID} [attributes... separated by spaces, commas, new-lines, etc.] x y z
--trailing triple: x,y,z defines scope of a point, x,y,z only required thing
----table cells only: 'tablecell' or 'noxyz' can stand for triple
Generally, list type determines meaning of all its points,
but point attributes can force different meanings within a list
for advanced, special purpose, complicated kinemages.

@kinemage # ends this kinemage input
@noscale
@scale #.##
@compare side-by-side of sequential animate groups, overrides stereo
stereo is reader's choice: menu and keyboard s key
@stereoangle #.## + for wall-eye, - for cross-eye, also under menu control
+ vs - toggled by keyboard c key
@onewidth default is multiwidth, also menu control
@thinline
@perspective
@plotonly
@flat @xytranslation
@pickcenter
@zclipoff
@whitebackground (@whiteback) (@whitebkg)
@viewid {string} @1viewid {string}
@2viewid {string}
...
@##viewid {string}
@zoom #.## @1zoom #.##
@2zoom #.##
...
@##zoom #.##
@span #.## @1span #.##
@2span #.##
...
@##span #.##
@center #.## #.## #.## @1center #.## #.## #.##
@2center #.## #.## #.##
...
@##center #.## #.## #.##
@matrix #.## #.## #.## #.## #.## #.## #.## #.## #.## @1matrix ...
@2matrix #.## #.## #.## #.## #.## #.## #.## #.## #.##
...
@##matrix #.## #.## #.## #.## #.## #.## #.## #.## #.##
@zslab # @1zslab # @zclip # @1zclip #
@2zslab # @2zclip #
... ...
@##zslab # @##zclip #
@ztran # @1ztran #
@2ztran #
...
@##ztran #

@localrotation #.## #.## #.## #.## #.## #.## #.## #.## #.##
a.k.a: @localrotat ... @localmatrix ...
@endlocalrotation @endlocalrot @endlocalmatrix
@localprecenter #.## #.## #.## @localcenter ... applied before matrix
@localpostcenter #.## #.## #.## applied after matrix
@endlocalcenter @endlocalcen @endlocalprecen @endlocalpostcen

@gnomon #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.##
place after the @group... line: to belong to that group
points on 3 axes and center (ok if each on separate line)
used by Docking routines to track change to a mobile group
MAGE will add to existing gnomon info or create anew if needed

@fontsizeinfo # @fontsizeinfo #
@fontsizelabels # @fontsizelabel #
@fontsizewords # @fontsizeword #
@tablefontsize # @fontsizetable #
@tableblackbkg black background (and blk bkg palette) for table
@tablewrap # number of columns across before wrap line below
@tablewrap auto-wrap first implemented in Java Mage
@tablewrapdecades auto-wrap # columns rounded down to 10's
@tablecolscale #.## scale calculated column width
@tablemarkradius #.## square marker radius for table selected graphics points
@tablefancore #.## inner radius of table value fan on graphics point
@tablefanradius #.## outer radius of table fan at a graphics point,
this is multiplied by point radius to represent the cell value

@beginselect keyword starts selection range, re: bondrot selection
@endselect keyword ends selection range, re: bondrot selection

(@beginemphasis prototype use only: starts selected range of emphasis)
(@endemphasis prototype use only: ends selected range of emphasis)

@listcolordominant @listcolordom usually point color is dominant: key 'l'
@lens #.## parameter of lens radius for lists marked "lens": key 'e'

@minutes #.## timed test of #.## minutes, results automatically written.
@drawline enables draw new function only for lines between points
@drawlabel enables draw new function only for labels (=pointID) at points
@drawball enables draw new function only for balls at points
(lines, labels, balls are inclusive! See list params answer & result: )
(scoring done only on answerlist type: limited to one type as of Sept 02)
@drawnew enables all draw new functions, useful for practice, etc.
(answer list without @minutes allows user to see scored result)
KINEMAGE menu items enabled to allow users to score and proceed in tests
@nosavealert NOT warn user about new drawings before doing next kinemage
@bigfonts sets toggle (w key) ON
@shortline #.## absolute amount to shorten each end of a new draw line

@comment {xxx yy z} character string just transfered unused to output
@command {xxx yy z} character string to be used for remote update cmd
@control creates a control button Lcontrol, which toggles Lcontrolon
@title {arbitrary kinemage title}
@copyright {date and author(s) }
@mapfile {filename.xmap} optional actual name to use for kin3Dcont
must be before any @group... line to apply to whole kinemage
@pdbfile {filename.pdb} optional actual name to use for prekin or probe
must be before any @group... line to apply to whole kinemage
@grouppdbfile {filename.pdb} specific group pdb to use for prekin or probe
must follow @group... line to apply to that group

--- masters ---
@colorset {name} color unique name and standard color as char strings
usage: @____list {listname} color= {name} ... anywhere in kinemage

@master {name} * forces named master buttons in inputed order
where * is one or more attributes optionally following {name}
"indent" "space" "on" "off" on off particular for pointmaster
@pointmaster 'C' {name} character 'C' associated with master= {name}
usage: {ptID} 'C' #.## #.## #.##

--- aspects ---
@1aspect {name-of-1st} (necessary to define for point aspect colors)
@2aspect {name-of-2nd}
...
@26aspect {name-of-26th}
points can have up to 16 color-codes in parentheses (ABC...)
positions invoked as the order of the numbers # of @#aspect {name}
but each position can have any one of the 26 capital letter color codes
codes in MAGE-HELP/Make kinemage: Internally generated palette kinemage. , Use "]" and "[" keys to cycle through asp