The IRIT modeling environment

Version 11.0


General Information

IRIT is a solid modeling environment that allows one to model basic, primitive based, models using Boolean operations as well as freeform surface's based models. Beyond its strong support for Bezier and Bspline curves and (trimmed) surfaces, IRIT has several unique features such as strong symbolic computation, support of trivariate spline volumes, multivariate spline functions and triangular patches. Numerous unique applications such as surface layout decomposition, metamorphosis of curves and surfaces, and artistic line art drawings of parameteric and implicit forms. A rich set of computational geometry tools for freeform curves and surface is offered, such as offsets, bisectors, convex hulls, diameters, kernels, and distance measures. The solid modeler is highly portable across different hardware platforms, including a whole variety of Unix machines and Windows PC.

The system is designed for simplicity and is geared toward research. As such, a graphical user interface (GUI) is not part of IRIT but is considered an extension package (See GuIrit). The modeling is performed using the main module/executable of the system which is called (surprise!) IRIT. A textual interface (or PUI for programmable user interface) is available which provides the interaction interface. An interpreter processes the user's command and executes them. This interpreter includes general mechanisms that are common in high level programming languages such as loops, conditional sentences, and functions. In addition, features that can be found in modern languages such as operator overloading and object oriented design are extensively used. This interpreter is best employed under the Emacs editor that forkes out IRIT as a sub process (available both for Unix and Windows' PC).

Version 11.0 of the IRIT solid modeling system contains tools that can aid in research and development in the areas of computer aided geometric design and computer graphics. Here is a list of the features that can be found:

  1. Full featured points/vectors/homogeneous matrices algebra by overloading the basic operators +,-,*,/,^.
  2. Polygonal based modeling. Constructors for basic primitives (box, cone, torus, etc.) are provided as well as low level constructors for direct polygonal model's construction. Boolean operations between polygonal models is also supported.
  3. Freeform curve and surface manipulation tools. Supported are polynomial and rational Bezier and piecewise polynomial/rational NURBs curves and surfaces. A large set of tools to manipulate freeform curves and surfaces is provided and includes (for both curves and surfaces):
    Low level Constructors (direct control points control).
    High Level Constructors (Sweep, Extrude, Boolean Sum, etc.).
    Merging and Profiling tools.
    Evaluation.
    Subdivision.
    Refinement.
    Degree Raising.
    Differentiation and Integration.
    Symbolic Computation (Difference, Sum, and Product).
    Polygonal/Polyline approximation.
    Composition.
    Offset.
    Bisector.
    Curvature Analysis.
    Convex Hull/Kernel/Diameter.
    Trimmed surfaces.
    Triangular patches.
    Trivariate volumes.
    Multivariate functions.
  4. Tools to compute the zero set of curves, the extreme points, the minimal or maximal distance from a curve to a point or a line, the inflection points and/or points of extreme curvature, and the intersection points of two curves are also available. Several different way to compute offset curves and offset surfaces are provided as well as computational schemes fo evolute curves, K-orthotomic curves, etc.
    The symbolic tools provided allow one to represent scalar and vector fields of differential properties of the curves and surfaces such as normals and curvature. The curve's inflection and extreme curvature detection tools, mentioned above, exploits these symbolic tool and are therefore robust. For surfaces, this subset includes tool to compute the Mean, the Gaussian, and an extremum bound on the principal curvatures.
    In addition, bisectors between a curve and a point, two 3-space curves, and between a surface and a point are all easily computable using these symbolic tools.

  5. Triangular patches support that includes evaluation, iso curves extraction, subdivision, differentiation etc.

  6. Trivariate Bspline and Bezier support that includes constructors, evaluation, iso-surface extraction, subdivision, differentiation, etc. This package also allows one to extract polygonal approximation to iso surfaces of trivariates using a variation of Marching cubes, as well as construct a line art artistic drawing of such an iso surface.

  7. Multivariate Bspline and Bezier support that includes constructors, evaluation, subdivision, differentiation, etc. This package also allows one to define rational constraints and solve them, getting solutions to problems such as bisectors of two surfaces in R^3, the Appolonious problem, accessibility, etc.

  8. In addition to the main module of IRIT, quite a few other tools are also provided:

    poly3d-h: A hidden line removal tool.
    irender: A scan conversion Z buffer rendering tool.
    illustrt: A line drawing illustration tool.
    aisoshad, lineshad, izebra: Three more line drawing illustration tool.
    xogldrvs/xgldrvs/xglmdrvs/xmtdrvs/x11drvs/wntdrvs/wntgdrvs/os2drvs/amidrvs: Display devices (and viewing programs at the same time) for Unix's Open GL and gl, gl/Motif, X11, X11/Motif, Window XP/2000/NT/Win98/Win95 (possibly with Open GL), OS2 2.x/3.x, and AMIGA. All these drivers support the display of animation using animation curves.
    irit2dxf/irit2hgl/irit2igs/irit2iv/irit2nff/irit2off/irit2plg/irit2pov/ irit2ps/irit2ray/irit2scn/irit2stl/irit2wrl/irit2xfg: Filters to convert data files created by IRIT to DXF, HP GL, IGES, SGI Inventor, NFF, OFF format, REND386, POVRAY, Postscript, Rayshade, SCN, STL, VRML, Xfig format.
    3ds2irit/dat2bin/dxf2irit/dat2irit: Filters to convert from 3DS data files, from/to binary IRIT .ibd files, from DXF format to IRIT .itd data files. dat2irit convex IRIT .itd data files to IRIT's solid modeling .irt scripts.
  9. The IRIT solid modeller is actively used in various research areas. Several examples includes (See also Images and Pictures - IRIT):

    Adaptive Isocurve Coverage. A coverage based on adaptive extraction of isocurves can be used for various purposes from toolpath for machining purposes to image rendering. This algorithm, that is exploiting symbolic computation, is implemented using the IRIT solid modeller and a tool named xgladap make use of the hardware of the SGI systems to provide real time rendering using adaptive isocurves.
    Surface Layout. A new fabrication scheme automatically computes an approximated layout of a free form surface, on the plane, so it can be cut from planar sheets (such as paper or fabric) and stitched together to form an approximation of the original surface. Tools to automatically compute the layout were implemented using IRIT.
    Morphing. Using refinement and degree raising, two tools that are available in this system, different surfaces can be brought to a common function space and be continuously morphed or transformed from one to the other. Again, a successful implementation exists in IRIT.
    Matching. The inter-correspondance between two freeform curves is of importance in various applications from modeling (ruled and blend surfaces), through graphics (morphing), to computation geometry (offset computation).
    Illustrt. Line drawings is a neglected area of computer graphics. Illustrt is a tool developed with the aid of IRIT, and now is part of IRIT, to automatically generate line drawings with special effects such as width/size and intensity depth cueing, Z sorting, and end of edge clipping etc.
  10. The system is written in C and is running on virtually all Unix environments, including but not limited to SUN, SGI, Linux, HP, IBM RS6000, and i386 SVR4, using either X11 or, when available, (Open-)GL. In addition, other environments such as Win95-XP, CYGWIN, and OS2 using IBM PC 386 and above or 68xxx AMIGA are also supported.

Reports and Papers

The IRIT modeling package was exploited for a whole variety of research activities. A list of published papers and reports can be found in Reports and Papers.

Whats New

Interested in the new staff? Click on Whats New

Same Nice Pictures

Interested in nice pictures created using IRIT? Click on Images and Pictures - IRIT.

Some Geometric Data

Interested in geometric data sets in IRIT format? Click on Geometry.

On Line Manuals

Users' Manual - IRIT (or in Postscript) (or as PDF)
Programmers' Manual - IRIT (or in Postscript) (or as PDF)

Licensing

BECAUSE IRIT AND ITS SUPPORTING TOOLS AS DOCUMENTED IN THIS DOCUMENT ARE LICENSED FREE OF CHARGE FOR NON COMMERCIAL USE, I PROVIDE ABSOLUTELY NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING, I GERSHON ELBER PROVIDE THE IRIT PROGRAM AND ITS SUPPORTING TOOLS "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THESE PROGRAMS IS WITH YOU. SHOULD THE IRIT PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL GERSHON ELBER, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR A FAILURE OF THE PROGRAMS TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY GERSHON ELBER) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.

IRIT is a freeware solid modeler. It is not public domain since we hold copyrights on it. However, unless you are to sell or attempt to make money from any part of this code and/or any model you made with this solid modeler, you are free to make anything you want with it. In order to use IRIT commercially, you must license it first - contact us in such a case.

Attribution and Contribution

The IRIT modeling package was originally developed by Gershon Elber and is (C) Copyrighted to him. Continuing to develope this system, the vast majority of the implementation is done by Gershon Elber . Various people have donated their time/code to become part of the IRIT system. For possible contirbution options, see Contribution Rules

Coding Standards

The IRIT modeling package is implemented using the Ansi C programming language. Strict Coding Standards are employed throughout the code. See also Coding Hints for few coding hints.

Getting your own copy of the IRIT modeling system

The IRIT modeling package is free for non commercial use and it is copyrighted to Gershon Elber (See Licensing).

One can get the complete set of Ansi C sources as well as documentation from here.

Some more non supported contributions

You can get an IRIT geometry-tiling using mesh/surface-trivariate composition plugin for Rhino from here.

You can get an IRIT exporter plugin for NuGrap/PolyTrans from here.

You can get a matlab interface to the multivariate constraints solver of irit from here.

You can find a version of the GUI environment developed for IRIT and called GuIrit here.

You can also get some more, non supported, tools from here.