IRIT is a geometric modeling environment that allows one to model
basic, primitive based, models as well as freeform surfaces' based
models, and use Boolean operations on both. Beyond its very strong
support for Bezier and B-spline curves and (trimmed) surfaces, IRIT
has several unique features such as strong symbolic computation and
non-linear constraints solving, support of trivariate spline volumes,
multivariate spline functions and triangular patches.
IRIT offers numerous unique applications such as surface ruled-surface and layout decompositions, 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 development
and research, offering a Programmable User Interface (PUI, via the Python
scripting language and an in-house IRIT interpreter). 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 (i.e the PUI) is available which provides the interaction interface. An (IRIT/Python) interpreter processes the user's command and executes them. The IRIT 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. The IRIT 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 executed via the IRIT (or Python) interpreter:
|Low level Constructors (direct control points control).|
|High Level Constructors (Sweep, Extrude, Boolean Sum, etc.).|
|Merging and Profiling tools.|
|Differentiation and Integration.|
|Symbolic Computation (Difference, Sum, and Product).|
Tools to compute the zero set of multivariates, where the solution
space is zero-dimensional, univariates (one-diemnsional) or bivariates
(two dimensional). Queries employing this solver include extreme
(minimal or maximal) points computations between freeforms, the
inflection points and/or points of extreme curvature, and the
intersection points of two freeforms are a few exmaples. More complex
examples include contact between freeforms and c-space configuration's
analysis, kinematics and sweeps.
The symbolic tools provided allow one to represent scalar and vector
fields of differential properties of the freeforms, such as normals
and curvature. The curve's inflection and extreme curvature detection
tools, mentioned above, exploits these symbolic tool and are highly
robust. For surfaces, this subset includes, for example, tools to
compute the Mean, the Gaussian, and an extremum bound on the principal
In addition, symbolic manipulation tools can help in deriving entities such as bisectors between freeform shapes.
Triangular patches support that includes evaluation, iso curves extraction, subdivision, differentiation etc.
Trivariate (polynomial and/or rational) B-spline and Bezier support that includes constructors, evaluation, refinement and subdivision, degree raising, differentiation and integration, iso-surface extraction, 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 (polynomial and/or rational) B-spline and Bezier support that includes constructors, evaluation, refinement and subdivision, degree raising, differentiation and integration, Symbolic Computation (Difference, Sum, and Product), etc.
In addition to the main module of IRIT, quite a few other tools are also provided:
|poly3d-h: A hidden line removal tooi for polygonal data sets.|
|ihidden: A hidden line removal tool for freeform entities.|
|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.|
|irit23js/irit2dxf/irit2hgl/irit2igs/irit2iv/irit2nff/irit2off/irit2plg/ irit2pov/irit2ps/irit2ray/irit2scn/irit2stl/irit2wgl/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/dat2irit/dxf2irit/igs2irit/obj2irit/stl2irit: Filters to convert from 3DS data files, from/to binary IRIT .ibd files, from DXF/IGES/OBJ/STL format to IRIT .itd data files. dat2irit converts IRIT .itd data files to IRIT's solid modeling .irt scripts.|
The IRIT solid modeller is actively used in various research (and licensed
industrial) areas. Several research 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 Windows 95 to Windows 8 (using a whole variety of VC compilers), and on virtually all Unix environments, including but not limited to SUN, SGI, Linux, HP, IBM RS6000, and i386 SVR4, using either X11/XMotif and/or, when available, (Open-)GL. In addition, other environments such as 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 -
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
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.