# The modeling environment

## 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. It has several unique features such as strong symbolic computation, support of trivariate volumes and triangular patches, high portability, and numerous unique applications such as surface layout decomposition, metamorphosis of curves and surfaces, and artistic line art drawings of parameteric and implicit forms.
The system is designed for simplicity and is geared toward research. As such, no graphical user interface (GUI) exists or is planned in the near future. 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.
Version 7.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 NURB 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.
   Trimmed surfaces.
   Trivariate volumes.
   Triangular patches.

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 as well as the evolute curve, and K-orthotomic curve.
   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. Trivariate Bspline and Bezier support that includes 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 artisitic drawing of such an iso surface.
6. Triangular patches support that includes evaluation, iso curves extraction, subdivision, differentiation etc.
7. In addition to the main module of IRIT, several other tools are provided:

   poly3d-h: A hidden line removal tool. irender: A scan conversion Z buffer rendering tool.
   illustrt: A line drawing illustration tool.
   xogldrvs/xgldrvs/xglmdrvs/xmtdrvs/x11drvs/wntdrvs/wntgdrvs/os2drvs/amidrvs: Display devices (and viewing programs at the same time) for SGI's Open GL and gl, gl/Motif, X11, X11/Motif, Window NT/Win95, Windows NT/Win95 with Open GL, OS2 2.x/3.x, and AMIGA. All these drivers support the display of animation using animation curves.
   irit2ps/irit2dxf/irit2iv/irit2nff/irit2plg/irit2ray/irit2scn/irit2xfg/ irit2hgl/irit2pov: Filters to convert data files created by IRIT to PostScript, DXF, SGI Inventor, NFF, REND386, Rayshade, SCN, Xfig format, HP HPGL plotter language, and POVRAY raytracer's format.
   dat2irit/dxf2irit: Filters to convert from data file of IRIT to IRIT's solid modeling scripts and from DXF to IRIT.

8. 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.

9. The system is written in C and is running on virtually all Unix environments, including but not limited to SUN's SPARC, SGI's SGI4D, HP3xx/4xx/7xx, DEC 5000, IBM RS6000, E&S ESV, and i386 SVR4, using either X11 or, when available, SGI's GL. In addition, other environments such as Window NT, Win95, 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.

## Technion Specific

Interested in the local IRIT installation? Click on Installation of Irit at the Technion.

## On Line Manuals

Users' Manual - IRIT
Programmers' Manual - IRIT

## Licensing

BECAUSE IRIT AND ITS SUPPORTING TOOLS AS DOCUMENTED IN THIS DOCUMENT ARE LICENSED FREE OF CHARGE, 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.

## Attribution and Contribution

The IRIT modeling package was originally developed by Gershon Elber and is (C) Copyrighted to him. Continuiting 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. Click on the Contributor List for a list of these people as well as their contribution. For possible contirbution options, see Contribution Rules
Many Beta Testers helped testing the system in its various stages of development and their effort is acknowledged herein.

## Coding Standards

The IRIT modeling package is implemented using the Ansi C programming language. Strict Coding Standards are employed throughout the code.

## Getting you 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 the following FTP sites.