Ayam is a free 3D modelling environment for the RenderMan interface, It is licensed under the BSD, Ayam has been developed using C++, it is available for most platforms, including Windows, Linux and Mac OS X.

Ayam is a free 3D modelling environment for the RenderMan interface, It is licensed under the BSD, Ayam has been developed using C++, it is available for most platforms, including Windows, Linux and Mac OS X.


Ayam is a full featured NURBS/CSG modelling environment, is a first modelling environment to support Subdivision NURBS. NURBS modelling includes approximating and interpolating curves as well as extrude, revolve, sweep, birail, skin, and gordon objects with caps, holes, and bevels. Download the latest version Ayam 1.25, click here.

ayam-singlewindow-win32-knot.png

Ayam Features

  • RIB (RenderMan Interface Bytestream) export and import.

  • Support for NURBS curves and (trimmed) NURBS surfaces, Boxes, Quadrics (Sphere, Disk, Cylinder, Cone, Hyperboloid, Paraboloid, and Torus), CSG, MetaBalls, Patch Meshes, Polygonal Meshes, and Subdivision Surfaces.

  • NURBS modelling includes approximating and interpolating curves as well as extrude, revolve, sweep, birail, skin, and gordon objects with caps, holes, and bevels.

  • First modelling environment to support Subdivision NURBS.

  • Custom objects that may freely implement their representations (using OpenGL and RIB) and even small GUIs to edit their type specific parameters may be written by the user and dynamically loaded at runtime.

  • Scripting interfaces: Tcl, JavaScript, Lua; Script objects.

  • Misc: instancing, arbitrary number of modeling views, object clipboard, independent property clipboard, console, n-level undo.

  • File formats (r/w): RIB, DXF, 3DM, 3DMF, OBJ, X3D.

ayam-snap-render.gif


NURBS-Modelling

  • NURBS (Non Uniform Rational B-Splines): allow to model smoothly shaped objects with high accuracy.

  • NURBS modelling is done by combining common NURBS curves, interpolating curves, or approximating curves to NURBS patches.

  • This combination is done using tool objects, e.g. Revolve, Extrude, Sweep, Birail1, Birail2, Skin, and Gordon. In Ayam a Revolve tool object has a curve object as child and revolves it to a surface of revolution; the curve object stays editable all the time, caps may be added automatically by simply clicking on check-boxes.

  • Revolve object with arbitrary angle of revolution; may create full caps.

  • Extrude object with holes, bevels and caps.

  • Sweep object implements the standard sweep operation (sweeping a cross section curve along a trajectory curve); the cross sections may be rotated automatically, so that they are always perpendicular to the trajectory; in interpolating mode, the sweep interpolates all the cross-section-curves; a scaling curve may be present that modifies the sweep further.

  • Swing object creates rotational sweeps (swung surfaces).

  • Birail1 object sweeps a cross section along two rail curves.

  • Birail2 object sweeps a cross section along two rail curves, morphing it into a second cross section at the end of the rail curves.

  • Skin object is able to skin curves of arbitrary topology (skin an interpolating curve with 4 points with a linear NURBS curve with 2 points and a cubic NURBS curve with 10 points); in interpolating mode, the skin even interpolates all the curves.

  • Gordon object creates Gordon surfaces that interpolate a network of curves.

  • Cap object is able to create caps from even non-planar curves.

  • Bevel object is able to create bevels from curves.

  • ConcatNC object concatenates a number of NURBS curves, creating fillets where necessary.

  • High quality Text object creates objects based on extruded Bezier curves extracted from TTF files.

  • Further helper objects exist for circles/arcs, offset curves, offset surfaces, and the extraction of curves and surfaces from NURBS surfaces.

  • Read this page for a complete example of parametric NURBS modelling in Ayam.

ayam-snap-cactus.gif


CSG-Modelling

  • CSG (Constructive Solid Geometry): compose complex objects from primitives that are combined with boolean operations.

  • The following RenderMan primitives (quadrics) are implemented: Sphere, Disk, Cylinder, Cone, Hyperboloid, Paraboloid, and Torus; additionally, there is a Box primitive.

  • All quadrics may be automatically closed (missing cap surfaces generated), even if any of their parameters are not on default values.

  • Primitives may be combined using Level objects (that do CSG operations) in a hierarchy.

  • Ayam itself does not calculate and preview the results of CSG operations, this is done by a RenderMan compliant renderer or by the aycsg CSG preview plugin, which is based on OpenCSG. See an example rendering of the aycsg plugin.

  • CSG operations are not limited to the aforementioned primitives. As long as it is guaranteed that an object is fully closed, it may be used in CSG operations (Any fully closed NURBS object is available as primitive to CSG!).


Import/Export

  • RIB-Export:

  • Highly acclaimed RIB-Export.

  • Invoke renderers directly from a view window (including a progress meter and cancel button).

  • AreaLights

  • ShadowMaps

  • Custom RiOptions and RiAttributes using tags.

  • Texture coordinates using tags.

  • Arbitrary primitive variables using tags.

  • Direct support for the following RenderMan compliant renderers: BMRT, 3Delight, Air, Aqsis, Pixie, RenderDotC, Angel, and PRMan. In addition, there is direct support for Gelato.

  • Permanent preview feature.

  • RIB-Import:

  • RIB-Import, supporting Lights, Quadrics, CSG, NURBS, PolyMeshes, Subdivision Surfaces, Transformations, Shaders, Arbitrary Options, Attributes, and Primitive Variables.

  • Wavefront OBJ (V3.0) Import/Export, supporting (trimmed) NURBS and polygonal meshes.

  • Rhino 3DM (V3.0) Import/Export, supporting (trimmed) NURBS and polygonal meshes.

  • Apple 3DMF (V1.0) Import/Export, supporting (trimmed) NURBS and polygonal meshes.

  • AutoCAD DXF Import/Export.

  • Web3D X3D Import/Export, supporting (trimmed) NURBS and polygonal meshes.


Operating Systems: Cross-platform

  • Unix (Linux, IRIX, FreeBSD tested)

  • Win32 (Win95-Win2000, XP, 7)

  • Mac OS X (Aqua and X11)

  • License: Freeware (BSD licence)