You are here:   Home »  Import CAD Formats »  SAT (ACIS)  

Okino logo
Houdini GEO Importer

Arrow Importing Houdini GEO 3D Files

This import converter reads in Houdini GEO files. Houdini is a popular, high-end 3D effects and animation program. The importer handles ASCII GEO files This importer was developed over a period of several years, with help and feedback on its implementation coming from Side Effects (Toronto), the developers of Houdini.

Supported GEO Primitives

Houdini and its corresponding GEO file format support many different geometric primitives, and each primitive often has a number of additional options and attributes.

Polygon ("Poly")

This defines one or more arbitrary polygons.

If the polygons are marked as being "open" (polylines) then they will be imported using the Okino "spline shape" primitive, as open linear curves.

If the polygons are marked as being "closed" then they will be imported using the Okino "indexed polygon" primitive, with all the polygons combined into the single primitive. The vertex attributes will be derived as follows:

  1. The vertex normals will optionally be derived from the GEO file's vertex normal, or point normal, or the primitive's normal.
  2. The vertex colors will optionally be derived from the GEO file's vertex color, or point color, or the primitive's color.
  3. The vertex uv texture coordinates will optionally be derived from the GEO file's vertex uv's, or the point uv's.

NURBS Curve ("NURBCurve")

Houdini NURBS curves will be imported as equivalent Okino NURBS curves. Closed or periodic curves will be turned into equivalent "open, clamped" curves which are the Okino standard.

Rational Bezier Curve ("BezierCurve")

Houdini Bezier curves will be converted and imported as Okino NURBS curves.

Linear Patch ("Mesh")

This defines a uniform MxN polygonal grid mesh (triangles or quads) in the GEO file.

The "open" or "closed" mesh will be imported in a similar manner as described by the "Poly" GEO primitive.

NURBS Surface ("NURBMesh")
Bezier Patch ("BezierMesh")

These 2 Houdini primitives define parametric surfaces. They are imported similarly.

If the surface is marked as being "open" then an MxN grid of open NURBS curves will be created which represent the NURBS curves or Bezier curves that define the surface from the GEO file.

If the surface is marked as being "closed" then a 3D NURBS surface will be created which is equivalent to the Bezier or NURBS surface defined in the GEO file. In addition, if there are linear, Bezier or NURBS trimming loops associated with this NURBS surface, then they will be imported and assigned as NURBS trimming curves.


The circle primitive will be imported as a procedural disc primitive.


The sphere primitive will be imported as a procedural sphere primitive.


  1. If the "taper" value is 1.0 then a cylinder will be created.
  2. If the taper value is > 1.0 then a "frustum" will be created.
  3. If the tape value is 0.0 then a cone will be created.
  4. If the taper value is < 0.0 a double ended cone will be created.

Unsupported GEO File Contents

The following primitives and GEO file contents are not supported by this importer:

  1. Paste Hierarchy ("PasteSurf")
  2. Metaball ("MetaBall")
  3. Meta Super-Quadric (MetaSQuad")
  4. Particle System ("Part")
  5. Triangle Strips ("TriStrip")
  6. Triangle Fans ("TriFan")
  7. Triangular Beziers ("TriBezier")

  8. Detail attributes
  9. Point grouping
  10. Primitive grouping

Material Processing

If the GEO file has "vm_surface" lines listed then these will be imported as material definitions. The ambient surface color, diffuse surface color and surface roughness will be imported from the "vm_surface" definition.

Houdini HIP Files

If you have Houdini ".hip" files and not ".geo" files then what you want to do is execute the Houdini "hexpand" program on the .hip file. One of the expanded sub-directories will contain the pure geometry .geo files.

The .hip file is actually a UNIX "CPIO" archive of a complete Houdini project, including .geo files, shader Ops and everything else normally associated with a Houdini scene. All of these elemental files are organized into a directory structure once expanded from the .hip file. You will be interested in only the .geo files for this importer.


  • Trim loops for NURBS surfaces are not guaranteed to work when importing from Houdini GEO files. Houdini's internal program NURBS implementation allows for trim curves which intersect with the outer boundary, trim loops that intersect with other trim loops and self-intersecting trim loops. These are all illegal cases in most other 3d software packages.

  • Binary .bgeo files are not supported.

More Dialog Box Options

Selective Loading

Polygon & linear meshes Vertex normals
Vertex texture uv's
Vertex colors
Trim curves for surfaces
Bezier curves
Bezier surfaces
NURBS curves
NURBS surfaces

Disabling any of these checkboxes will prevent the associated geometric entity from being imported.