NetGen

Netgen is a multi-platform automatic mesh generation tool written in C++ capable of generating meshes in two and three dimensions. The program is open source, and is distributed under the conditions of the LGPL. Netgen is available for the Unix/Linux, Windows NT/XP/Vista as well as the MacOS platforms for both 32-bit and 64-bit architectures, and comes in two primary forms:
A Stand-alone Program with its own Graphical User Interface (GUI) implemented using Tcl/Tk.
A C++ library (Nglib) which can be linked into other applications functioning as the backend mesh generation kernel.

Donload,  Manual

Netgen generates triangular or quadrilateral meshes in 2D, and tetrahedral meshes in 3D. The input for 2D is described by spline curves, and the input for 3D problems can be defined by Constructive Solid Geometry (CSG), the standard STL file format, or via Boundary Representations (BRep/IGES/STEP) when compiled with OpenCascade support. NETGEN provides modules for automated mesh optimization and hierarchical mesh refinement. Curved elements or arbitrary order are supported.
Main Features of Netgen
Two and three dimensional surface meshing – Triangular and Quadrilateral elements
Three dimensional volume meshing – Tetrahedral elements
Geometry sources
Constructive Solid Geometry (CSG)
Triangulated Surfaces (STL)
Boundary Representation (BRep/IGES/STEP) – When compiled with OpenCascade support
Mesh Generation algorithms
Delaunay
Advancing Front
Automated topology based mesh size control – With user controllable constraints
Mesh refinement algorithms
Curved (higher order) elements – For both 2D and 3D mesh elements