Object file formats used for IMVU designs
Disclaimer: The following information has been obtained by examining samples of files, and has not been fully confirmed against the CAL3D file specification at http://home.gna.org/cal3d/
Most of the files that make up IMVU objects use formats based on the XML format, and are given extensions beginning with "X"
For most of these files there is a corresponding compressed format e.g. XMF <=> CMF. At the present time I understand that IMVU previewer will not import the compressed forms.
XML: A data file format resembling HTML. All data fields are enclosed in pairs of tags describing the data. The very first line contains a tag that states that the rest of the file is XML. Tags must either appear in pairs <TAG> ... </TAG> or solitary: <TAG />. In properly formed XML one root tag encloses the entire document. In the CAL3D file formats used by IMVU there is a solitary "header" tag in front of the document body, making it not strictly compliant and difficult to parse. Newer versions of the format appear to lack the header and may be considered well-formed. Another lesser deviation concerns mixed content tags, those that have attributes but enclose content e.g.
CAL3D puts these on one line whereas the "XML::Structured" Perl module splits them across three lines. The two forms are interchangeable but some weaker XML parsers may have problems processing a tag in an unexpected form, for example one Gamemaker parser handles single line and multi-line tags differently.
Note: I am seeing one instance where the presence of a comment line before a mesh header breaks an IMVU object. For this reason I would advise removing the comment.Lines in a text file end in two characters CR (Carriage return), LF (Line feed). These files are often misinterpreted by Unix or Linux systems as the CR is treated as part of the text.
Other text formats, less commonly seen:
CR only: This format was used on 8 bit home computers in the 1980s that either interpreted CR as "New Line" or inserted an automatic line feed character.
LF, CR: This was not a proper text format but often resulted from capturing the text output of a program on systems with automatic line feed.