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:
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. |
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.
Triangular patches support that includes evaluation, iso curves extraction, subdivision, differentiation etc.
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.
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.
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. |
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. |
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.
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.
Interested in nice pictures created using IRIT?
Click on Images and Pictures -
IRIT.
Interested in geometric data sets in IRIT format?
Click on Geometry.
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.
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
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.
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.
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.