Ayam Icon
Ayam

Start
News
Gallery
Features
Download
Community
Docs

News

20. Nov 2024

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.36.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

10. Nov 2024

Here is a summary of the most important recent changes of Ayam in the Mercurial tip:
  • object search revamped:
    • search now works for the object listbox
    • new and default action "Select" triggers search and selects first hit
    • new buttons "Select Next" / "Select Previous" select corresponding matches
    • new advanced options:
      "WrapSelection" controls select action wrapping,
      "PartialMatch" find sub strings in simple searches, and
      "IgnoreCase" toggles case matching for simple searches
    • the search dialog is no longer modal (interaction is still blocked as long as a search is active)
    • the number of search results is now displayed in the dialog
    • delete action now raises a warning dialog
  • new single view layout for single window GUI mode, that better accomodates for wide aspect displays:

    Single View Layout (click for larger version)

    Single View Layout (click for larger version)

  • also on display in the above screen-shot is a breadcrumb navigation widget (below the object hierarchy).
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

12. Jun 2024

Ayam 1.35 has been released.

This release features some important bug fixes and a greatly improved script object script editor, now featuring line number display, syntax and brace highlighting, and a configurable font.

Get the new version from the download page, see also the complete list of changes.

 

28. Apr 2024

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.35.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

18. Apr 2024

Here is a summary of the most important recent changes of Ayam in the Mercurial tip:
  • there is now a curve offset mode that explicitly offsets along the curve plane normal,
  • the script object editor has been improved, there is now syntax highlighting, brace highlighting, a optional line number display, and a dynamically appearing scrollbar, in addition, the font is now configurable:

    Improved Script Editor with Context Menu

  • There is a new example Script object that creates fillets with adjustable tangent vector lengths.

    Fillet Curve Script Object Example

  • There is a new example scene, that demonstrates the use of the Wavefront MTL realizing surface shaders, see an example rendering:

    Wavefront MTL Shader Example Scene
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

4. Mar 2024

The online version of the documentation has been updated.
 

20. Jan 2024

Ayam 1.34 has been released.

This release features many bug fixes and important improvements; among the latter are:

  • Wavefront MTL (material) import and export,
  • axis restricted interactive rotate modelling actions.

Get the new version from the download page, see also the complete list of changes.

 

5. Dec 2023

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.34.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

25. Jul 2023

Ayam 1.33 has been released.

This release features many bug fixes and important usability improvements; among the latter are:

  • interactive face selection,
  • much improved Subdivision NURBS tools,
  • Isophotes display mode.

Get the new version from the download page, see also the complete list of changes.

 

28. Jun 2023

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.33. Major new features of this release are interactive face selection (to improve Subdivision NURBS usability) and Isophotes display.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

8. Jan 2023

Ayam 1.32 has been released.

This release features many bug fixes and important usability improvements; among the latter are:

  • highlighting of affected boundary curves in Cap/Bevel property GUIs,
  • interactive point insertion in point edit action (holding <Ctrl>-key),
  • zoom by wheel zooms to the mouse cursor,
  • Script object script editing resets the corresponding environment.

Get the new version from the download page, see also the complete list of changes.

 

1. Dec 2022

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.32.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

29. Nov 2022

The first hotfix for Ayam 1.31 is now available for download, it fixes a problem with external views on X11 when using Tk 8.5. This does not apply to those on Windows, MacOSX, or using Tk 8.4.
 

8. Jul 2022

Ayam 1.31 has been released.

The major new feature in this release is the -guiscale command line option that can be used to adapt the GUI to high resolution displays. Furthermore, Pixie shader parsing is now available for the Windows 64-bit build and updated for the other builds.

Get the new version from the download page, see also the complete list of changes.

 

25. Jun 2022

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.31.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

6. Feb 2022

Now that the 1.30 release is out of the door, it is time to discuss the roadmap for the next release. Here are some ideas:
  • face selection mechanism, especially useful for Subdivision NURBS;
  • employ peek in trim drawing;
  • employ common tools (revert, refine, coarsen, split, concat) in more tool objects;
  • add trimming and PV tag support to RTESS;
  • improve Clone to support placing on surfaces, random placement;
  • research ways for employment of common tools in Script objects;
  • research ways for allowing Script objects to offer/use editable points;
  • research Material subclassing and potential support for gltf2 assets;
  • make more common tools callable from main window;
  • integration of T-Splines from Grapetec;
  • PV tag GUI editor;
  • make action menu configuration code generic and employ it to allow GUI configuation of the other view icon menus, the scripts and plugins preferences, and the toolbox;
  • support for shader array parameters;
  • draw curvature information as texture to assess curve/surface quality;
  • establish cross build environment for macOS.
Post your view in the forum or send an e-mail.
 

22. Jan 2022

Ayam 1.30 has been released. Get the new version from the download page, see also the complete list of changes.

This release also contains the first official versions that were compiled with Tcl/Tk 8.5 and are therefore considered experimental. You are cordially invited to try them and report findings to the forum or via e-mail.

 

9. Jan 2022

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.30.

Test source and binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

13. Nov 2021

Here is a summary of the most important recent changes of Ayam in the Mercurial tip:
  • the implicit modelling scope management (point vs. object) has been reintroduced and is the new default,
  • panning of perspective views is much improved, paving the way for potentially adding at least point editing to these views,
  • support for modelling with approximating surfaces has been added,
  • Gordon surfaces now support three parameter curves to form a triangular surface; to improve the rendering of this triangular NURBS surface with its inevitable degeneracy, the RTESS tesselation (as already known from the X3DOM NURBS tesselator) with additional degeneracy detection and handling has been introduced:

    Triangular Gordon Tesselations (l: RTESS, m: GLU Adaptive Domain Distance, r: GLU Pathlength)  

    In the above example a triangular Gordon surface was tesselated to approximately 200 triangles using RTESS and GLU (with two different sampling methods and parameters adapted to yield the best possible result). Compare the triangle shapes and numbers on the degenerate upper corner of the surface.

  • added an advanced quadrangulation to the NURBS tesselation post process, which, in contrast to a pure polymesh quadrangulation, introduces new points that are directly on the tesselated NURBS surface leading to much higher surface fidelity:

    NURBS Guided Quadrangulation Example (l: NURBS Guided Quadrangulation, m: Original Tesselation, r: Polygonal Quadrangulation)  

  • many complex NURBS tools now support preview for easier exploration of parameters:

    Tool Dialog with Preview
    .

23. Feb 2021

Ayam 1.29 has been released. Get the new version from the download page, see also the complete list of changes.
 

17. Feb 2021

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.29.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

13. Feb 2021

Here are the most important changes of Ayam in Mercurial.
  • The action icon menu can now be configured using a new preference dialog:

    Action Menu Configuration Dialog

    As you can also see in this dialog, there are two new selection actions...

  • These two selection actions, for NURBS surface boundary curves, form the base of much improved tool object hierarchy building tools. After the selection of multiple boundary curves e.g. a Skin object connecting the originating surfaces using a set of automatically created and parameterized ExtrNC objects can be created with a single click.

  • The boundary curve selection uses a new feature of the Ayam core, the peek mechanism, that allows tool objects or tools direct access to the internal data structures of other objects. The old provide mechanism always creates copies of the data, which is much less efficient and therefore unsuitable for interactive contexts or very large tool object hierarchies.

  • The Gordon surface tool object finally supports the general case of n by m parameter curves, where the internal intersection points are computed automatically. See also the following image:

    General Gordon Surface Example (click for larger version)

    General Gordon Surface Example (click for larger version)
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

29. Jan 2021

Thanks to the hard work of Alain Siksik, a french translation of the reference manual of Ayam 1.28 is now available, thanks again Alain. Because of his unfamiliarity with some of the more advanced technical terms, Alain is kindly asking you for feedback/improvements.
 

1. Nov 2020

The first hotfix for Ayam 1.28 is now available for download, it fixes a problem with the AutoFocus preference setting.
 

25. Sep 2020

Due to errors in the install scripts the Linux installer executables of Ayam 1.28 have been re-released. The Mac OS X / X11 distribution has also been updated due to the missing fifodspy plugin. Get the new versions from the download page.
 

18. Sep 2020

Ayam 1.28 has been released. Get the new version from the download page, see also the complete list of changes.
 

20. Aug 2020

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.28.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

18. Jul 2020

Here are the most important changes of Ayam in Mercurial.
  • Introducing simple curve fairing:

    Curve Fairing Example, Original (u), Selection (m), Faired (l) Curves

       

    Curvature Plots of Original (l) and Faired (r) Curves
  • Multiple points now flash fully and are painted completely red, if all their individual points are selected.
  • Viewport rendering now also works on Windows.
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

29. Apr 2020

Here are the most important changes of Ayam in Mercurial since last release.
  • A new rendering mode (Viewport) has been implemented that allows to render directly into a view window:

    Viewport Rendering Example (click for larger version)

    Viewport Rendering Example (click for larger version)
  • The RIB export preferences have been reorganized for increased clarity and do not show all renderer and shadow maps options at once anymore.

    RIB Export Preferences
  • The curvature of NURBS curves can now be displayed in an interactive diagram (with resizing, zooming, panning, and live updates), implemented as object property:



    Curvature Diagram Property (u) of Curve (l)
  • Extracted boundary curves can now also carry extracted surface normals and tangents.
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

4. Feb 2020

Due to the discovery of major bugs in Ayam 1.27 it has been re-released.
Get the new version from the download page, see also the complete list of changes.
We apologize for the inconvenience.
 

27. Jan 2020

Ayam 1.27 has been released. Get the new version from the download page, see also the complete list of changes.
 

19. Jan 2020

The Ayam 1.27 beta release is now available in a second version to reflect a massive set of changes to the property management code that occurred in the last two weeks. These changes were necessary to improve compatibility with newer versions of Tcl/Tk. Get the new beta from the SourceForge File Release System.

Expected release date for 1.27 final is still 27. Jan 2020.

 

14. Dec 2019

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.27.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

1. Jun 2019

The first hotfix for Ayam 1.26 is now available for download, it fixes a problem with Alt-F4 on Windows.
 

23. Feb 2019

Introducing Quick Parameter GUIs that pop up in interactive modelling actions as soon as a number key is pressed and help to parameterize the action exactly by keyboard.

Quick Parameter GUI Example

Currently supported are all object and point transforming actions that work with one parameter value, e.g. all scale, rotate, and move 1D actions.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

18. Feb 2019

Due to errors in the project setup the originally distributed X3D import/export plugin does not work correctly on Windows. A fixed version can be downloaded from the SourceForge File Release System.
 

26. Jan 2019

Ayam 1.26 has been released. Get the new version from the download page, see also the complete list of changes.
 

30. Nov 2018

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.26.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

11. Aug 2018

Here are the most important changes of Ayam in Mercurial since last release.
  • Introducing a new custom object for modelling with Subdivision Curves:

    Subdivsion Curve Examples
  • RiInc and RiProc objects can now convey the shape of the objects they represent via their child objects. Those will be drawn in a dashed style:

    RiInc Example
  • Another Script object example is the extruden script that extrudes arbitrary curves along their mean normal or a manually specified vector:

    ExtrudeN Example
  • The insert point, delete point, and revert actions are now also available to custom objects. Also NCircle objects profit from that and can now be reversed very easily.
  • Script objects now support caps and bevels directly, there is no need to extract curves and build the caps/bevels on them in complex hierarchies anymore. This greatly enhances the usability of Script objects that create NURBS surfaces (e.g. dualsweep, tsurf, extruden).
See Changes.txt for a complete list of the bug fixes and changes since the last release.
 

11. Apr 2018

A new version of the Ayam 1.25 Linux 64 bit binary distribution has been released, as the original version was broken. Get the new version from the download page.
 

25. Jan 2018

Ayam 1.25 has been released. Get the new version from the download page, see also the complete list of changes.
 

15. Dec 2017

Due to the decomissioning of CVS on the SourceForge platform the Ayam team was forced to convert the Ayam CVS repository to Mercurial, which is a distributed version control system. See this new section of the Ayam homepage for instructions on how to use it. We apologize for any inconvenience this may cause. The new repository may also be browsed through a simple web interface.
 

20. Nov 2017

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.25.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

 

10. Nov 2017

As the SourceForge hosting platform terminates CVS write support effective 30. Nov 2017, the Ayam source code will be transferred to a Git Mercurial repository on 15. 25. Nov 2017.

 

21. Oct 2017

Modelling Action Improvements
 
The past months saw some considerable improvements of the modelling actions:
  • drag selection is now supported in the set mark, initial numeric edit, find u, and split curve actions,
  • inserting points into curves now allows immediate interactive placing of the new points,
  • the weight edit action now works in a more predictable way and visualizes the current weights by color (see also the image below),

Weight Visualization
 
  • the find u and split curve actions now display the breakpoints (distinct knots) of the curve as rhombuses (see also the image below),

Breakpoint Display
 
  • the breakpoints are also pickable and the picked/selected knots can be used by other tools like the refine knots tool.

See Changes.txt for a complete list of other changes since the last release.

 

29. Apr 2017

Periodic Birails Revisited
 
While periodic birails are already supported for quite some time in Ayam, their use is somewhat limited by the standard birail surface creation algorithm that does not rotate planar cross section curves to be perpendicular to either rail, even though the most probable use case of a periodic birail is an object with cylindrical topology where such behavior would indeed be desirable. The resulting surface always looks similar to a sweep with the rotate option turned off. See also the image below.

Periodic Birails (l: Parameter Curves, r: Resulting Surface)  
 
To improve this situation, the Ayam team introduces a new surface creation algorithm called DualSweep.
The DualSweep algorithm draws inspiration from the final step of the Gordon surface creation algorithm, which is a boolean combination of three partial surfaces (two skinned surfaces and a interpolating surface).
In similar fashion, the DualSweep algorithm combines two swept surfaces with an additional interpolation control surface (a new feature of the tween surface tool as of Ayam 1.25). The swept surfaces, in turn, are created with adapted cross section curves and, of course, rotation of the cross section curves to be perpendicular to the trajectory. The adaptation merely makes sure, that the respective swept surface interpolates the corresponding end of the cross section curve to fulfill a promise also kept by the birailing algorithm.
The results of this approach are impressive, as can be seen in the examples below.

DualSweep (l: Parameter Curves, r: Resulting Surface)  
 
Here is a direct comparison of the NURBS surfaces created by the birail and DualSweep variants.

Birail DualSweep Comparison  
 
The DualSweep algorithm is encoded in / available as a Ayam Script object.
 

6. Mar 2017

A new version of the Mac OS X / X11 binary distribution has been released, as the original version of the X3D import/export plugin was broken.
 

24. Jan 2017

Ayam 1.24 has been released. Get the new version from the download page, see also the complete list of changes.
 

6. Dec 2016

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.24.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the bug fixes and changes since the last release.

20. Mar 2016

The x3dom NURBS playground has opened.
 

6. Mar 2016

NURBS for x3dom
 
It is much easier now to publish your NURBS models on the web, as the Ayam team introduced a lightweight implementation of the <NurbsPatchSurface> and <NurbsTrimmedSurface> X3D nodes for x3dom.
The tessellator is an adaption of the simple recursive tessellator by A. J. Chung and A. J. Field. See the following example:

Trimmed NURBS display in x3dom  
 
In contrast to the original algorithm and example code,
  • memoization is employed to avoid re-calculating surface and curve points multiple times,
  • trim curves are sampled with greater fidelity, but linear trim segments are not refined to speed up the intersection tests,
  • partially trimmed triangles are not drawn completely and transparent (as suggested by the original authors) but instead split again at the trim intersection.
 
Still to do:
  • complete the NURBS support wrt. texture coordinates,
  • use the X3D tessellation quality attributes for sampling control,
  • see if the last kinks in the trim outline can also be removed,
  • enhance the splitEdge() function to consider curvature and/or trim vicinity,
  • improve the x3dom integration by e.g. proper reaction to fieldChanged()-events,
  • put the tessellator into a webworker to avoid interaction lags and employ multi core CPUs.
All done!

See the source of the above 3D scene and the source of the NURBS tessellator.

 

21. Feb 2016

The marsrakete scene has been exported to x3dom using a simple GLSL toon shader as material.

To facilitate export with such advanced material properties to x3dom, the X3D export of material objects now supports adding arbitrary XML data to the respective <Appearance> and <Material> nodes.

Conversion of tool objects with caps and bevels now preserves the caps and bevels as tags.

See Changes.txt for a complete list of other changes since the last release.

 

13. Jan 2016

Ayam 1.23 has been released. Get the new version from the download page, see also the complete list of changes.
 

20. Nov 2015

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.23.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the latest changes since the last release.

 

9. Nov 2015

Interaction Improvements
 
Introducing a new interactive selection action for polymesh boundaries that eases the application of the manual polymesh gap filling / connect tool below. See the following image:

Boundary Selection (Origin)
 
The gap filling / connect tool requires completely selected (all points) boundaries, but how do you do this in this sea of points?

Simply start the boundary selection action and pick a single point on the boundary. See below image.

Boundary Selection (Picking)
 
Wrongly selected points would do no harm, one can just pick another point until the boundary is complete. The action also works for multiple selected objects, i.e. in our example actually two boundaries will be selected by a single click, see the below image.

Boundary Selection (Result)
 
Now the gap filling / connect tool can be started, see its result in the image below.

Polymesh Gap Filling (blue: original meshes, white: new triangles)

See Changes.txt for a complete list of the other changes in the CVS head.

 

3. Oct 2015

Towards Watertight Tessellation
 
The attentive visitor surely noticed, that the example for the RoundToNormal bevel mode below exhibits minor defects (holes) where the surface based on the extracted trim curve meets the base surface. These defects are caused by different tessellation/sampling densities at the respective edges that in turn result from the surfaces being incompatible (different number of control points and/or order) and simply adjusting the tessellation parameters will not help much.
The holes will not be visible when exporting the scene to a RenderMan renderer that samples the NURBS surfaces to pixel precision anyway. But if a flawless polygonal mesh is the goal, those holes can now be filled with a new polymesh tool that connects two mesh edges by first offsetting them in the direction of the respective surface tangents and then creating a strip of new triangles between the edges.
See the following example:

Connected Polymeshes (l: Unconnected, r: Connected)  

Get the CVS-Head for your own experiments.
 

16. Sep 2015

The Return of the Quads
 
Merely by accident1 the Ayam team lately discovered that under certain circumstances, the GLU NURBS tessellator indeed generates and sends us quads as primitives. But in previous versions Ayam immediately tore them down to triangles. Those quads can now be kept intact. We introduced a tessellation option that controls which primitives to generate (triangles or triangles and quads). There is also a third mode where neighboring triangles are combined to quads if their face normals are compatible. Whether this third mode should also generate degenerate quads is currently under consideration.
See the following example tessellations:

Tessellation Primitives (l: Triangles, m: Triangles and Quads, r: Quads)  

In the above examples the tessellated cone consists of 176 triangles [l], 152 triangles and (GLU generated) quads [m], and 108 (Ayam generated) quads [r] whereas the number of control points is constant (117). The use of quads leads to a decreased file size of about 10%.

1 a forgotten debug printf-command

 

29. Jul 2015

Introducing a script, cvview, that displays control point arrays in a Tk canvas as property. The current control point position is shown as tool tip and control points can be selected by clicking. Very helpful when control points lump together in 3D space or have irregular values that let OpenGL freak out. CVView works with all editable curves and parametric surfaces. See the following image:

Screenshot of CVView Property
 
The object search UI has been streamlined by introducing a new user interface element hat toggles display of seldom used options, see the following image:

Screenshot of Object Search Dialog
 
The online version of the documentation has been updated.
 

14. Jul 2015

All Ayam 1.22 Linux release archives have been updated for improved installation support on non-Debian distributions.
 

25. Jun 2015

Ayam 1.22 has been released. Get the new version from the download page, see also the complete list of changes.
 

6. Jun 2015

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.22.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the latest changes in the CVS head.

 

30. May 2015

Here is a summary of recent changes of Ayam in the CVS head:
  • There is now an option to switch between display of rational points in homogeneous or euclidean style.
  • The STESS NURBS tessellation uses less memory and is much faster now. Furthermore, to avoid constant re-tessellation when switching interactive modelling actions, there are now two versions of the tessellation stored.
  • RIB import is now handling the handedness of the scene correctly, even if switched in the file via RiOrientation.
  • RIB import of object instances improved in terms of attribute handling, plus, for multiple surfaces there will now be an enclosing Level object to ease later creation of Instances via Automatic Instancing.
  • Custom knots of concatenated curves/surfaces now preserve the relative knot spacing of the parameter curves/surfaces.
There were also some serious bug fixes, so that the release of the next version (1.22) is scheduled for next month (June 2015). As always, if you are interested in the project: get the latest release or CVS head and report bugs.
 

15. Mar 2015

The Linux release archives have been updated with improved installation support (we now correctly install the libtiff.so).
 

7. Feb 2015

Ayam 1.21 has been released. Major improvements are
  • 64 bit Linux build,
  • caps and bevels for all NURBS objects,
  • more bevel options (3D, round-to-cap, round-to-normal),
  • extraction of trim boundaries,
  • trim support in surface concatenation,
  • higher tessellation quality at trim edges,
  • STESS tessellation is faster, more robust, uses less memory, and features a new high quality mode for planar trimmed surfaces,
  • new display mode "HiddenWire" (with silhouette detection),
  • scripting in Lua,
  • better visibility and handling of the mark,
  • direct export to x3dom,
  • the usual slew of bug fixes.
Get the new version from the download page, see also the complete list of changes.
 

16. Jan 2015

The Ayam team is happy to announce the feature freeze and public beta test of Ayam 1.21.

Test binaries may be downloaded from the SourceForge File Release System.

Report bugs via forum or e-mail.

See Changes.txt for a complete list of the latest changes in the CVS head.

 

20. Dec 2014

Here is a summary of recent changes of Ayam in the CVS head:
  • The NURBS tessellation can now generate texture coordinates from TC tags (or knot values) automatically.
  • The conversion tag management is more flexible now: not only TP (tessellation parameter) tags can be preserved, but a set of user defined tags.
  • Added a script that allows to save/restore the point selection to/from a tag.
  • Visibility of mark and direction annotation improved.
  • Added a rounding/normalization mechanism that prevents rounding errors in complex interactive modelling operations like rotating about the mark.
 

15. Nov 2014

In Ayam, complex objects can be constructed by connecting simple patches or patch creating tool objects (like Revolve or Skin) smoothly via their boundaries. This is easy for normal boundaries as tangents and normals can be extracted from the underlying surface. It is tricky for trim boundaries, as the surface tangents generally point into the wrong directions. Nevertheless, this time we are introducing a new bevel mode, RoundToNormal, that allows to connect surfaces via trim boundaries smoothly. See the following example:

Round to Normal Bevel on Extracted Trim Boundary  
 
In the example above a bevel was constructed on the extracted hole trim boundary curve, starting in the direction of the surface tangent and rounding off to the mean normal. The remote boundary of this bevel was then used as parameter curve for a skin surface. Also compare this smooth surface connection with the sharp surface connection below.

See Changes.txt for a complete list of other changes in the CVS head.

 

25. Oct 2014

The curve extraction facility in Ayam has been enhanced to support the extraction of trim boundaries. Even though there can not be an exact solution to this problem in the general case, just tessellating enough points on the trim boundary and then constructing an interpolating curve can yield satisfactory results, as can be seen in the following example:

Trim Boundary Extraction  
 
In the example above the extracted hole trim boundary curve, which is non-planar, as the trim curve is not circular, was used as parameter curve for a skin surface.

See Changes.txt for a complete list of other changes in the CVS head.

 

25. Sep 2014

The Extrude and Text objects have, finally, been converted to use the new offset based bevel creation algorithms. As consequence, even in the challenging case of bevelling font outlines, where Ayam 1.20 really struggles, now convincing geometry results, as can be seen in the following image:

Beveled Font Outline
 
For comparison, here is what Ayam 1.20 creates:

Beveled Font Outline (Ayam 1.20)
Here is a tessellation of the beveled font outline:

Tessellation of Beveled Font Outline  
 

See Changes.txt for a complete list of other changes in the CVS head.

 

27. Aug 2014

The quest for NURBS tessellation quality continues. This time we introduce a new specialized tessellation mode for planar trimmed NURBS patches in Ayam's own tessellator (STESS). This new mode views the tessellated trim curves as complex polygon with potential holes and tessellates this polygon with the GLU polygon tessellator for shaded display, see the following example image:

Specialized Polygon based Tessellation for Trimmed Planar NURBS
 
For comparison, here is what the normal STESS tessellation creates:

STESS Tessellation for Trimmed Planar NURBS

The results are surely already better than what Ayam 1.20 delivers, but there are still missing and extraneous patches.

See Changes.txt for a complete list of other changes in the CVS head.

 

18. Jul 2014

When tessellating trimmed NURBS patches with Ayam, the underlying GLU API offers two functions for the specification of trim curves, gluNurbsCurve() and gluPwlCurve(). The latter is for polygonal trims (Pwl standing for piecewise linear) that often appear as outer trim loop to limit the parameter space or generate triangular surfaces. gluPwlCurve() also has a simpler interface than gluNurbsCurve() as there is no need to specify the order or a knot vector.

The usage of gluPwlCurve(), however, has an unpleasant and undocumented side effect in tessellators that stem from the SGI GLU sample implementation: edges of the tessellated surface that are generated by / run along such polygons will often not be broken down into smaller pieces but rather appear unchanged in the tessellation.
In order to fulfill the contract wrt. surface fidelity, dictated by the respective tessellation mode and parameters, GLU therefore must generate many triangles in the form of thin spikes adjoining those edges. The coarse trim edges may even result in clearly off-surface triangles:

Poor Tessellation Caused by gluPwlCurve()
 
When, instead of gluPwlCurve(), gluNurbsCurve() is used for the specification of the polygonal trim, a much more pleasant tessellation results:

Good Tessellation Using gluNurbsCurve() Instead of gluPwlCurve()

Therefore, since Ayam 1.21, there is a new hidden parameter (AvoidPwlCurve) that instructs Ayam to avoid the usage of gluPwlCurve(). This parameter is enabled by default.

Users of the current release (Ayam 1.20) can enforce this by elevating the order of all polygonal trims to 3 prior to tessellation.

 
Depending on the actual tessellation mode, the tessellation fidelity near the trims may still leave something to be desired. This can be ameliorated by refining the trim curves for tessellation. Consequently, the tessellation GUI and TP tags have been enhanced with another parameter (RefineTrims) that controls how many times the trim curves are to be refined before being sent to GLU. See the following example of a simple planar NURBS patch trimmed by the standard NURBS circle:

Example Tessellations (left: RefineTrims 0, right: RefineTrims 2)
 
Note the rugged tessellation along the trim curve on the left patch whereas the trim on the right patch displays a nearly perfect circular hole. But we need much more triangles to do this, right? Wrong! The left tessellation results in 201 triangles, whereas the much nicer tessellation on the right hand side consists of 208 triangles.

See Changes.txt for a complete list of changes.

 

29. Jun 2014

The wire support for NURBS patches in X3D export has been enhanced to also cover trimmed patches:

X3D Export Wire Support for Trimmed NURBS  
 
The partially invisible wires are due to lower sampling quality of the underlying surface, to keep the file size down to a manageable 308kB. (The Ayam scene file of this object weighs a mere 1464 bytes, as the trim curves are generated by a Clone object and bevel and cap surface are also automatically generated.)
The trimmed wire geometry stems from the STESS tessellation, which has been improved greatly in terms of robustness, speed, and memory consumption in the progress.
Current work in this area is focused on improving the visibility of the wires by an adaptive offset and more tessellation configuration options.

See Changes.txt for a complete list of changes.

 

23. May 2014

A draft of the documentation for the upcoming Ayam 1.21 is now available.
 

20. May 2014

  • In the course of the retirement of SourceForge hosted apps, the Ayam Wiki was disabled altogether. You did not use it anyway.
  • The Trim object now has an option to control how the trim curves are to be scaled to the surface parameter space and works better with curve providing objects as trim curves.
  • Gordon objects automatic corner matching now also works with ACurve, ICurve, and curve providing objects (but the latter are never modified).
  • There is now a stripped down version of the notifyOb command available in Script objects. Thus, Script objects can now create and control tool objects (e.g. Sweep) more easily.
  • Based on the already working basis transformation for bicubic patches (see the new command tobasisPM), current activities are focused on improving the PatchMesh conversion to NURBS patches and therefore display of PatchMeshes with arbitrary bases.
 

5. Apr 2014

Here is a summary of other changes of Ayam in the CVS head:
  • Automatic instancing and recursive resolving of instances now have a scope parameter.
  • Removing complex object hierarchies with instances, and management of those hierarchies using the object clipboard works much better now.
  • The rendering GUI is more stable and can read progress data from the stderr channel (this is important for e.g. Gelato).
  • In object picking mode, the potentially picked objects can now be highlighted when the mouse pointer hovers over them, as it already works for points in the point edit modes. See the new hidden preference setting FlashObjects.
  • For illustration purposes, there is now also a plugin that exports data from the feedback buffer (i.e. OpenGL fragments) to vector based image formats (e.g. PostScript or SVG). The plugin is based on gl2ps and more useful for line drawings than shaded displays.
 

30. Mar 2014

Introducing a new drawing mode HiddenWire with advanced (albeit image based) silhouette detection:

HiddenWire Drawing Mode

The silhouette display works even better in anti-aliased mode:

HiddenWire Drawing Mode with AA

For comparison, here is the result of the normal wire drawing mode:

Wire Drawing Mode

Get the CVS-Head for your own experiments.

 

17. Mar 2014

Complementing the 3D-bevels there is now a 3D cap generation mode, that, in conjunction with round to cap bevels (see below), closes the heavily edited truncated cone smoothly:

3D Cap and Round to Cap Bevel  

 

 

Archive

Read the old news from:

top of page


Randolf Schultz, 12. Jan 2018
randolf.schultz@gmail.com