ico - animate an icosahedron or other polyhedron
ico [-display display] [-geometry geometry] [-r] [-d pattern] [-i] [-dbl]
  [-faces] [-noedges] [-sleep n] [-obj object] [-colors color-list]
ico -objhelp
ico -version
Ico displays a wire-frame rotating polyhedron, with hidden lines removed,
  or a solid-fill polyhedron with hidden faces removed. There are a number of
  different polyhedra available; adding a new polyhedron to the program is quite
  simple.
  - -r
- Display on the root window instead of creating a new window.
- -d pattern
- Specify a bit pattern for drawing dashed lines for wire frames.
- -i
- Use inverted colors for wire frames.
- -dbl
- Use double buffering on the display. This works for either wire frame or
      solid fill drawings. For solid fill drawings, using this switch results in
      substantially smoother movement. Note that this requires twice as many bit
      planes as without double buffering. Since some colors are typically
      allocated by other programs, most eight-bit-plane displays will probably
      be limited to eight colors when using double buffering.
- -faces
- Draw filled faces instead of wire frames.
- -noedges
- Don't draw the wire frames. Typically used only when -faces is used.
- -sleep n
- Sleep n seconds between each move of the object.
- -obj object
- Specify what object to draw. If no object is specified, an icosahedron is
      drawn.
- -objhelp
- Print out a list of the available objects, along with information about
      each object.
- -colors color color ...
- Specify what colors should be used to draw the filled faces of the object.
      If less colors than faces are given, the colors are reused.
- -version
- Print program version information and exit.
Pressing "q" will close a window. If compiled with threads support,
  the program will stop only when all threads terminate. You can also close an
  animation window using the ICCCM delete message (depending on your
  window manager, you will have a decoration button or menu to send such
  message).
If you have the source to ico, it is very easy to add more polyhedra. Each
  polyhedron is defined in an include file by the name of objXXX.h, where XXX is
  something related to the name of the polyhedron. The format of the include
  file is defined in the file polyinfo.h. Look at the file objcube.h to see what
  the exact format of an objXXX.h file should be, then create your objXXX.h file
  in that format.After making the new objXXX.h file (or copying in a new one from
    elsewhere), simply do a 'make depend'. This will recreate the file
    allobjs.h, which lists all of the objXXX.h files. Doing a 'make' after this
    will rebuild ico with the new object information.
Pyramids and tetrahedrons with filled faces do not display correctly.
A separate color cell is allocated for each name in the -colors
    list, even when the same name may be specified twice. Color allocation fails
    in TrueColor displays and option -faces does not work well.