Procedural geometry,
live at run time.

GeoNodus is a native library for node-based procedural modeling. Your application builds a network of geometry operators, changes any parameter on the fly, and gets the rebuilt mesh back. The API follows Houdini Engine (HAPI), so Houdini users will recognize it immediately.

C API modeled on HAPI Desktop Windows · macOS · Linux Mobile iOS · Android C++23 core, async cooking

What GeoNodus is

A shared library that brings procedural, Houdini-style modeling to your own applications and games. It doesn't need Houdini, a license server or a network connection. Everything is computed on the device.

API that mirrors HAPI

The gn* functions and GN_* types follow Houdini Engine one to one: sessions, node IDs, string handles, flat parameter arrays, Compose*/GetComposed*, parts, attributes and groups. Code written against HAPI ports with little more than a rename.

Run-time parametric modeling

You can build complex scenes out of networks with hundreds of nodes. Any parameter can change while the app is running. Dirty propagation re-cooks only the affected nodes, on a separate cook thread, so the UI never blocks.

Dynamic, animated scenes

Parameters accept expressions with time variables ($T, $F) and ch() references between nodes. Renaming a node or a parameter keeps every reference intact. Spare parameters and sub-networks are supported, and a whole graph can be saved to JSON and loaded back.

Houdini Engine (HAPI)C
HAPI_CreateNode(&session, geo, "box", "box1", false, &box);
HAPI_SetParmFloatValues(&session, box, &size, idx, 3);
HAPI_CookNode(&session, box, nullptr);
HAPI_GetPartInfo(&session, box, 0, &part);
GeoNodusC
gnCreateNode(session, geo, "box", "box1", false, &box);
gnSetParmFloatValues(session, box, &size, idx, 3);
gnCookNode(session, box, nullptr);
gnGetPartInfo(session, box, 0, &part);

Runs where your app runs

The library ships as a single binary with no external dependencies. The public C interface makes it easy to call from C, C++, Swift, Kotlin/JNI, C# and other languages.

Windowsx64 · ARM64
macOSApple Silicon
Linuxx64
iOSiPhone · iPad
Androidphones · tablets