### iGeo

# Create & Manage 3D Models via Java API

## Open source Java library supports Geometries Transformation, Generating NURBS Curves & Surfaces, Manage 3D Vectors & so on

iGeo is an open source Java 3D modeling library that allows software developers to create and manage 3D models from within Java apps. It has components for vector math operations, NURBS curve and surface geometries, managing polygon meshes, 3D display and navigation, and 3D model file I/O. The library has different shading modes such as wireframe, shaded, transparent shade, shade without edges, and more. The library is the best of computational design in architecture, product design and interaction design.

The iGeo library is freely available under GNU Lesser General Public License as published by the free software foundation, version 3. The library supports an interface called PiGeon, specialized for processing. The library has features for navigating 3D view, save files, such as zoom, toggle view, rotation, pan, and much more. It has also has several functions for managing panelization such as rectangular panelization, triangulation, diagrid triangulation, diamond panelization, grid lines, diagonal lines & points on Surface, grid points on the surface, and more.

## Getting Started with iGeo

The easiest way to install iGeo is by using GitHub. Use the following command for a smooth installation.

**Install iGeo via GitHub**

`git clone https://github.com/sghr/iGeo.git `

## 3D Geometry Transformation via Java API

iGeo API provides functionality for geometries transformation. There are several important methods available for geometries transformation such as duplicating geometry, rotate geometries, reflect geometry, move for specified amount of movement, scale up or down geometries, scale geometries only in one direction, shear geometries, and more.

## Generating NURBS Curves & Surfaces

NURBS stands for Non-Uniform Rational B-Spline, and it is a mathematical model to define geometries in space. It is one of the most popular mathematical models of geometries used in many CAD programs. The iGeo API supports for creating NURBS Curves and Surfaces using Java commands. The ICurve and ISurface can be used to generate URBS curves and surfaces by providing an array or a 2 dimensional array of IVec and degrees.

## Managing 3D Vectors

The iGeo library enables software developers to create and manage vectors from within Java apps. The library has several useful functionalities related to vector management such as add or subtract vectors, duplicating a vector variable to another variable, multiply or divide vectors, flipping vectors, measure the distance between two vectors, set the length of a vector, generating one scalar value out of two vectors, reflect a vector on 3 dimensional plane and more.

## Map Images on 3D Geometries

The iGeo library enables software developers to map images on geometries with ease using Java code. It allows to control the line length by image, control depth of surface by image, control the width of the panel, control rotation by image, control scaling by image, sampling color of the image, and so on.