Open Inventor Tools

From MerlinWiki
Jump to: navigation, search

Open Inventor Tools is a set of utilities for Open Inventor and VRML files. You may find some of them really cool.

Most of the utilities were released together with SGI Inventor and can be distributed under LGPL license. They were ported to compile with Coin and to work on many platforms including Windows.

The project is in the process of moving to


ivAddVP - converts geometry into the Vertex Property node
ivcat - like standard unix 'cat' utility
ivfix - optimizes scene graph for performance
ivgraph - prints out the scene graph structure
ivinfo - prints some information, especially content of each SoInfo node
ivnorm - generates normals for all SoIndexedFaceSets that are missing them
ivperf - meassures rendering performance of a given model
ivToInclude - generates the header files from inventor models
ivview - viewer for Inventor and vrml files
ivvrml - convertor between iv/vrml1/vrml2 files
longToInt32 - converts files using "long" types to "int32_t" types


Please, report bugs to pecivaWikiFun.png. Some known issues are at list of known issues.


ivAddVP, ivToInclude, ivcat, ivfix, ivinfo, ivnorm, ivperf, ivview, longToInt32: developed by SGI, license LGPL
ivvrml, ivgraph: develped by PCJohn, license public domain


ivAddVP.png The utility converts Inventor files (version 2.0 and following) into the Inventor files that use the Vertex Property node.

The discussion can be whether SoVertexProperty node gives more performance. The decision is on the user of the utility.

The detailed description of the behaviour of the utility can be found in its README.

Usage: ivAddVP [-bch] [-o outfile] [infile]
  -b : Output binary format (default ASCII)
  -o : Write output to [filename]
  -n : Keep unused normal vectors
  -c : Make copies of instanced nodes
  -h : This message (help)
 If given a filename of '-' or if not given
 any filenames, standard input will be read.


The utility behaves like unix 'cat'. It can be used to:

  • concatenate several files into one output file
  • convert between ACSII and binary Inventor format
Usage: ivcat [-bfth] [-o outfile] [infiles]
  -b : Output binary format (default ASCII)
  -o : Write output to [filename]
  -f : Expand File nodes
  -t : Expand Texture2 nodes
  -v : Verbose
  -h : This message (help)
 If not given any input file names or output file name
 is not specified, they detaults to stdin and stdout.


ivfix restructures Inventor scene graphs for improved rendering performance.

The utility is similar to ivquicken, but it should be even better in its job than ivquicken. However, ivquicken tries to preserve the overall structure of a scene graph, but ivfix does not bother with that.

The exhausting description can be found in its README.

Usage: ivfix [options] [infile] [outfile]
  -a     : Write out an ascii file.  Default is binary
  -d dir : Add 'dir' to the list of directories to search
  -f     : Produce independent faces rather than tri strips
  -h     : Print this message (help)
  -n     : Do not generate any normals
  -p     : Do not produce SoVertexProperty nodes for properties
  -t     : Do not generate any texture coordinates
  -m     : Use SoTransform instead of SoMatrixTransform
           (for better file readability)
  -v     : (Verbose) Display status info during processing
  -V     : (Very verbose) Display more detailed status info
 If no input or output file name is specified, stdin and stdout are used.


ivgraph prints out scene graph structure and some additional info.

Usage: ivgraph [-h] [infile]
  -v, --verbose   : Verbose error messages
  -h, --help      : This message (help)
 If input file name is not specified, stdin is used.


ivinfo prints out information on an Inventor data file, including:

  • whether data is ASCII or binary
  • number of root nodes
  • number of nodes under each root
  • contents of any SoInfo nodes found in the data
Usage: ivinfo [-h] [file]
  -h : Print this message (help)
 If no filename is given, standard input will be read.


This program attempts to find outward-facing normals for all the SoIndexedFaceSet nodesfound in an Inventor scene file that do not ALREADY have Normal or NormalBinding nodes. It then computes face normals for each face set, inserts them into the database, and writes the result.

More detailed information about how it works can be found in ivnorm's README.

Usage: ivnorm [options] [infile] [outfile]
  -c        Assume counter-clockwise faces
  -C        Assume clockwise faces
  -v        Find vertex normals
  -a angle  Use angle (in degrees) as crease angle
  -V        verbose trace
  -h        This message (help)
 If input or output file name is not specified,
 stdin and stdout are used.


ivperf.png ivperf reads in an Inventor scene graph and analyzes its rendering performance.

Its output can be graphically displayed in the form of a bar chart.

More details on meassuring can be found in ivperf's README.

Usage: ivperf [-b] [-f N] [-w X,Y] [infile]
  -b      display results as bar chart
  -f N    render N frames for each test (default 60)
  -w X,Y  make window size X by Y pixels (default 400x400)
 If no input file name is given, stdin is used.


ivToInclude takes the Inventor model and outputs standard-C file that can be included directly by your C/C++ project.

Typical usage is

ivToInclude foo <model.iv >foo.h

It will produce foo.h file containing:

const unsigned char foo[] = {

Unsigned char and "u" after each value is used for portability reasons.

You can include the file and make the models embeded in your executable, e.g. no external files.

Usage: ivToInclude [options] variableName < inputFile.iv
  -a : Output ascii
  -h : This message (help)
  variableName : The name of the variable in header file to create.


ivview reads an Inventor file (or files) and provides a simple interface to quickly view 3D data.

Windows note: Most of the functionality is of ivview is disabled (menu, etc.) since Motif compatible library is not present on Windows platform.

Usage: ivview [-hpw] [infiles]
  -h : Print this message (help) and exit
  -p : Enable performance meter
  -w : Use walk viewer (examiner viewer is default) - ignored because 
       Coin does not support SoWalkViewer yet
 If no input file name is given, stdin is used.


ivvrml is can be used for converting between following file formats:

  • Inventor ASCII
  • Inventor binary
  • VRML 1.0
  • VRML 2.0 / VRML97
Usage: ivvrml [options] [inputfile] [[-o] outputfile]
  -i, --iv-ascii  : Output Inventor ascii format
  -b, --iv-binary : Output Inventor binary format
  -1, --vrml-1    : Output VRML 1.0 format
  -2, --vrml-2    : Output VRML2/VRML97 format
  -o [filename]   : Write output to [filename]
  -v, --verbose   : Print messages during the process
  -h, --help      : This message (help)
 If input or output file name is not specified,
 stdin and stdout are used.


longToInt32 utility is a perl script, used to convert a list of files from using "long" types to "int32_t" types. For more details see its README.

For usage details, see comments in the script.

Inventor and Open Inventor are trademarks of Silicon Graphics, Inc.