Ayam Changelog

What's new in Ayam 1.23

Jan 15, 2016
  • Bug Fixes:
  • DXF export of polymeshes misses transformation attributes (SF 508)
  • OBJ export of Box objects is broken (SF 509)
  • Tcl error when loading the objiplugin (SF 510)
  • extraction of complete boundary curve from rational surface (SF 511)
  • Tcl error when expanding/collapsing all tree nodes via context menu (SF 512)
  • Tcl error when removing property without selection (SF 513)
  • knot refinement/removal of rational curves/surfaces changes shape (SF 514)
  • edit points action loses the selected point (SF 515)
  • auto-generated texture coordinates are wrong (SF 516)
  • grids are not drawing in upright views (SF 517)
  • IPatch objects with manual derivatives are wrong (SF 518)
  • custom bevel curves are not found when level is hidden (SF 521)
  • creating polymeshes from scripts fails when -cn is used (SF 522)
  • creating subdivison meshes from scripts fails when -cn is used (SF 523)
  • Modelling:
  • Revolve objects now support parameter curves that touch or cross the y-axis in B-Spline mode
  • added preference option "Modelling/PickCycle" that controls wether further clicks should cycle through the candidates when picking objects
  • added "Primitives" option tNURBS tesselation that allows teither keep the quads generated by GLU or synthesize new quads
  • added tesselation mode "AdaptiveKnotDistance" that is easier thandle than AdaptiveDomainDistance and delivers more consistent tesselations
  • improved the subdivision compatibility of tesselated NURBS surfaces
  • improved shading of various solid primitives for CSG preview using AyCSG
  • added PV tag support tPolyMesh optimization
  • added a tool that connects twPolyMesh objects via a common boundary (trealize watertight NURBS tesselation)
  • added interactive action tselect all points of a boundary of a PolyMesh by picking a point on that boundary, started via new shortcut
  • default shortcut for "Set Mark tBoundaryBox Center" is now
  • added tool tmake NURBS surfaces compatible
  • added tool tcheck the compatibility of NURBS surfaces
  • added option tcompatibility checking/making for NURBS surfaces tonly adapt orders/lengths
  • IPatch objects with automatic derivatives nlonger present those as editable points when e.g. the "select all points" action is used
  • improved accuracy of point picking in perspective views
  • RoundToCap bevels on planar boundaries now preserve planarity and shape created by rational coordinates
  • GUI:
  • moved some search options ta new section "Advanced Options" that will be shown on request/click only
  • added "InvertMatch" search option
  • improved default slider ranges of tesselation GUI
  • the tesselation GUI now avoids unnecessary re-tesselations (that e.g. occurred when the mouse pointer entered the slider widget)
  • refined the tesselation default parameters
  • tesselation parameters for different tesselation modes are now saved separately in the tesselation GUI
  • Plugins:
  • improved conversion of open PolyMesh objects tSDNPatch objects
  • Scripts/Scripting Interface:
  • added "-level" option t"isCompNC" command
  • added "isCompNP command tcheck NURBS surfaces for compatibility
  • added "registerTag" command timprove tag type management for scripts
  • added example/helper script "cvview.tcl" that displays control vertices in a property GUI
  • added example/helper scripts "tweenc.tcl"/"tweencgui.tcl" that allow ttween incompatible curves using a Script object
  • added command "remsnPo" tremove the smooth normals from a PolyMesh
  • added command "flipPo" tflip normals and/or loops of a PolyMesh
  • added command "setTag" tset/add a single tag
  • Import/Export:
  • added "RationalStyle" option tWavefront OBJ import/export
  • added "RationalStyle" option tX3D import/export
  • added "RationalStyle" option t3DMF import/export

New in Ayam 1.22 (Jan 15, 2016)

  • Bug Fixes:
  • silhouettes are missing when draw selection only is active (SF 499)
  • moving objects in the hierarchy by keyboard does not notify/redraw (SF 500)
  • save selected misses the first of the selected objects (SF 501)
  • rotation attributes swapped after normalization (SF 502)
  • crash when automatic instancing compares tags (SF 503)
  • automatic instancing creates instances of light sources (SF 504)
  • conversion of patchmesh objects with height > 4 (SF 505)
  • orientation of hole bevels in extrusion objects (SF 506)
  • loading of multiple files from a different directory via command line arguments (SF 507)
  • Modelling:
  • added option tdisplay rational points in homogeneous style (new preference option "Modelling/RationalPoints")
  • NURBS tesselation using STESS is much faster now; in addition, constant re-tesselation when using interactive modelling actions is avoided by caching twvariants of the tesselation
  • allow negative values for "ToleranceA" that result in a relative scaling of the sampling tolerance
  • improved bevel and cap integration
  • custom knots of concatenated curves/surfaces (ConcatNC/ConcatNP objects) now preserve the relative knot ranges of the parameter objects
  • creating trim rectangles now works with NPatch providing objects
  • GUI:
  • the Shaders preference setting now supports path globbing
  • the about dialog now only displays the available OpenGL/GLU extensions on request/click for a cleaner initial layout
  • improved selection handling after paste (pasted objects are now selected)
  • improved startup error reporting on Win32
  • selection of last object upon "empty" click intthe tree widget can now be turned off via hidden preference setting "SelectLast"
  • improved focus management of object tree/list and internal view windows
  • tool dialogs now use the standard UI elements from property GUIs, element types are inferred from the default/current values, the old style UIs can alsbe enabled via the hidden preference setting "SimpleToolGUI"
  • improved balloon timing on main labels
  • add simple search variant (on types, names, and materials) tobject search facility
  • improved visibility of direction arrows
  • Scripts/Scripting Interface:
  • added commands ttween NURBS curves and surfaces ("tweenNC" and "tweenNP")
  • improved error reporting of "forAll" procedure
  • added script "dtree.tcl" that speeds up working with many objects
  • Import/Export:
  • X3D import of extrusion nodes improved
  • improved attributes of object instances imported from RIB files
  • added handling of RiOrientation (handedness) tRIB import
  • added progress report and cancel functionality tRIB import
  • improved import of spot lights in RIB import

New in Ayam 1.21 (Feb 9, 2015)

  • BUG FIXES:
  • "Reset Transformation" does not clear the Quaternion display (SF 3514199)
  • crash when removing wrong trim curves from patches (SF 3514206)
  • some ConcatNP fillet patches are missing (SF 3514939)
  • pick candidates dialog disappears after resize (SF 3522093)
  • file dialogs freeze Ayam on Aqua when called from other dialog (SF 3527583)
  • getProperty/setProperty when listbox is active (SF 3559398)
  • deleting the copy of a material de-registers original material (SF 3568001)
  • shaders searchpath RiOption is not set in exported RIBs (SF 3568003)
  • clamping a periodic curve does not reset the curve type (SF 3579550)
  • crash when computing the curvature of a linear curve (SF 3588209)
  • read only points of quadrics after thetamax changes (SF 3601813)
  • X3D export of fieldOfView viewpoint attribute (SF 3604133)
  • X3D export of PolyMesh normals (SF 3604132)
  • X3D element misses mandatory profile specification (SF 3604137)
  • X3D export of tool objects caps and bevels (SF 3604907)
  • getPnt/setPnt for IPatch (SF 488)
  • elevating periodic NURBS surfaces with knot type Chordal or
  • Centripetal (SF 490)
  • crash when tesselating complex hierarchies with instances (SF 492)
  • new views dnot inherit the global mark (SF 493)
  • crash when reading PatchMesh objects with custom basis (SF 494)
  • crash when importing RIB with RiIlluminate (SF 495)
  • ConcatNC fails tcreate custom knots (SF 496)
  • curve type after knot refinement (SF 497)
  • export of Mirror objects (SF 498)
  • MODELLING:
  • added "Compatible" option tConcatNP objects, tprevent unwanted
  • modifications by clamping for already compatible parameter surfaces
  • Cap and Bevel options are now controlled via own property GUIs
  • added cap types "Simple" and "Simple3D" that both create a simple
  • surface that runs towards the center point of the surface
  • added bevel option "Integrate" tcombine the bevel with the surface
  • tbe beveled
  • added cap option "Integrate" tcombine the cap with the surface
  • tbe capped (or the respective bevel, if there is one in between)
  • Caps and Bevels are now available for many more object types,
  • e.g. IPatch, NPatch, ConcatNP, Birail1, Birail2, Skin...
  • added 3D bevel mode controlled via normals and tangents e.g. extracted
  • from a surface by an ExtrNC object
  • added bevel mode that rounds tthe cap alsusing tangent information
  • added bevel mode that rounds tthe normal alsusing tangent information
  • Bevel orientations are now consistent (independent from curve winding)
  • Bevels from simple closed or periodic curves are now guaranteed tbe
  • closed or periodic also
  • added C1 fillets based on global interpolation with end derivatives to
  • the ConcatNC object (C1 mode is activated by setting the FTLength parameter
  • t0.0)
  • negative ConcatNC FTLength parameters values are now interpreted in absolute
  • coordinates
  • improved offset curves of closed curves in section mode
  • Skin objects nlonger modify (e.g. clamp) the parameter curves when
  • the curves are already compatible
  • creating Sweep and Swing objects now automatically rotates parameter curves
  • defined in the XY plane (the default) tthe appropriate plane
  • new objects will now be created at the mark, if the new preference
  • option "CreateAtMark" is enabled (default: yes) and if the objects
  • are not potential parent objects
  • the mark may now be set by double-clicking with the right mouse button
  • if the mark is set by clicking inta view, the respective z coordinate of
  • the mark is nlonger set tzer(when the preference option "GlobalMark"
  • is activated); this allows tset a 3D mark using twclicks in twviews
  • the mark can now be set directly ontpicked points of objects
  • improved face normal generation for PolyMesh and SDMesh objects through
  • application of the Newell normal calculation algorithm
  • caching the face normals for PolyMesh and SDMesh objects leads tmuch
  • faster redraw of these objects
  • added smooth normal generation for PolyMesh objects
  • added view action tzoom out tthe whole scene, the action is bound
  • tthe backspace-key
  • improved the "zoom tobject" view action tproperly adjust the clipping
  • planes, light positions, and the camera position for perspective views,
  • therefore, modelling with very small or very large objects gets a bit easier
  • improved clone placement on open trajectory curves (the trajectory is
  • now completely filled)
  • added unclamping facility for NURBS curves and surfaces
  • added curve extension (ta point) modelling tool
  • NURBS curve/surface type detection is now faster and more robust
  • skinning curves that touch at their endpoints with custom knots now works
  • many NURBS curve/surface tools nlonger unconditionally set the
  • respective knot type t"Custom" but rather infer a proper new type
  • improved picking of points for very large or very small objects
  • improved closing of surfaces
  • added a second set of drawing/display parameters that is in effect
  • when interactive modelling or view actions are active
  • added support for Trim objects tview type Trim
  • improved robustness of Gordon caps
  • added modelling action treset the weight of selected control points;
  • the shortcut tstart this action is , the shortcut for the action
  • treset all weights at once is now
  • deleting objects is now more robust for complex hierarchies with
  • master and instance objects
  • creating Instance objects now silently creates instances of the original
  • master when an Instance is selected (instead of raising an error)
  • the refine curve tool now alssupports ICurve and ACurve objects
  • patch meshes now alsmaintain an "IsRat" attribute
  • patch meshes now alssupport the "Power" basis type
  • patch meshes now always convert ta single NURBS patch (are therefore
  • easier tpost process using Script or Trim objects) and the conversion
  • now alssupports arbitrary basis types
  • added object flashing facility tthe object picking (activated
  • via new preference option "FlashObjects")
  • added support for ACurve objects and NCurve providing objects tGordon
  • objects WatchCorners feature
  • added "ScaleMode" option tTrim object controlling how tscale the
  • trim tthe parametric space of the NURBS surface
  • improved transformation attribute support of Script objects
  • improved notification and conversion of Script objects that create
  • Instances or objects with materials
  • improved STESS tesselation of trimmed NURBS in terms of robustness,
  • tesselation speed, drawing speed, and memory requirements
  • improved STESS shading of trimmed NURBS
  • improved display of trimmed NURBS using GLU by introduction of the
  • hidden preference setting "AvoidPwlCurve" (enabled by default)
  • refining the knots of periodic curves now inserts knots intall knot
  • sections (not maintaining the periodic ends, but this can still be
  • achieved by using the new refineknNC command option "-m")
  • scaling trim curves tnew knot ranges now alsworks with object
  • types different from NCurve (e.g. ICurve and ACurve)
  • added tesselation GUI option and TP tag parameter "RefineTrims" that
  • controls how many times the trim curves are tbe refined prior to
  • tesselation for improved tesselation fidelity along trim edges
  • added specialized polygon based tesselator for planar trimmed patches
  • tSTESS tesselation
  • added "ConvertTags" preference option that controls which tags are to
  • be copied during conversion and provide
  • concatenating NURBS surfaces via ConcatNP objects now supports trim curves
  • offset surfaces (OffsetNP) and normal extraction (in the ExtrNC object)
  • now support degenerate surfaces
  • rotate and scale about interactive modelling actions now round the
  • resulting transformation attributes or modified points ta specified
  • number of digits tavoid displaying unreadable numbers in the respective
  • property GUI or building up larger rounding errors in longer sequences of
  • modelling operations
  • GUI:
  • the default value menu buttons of property GUI elements now display a
  • triangle instead of the text label "Def"
  • revamped design of parameter property GUI user interface element
  • (triangles are now used for the value manipulation buttons instead of
  • the text labels "/2" and "*2" respectively)
  • added internal resize widget tscript text editor of Script object
  • improved dialog box appearance on X11
  • the "CloneAttr" property now alsdisplays the quaternion in abbreviated
  • fashion
  • the shaders preference setting GUI element now allows tdirectly
  • choose directories
  • the Tags property GUI now issues a proper notification when applied
  • there is now a dialog for the management of property GUIs via NP/RP tags
  • (new main menu entries: "Special/Tags/Add Property" and "Remove Property")
  • objects can now be moved easily in the current level using the new
  • keyboard shortcuts /
  • added keyboard shortcuts tswitch all views tpoint/object modelling
  • ( and respectively)
  • when loading scenes, material objects are now automatically renamed when
  • the initial attempt tregister the material fails (this happens when
  • the material is already present in the scene under this name)
  • removed the highlight material feature
  • added a search facility that allows tsearch for objects given criteria
  • like e.g. names, types, materials, property values;
  • the found objects can just be highlighted in the object tree, or arbitrary
  • commands can be executed on them
  • in property GUIs and dialogs, now opens the default value
  • option menu of the current element
  • the help keyboard binding () now alsworks in all property GUI
  • and dialog entry fields and other user interface elements
  • added mnemonic handling tinternal view menus and grid menu
  • walking up in the object hierarchy via the object listbox now selects
  • the proper object (the former parent)
  • the UI of the tesselation tool has been improved (the "SaveToTag" option
  • is now a major "Save" button)
  • now toggles the hide attribute (instead of just setting it)
  • the standard console prompt now alsdisplays the name of the modelling
  • action that can be repeated (via menu "Tools/Repeat", )
  • improved drawing quality of antialiased NURBS
  • added preference option "SaveDialogGeom" that controls saving the geometry
  • of various dialog windows
  • removed preference option "SavePrefsGeom" in favor of "SaveDialogGeom" above
  • added hidden preference option "PanDist" that controls the amount of
  • view window panning for keyboard presses
  • "Special/Instances/Resolve all Instances" now resolves even nested instances
  • added a "Scope" option tthe automatic instancing and resolve instances
  • dialogs
  • improved rendering GUI geometry management
  • rendering GUIs can now alsparse the progress from the stderr channel
  • improved closing of the rendering GUI, it is more robust now
  • the numeric point edit dialog now has a context menu that allows to
  • clear or reset all entries, as well as tfetch the mark coordinates
  • added keyboard shortcuts trecursively open/close whole sub-trees (/)
  • added drawing mode "HiddenWire" (with silhouettes)
  • menu browsing now manages the action state of all views tallow faster
  • redraws
  • added hidden options tayamrc that control whether the standard file
  • dialog (on Unix) shows hidden files ("FDShowHidden" and "FDShowHiddenBtn")
  • added a patched version of the standard Tk file dialog that now has an
  • additional keyboard shortcut () tchange tthe parent directory
  • improved drawing of the parametric domain in views of type "Trim"
  • improved visibility of the mark by using double-width lines and deriving
  • the mark size from the handle size
  • improved visibility of the curve/surface direction annotation likewise
  • added a "Reset All!" command entry tthe tesselation dialog
  • improved initial and default parameters of the tesselation dialog
  • improved focus management of the Alt-Rotate view action on Win32 sthat
  • e.g. the mouse wheel keeps working after usage of the Alt key all the time
  • zooming of view windows with the mouse wheel is nlonger clogging the
  • undsystem
  • simple clicks intthe view window nlonger generate unnecessary entries
  • in the undbuffer for view actions
  • the UndoLevels preference setting now uses more natural values for
  • "off" (0) and "one state tundo" (1)
  • added keyboard shortcuts tcycle/modify the grid size (/)
  • added some tool object creating tools tCreate menu
  • SCRIPTS/SCRIPTING INTERFACE:
  • added luainterp plugin tsupport the Lua scripting language
  • the "applyTrafo" command now applies the transformations tall points by
  • default and is more robust wrt. non-editable points and objects without points
  • the "estlenNC" command now supports an optional parameter "-trafo" that
  • controls whether the transformation attributes should be applied tthe curve
  • the "apnt.tcl" script now alsbinds tthe select all/npoints shortcuts
  • tenable/disable the point modelling mode
  • "getProperty"/"setProperty" nlonger need a correctly updated current level
  • in the Tcl GUI context (object listbox or tree)
  • "getProperty"/"setProperty" now alswork with multiple selected objects
  • added script "rc.tcl" that swaps cursor key bindings in parallel views
  • the "getSel" command nlonger unconditionally writes tglobal variables
  • added command "clearClip" tclear the clipboard
  • added option "-add" t"copOb" and "cutOb" commands tallow collecting
  • objects in the clipboard
  • the "aytest.tcl" script now allows more fine grained test selection per GUI
  • Material objects can nlonger be renamed via "nameOb" (as this command
  • does not update the material registry)
  • the "makeCompNC" command nlonger unconditionally clamps the parameter
  • curves (unless the new option "-force" is given)
  • added command "isCompNC" tcheck curves for compatibility
  • added command "hasTag" tquickly check for the existence of a tag
  • renamed "splitNP" command t"breakNP" tavoid confusion with the real
  • surface splitting commands "splituNP" and "splitvNP"
  • the "breakNP" command options now need a "-" and the command now supports
  • "-a" for "apply transformations"
  • added options t"buildNP" that allow tcontrol order, knot type, and
  • surface type
  • added support for another PV tag data type ('d'), that stores RGBA
  • colors and is expanded properly tCs _and_ Os upon RIB export
  • added commands tgenerate face and smooth PolyMesh normals:
  • "genfnPo" and "gensnPo"
  • the "getPnt" command now supports NURBS evaluation for objects that provide
  • NURBS curves/surfaces
  • added example Script object script "tcone.tcl" that creates truncated cones
  • improved the notification mechanism for Script object scripts
  • added "-check" option t"convOb" allowing ttest beforehand whether a
  • conversion ta given type would be successful
  • improved options of "forAll" procedure, they are now more easy to
  • recognize
  • "forAll" can now alsrecurse after the command has been called
  • removed "forAllT" procedure, use "forAll" with "-type" option instead
  • the "tonpatch.tcl" and "topoly.tcl" scripts now work with more object
  • types (e.g. Script, Mirror)
  • scripts now have access tthe mark through the global array "aymark"
  • added script "myicons.tcl" that allows the user tload an own set of
  • icons intthe application
  • added "crtTrimRect" command, now supporting multiple selected NPatch
  • objects and always linking the rectangle as first object
  • "crtNRect" now always creates centered rectangles of given width/height
  • "crtClosedBS" command options are now more legible
  • "estlenNC" now works for multiple selected objects
  • "extrNP" command now supports NPatch providing objects
  • added support for trim boundary extraction tExtrNC object
  • added a stripped down version of "notifyOb" tthe safe interpreter
  • added support for true booleans and Tcl wide ints tjsinterp (JavaScript)
  • data conversion
  • improved jsinterp error reporting
  • "aac" and "aapnt" scripts now appear and convey their keyboard shortcut in
  • the Custom menu
  • added "getTag" command tget a specific tag
  • added "-get" subcommand t"selPnts" command
  • the "delTags" command now alssupports calling without parameters to
  • remove all tags
  • added helper script "ssp.tcl" that introduces saving of the point selection
  • ta tag
  • IMPORT/EXPORT:
  • X3D export now has a special mode tinject the exported X3D scene
  • inta XHTML template file (new export option "WriteX3dom")
  • X3D export of NURBS surfaces and PolyMesh objects now support the export
  • of a wireframe (via new export control tag "AsWire")
  • X3D export of PolyMesh objects with face normals
  • X3D export now creates simple material nodes
  • (new export option "WriteMaterials")
  • X3D export of NURBS curves of order 2 now creates Polyline primitives
  • X3D import of viewpoints now creates correct camera attributes
  • X3D import now supports "StaticGroup" nodes
  • improved temporary and archive RIB file names for direct rendering with Gelato
  • added progress parsing template for Gelato
  • Rhin3DM export of PolyMesh objects now supports face normals and colors
  • improved import of closed polylines from DXF
  • improved import of patches and patch meshes with arbitrary basis types
  • from RIB files
  • improved trim curve attribute handling for RIB import
  • PLUGINS:
  • added plugin "sfcurve" that creates superformula curves
  • added plugin "printps" that creates EPS/PDF/SVG files from drawings
  • in Ayam view windows
  • DOCUMENTATION/EXAMPLE FILES:
  • added an overview tthe table of contents
  • improved modelling tools and objects chapter structures by inserting
  • intermediate tool/object category sections

New in Ayam 1.21 Beta (Jan 29, 2015)

  • BUG FIXES:
  • "Reset Transformation" does not clear the Quaternion display (SF 3514199)
  • crash when removing wrong trim curves from patches (SF 3514206)
  • some ConcatNP fillet patches are missing (SF 3514939)
  • pick candidates dialog disappears after resize (SF 3522093)
  • file dialogs freeze Ayam on Aqua when called from other dialog (SF 3527583)
  • getProperty/setProperty when listbox is active (SF 3559398)
  • deleting the copy of a material de-registers original material (SF 3568001)
  • shaders searchpath RiOption is not set in exported RIBs (SF 3568003)
  • clamping a periodic curve does not reset the curve type (SF 3579550)
  • crash when computing the curvature of a linear curve (SF 3588209)
  • read only points of quadrics after thetamax changes (SF 3601813)
  • X3D export of fieldOfView viewpoint attribute (SF 3604133)
  • X3D export of PolyMesh normals (SF 3604132)
  • X3D element misses mandatory profile specification (SF 3604137)
  • X3D export of tool objects caps and bevels (SF 3604907)
  • getPnt/setPnt for IPatch (SF 488)
  • elevating periodic NURBS surfaces with knot type Chordal or
  • Centripetal (SF 490)
  • crash when tesselating complex hierarchies with instances (SF 492)
  • new views dnot inherit the global mark (SF 493)
  • crash when reading PatchMesh objects with custom basis (SF 494)
  • crash when importing RIB with RiIlluminate (SF 495)
  • ConcatNC fails tcreate custom knots (SF 496)
  • curve type after knot refinement (SF 497)
  • export of Mirror objects (SF 498)
  • MODELLING:
  • added "Compatible" option tConcatNP objects, tprevent unwanted
  • modifications by clamping for already compatible parameter surfaces
  • Cap and Bevel options are now controlled via own property GUIs
  • added cap types "Simple" and "Simple3D" that both create a simple
  • surface that runs towards the center point of the surface
  • added bevel option "Integrate" tcombine the bevel with the surface
  • tbe beveled
  • added cap option "Integrate" tcombine the cap with the surface
  • tbe capped (or the respective bevel, if there is one in between)
  • Caps and Bevels are now available for many more object types,
  • e.g. IPatch, NPatch, ConcatNP, Birail1, Birail2, Skin...
  • added 3D bevel mode controlled via normals and tangents e.g. extracted
  • from a surface by an ExtrNC object
  • added bevel mode that rounds tthe cap alsusing tangent information
  • added bevel mode that rounds tthe normal alsusing tangent information
  • Bevel orientations are now consistent (independent from curve winding)
  • Bevels from simple closed or periodic curves are now guaranteed tbe
  • closed or periodic also
  • added C1 fillets based on global interpolation with end derivatives to
  • the ConcatNC object (C1 mode is activated by setting the FTLength parameter
  • t0.0)
  • negative ConcatNC FTLength parameters values are now interpreted in absolute
  • coordinates
  • improved offset curves of closed curves in section mode
  • Skin objects nlonger modify (e.g. clamp) the parameter curves when
  • the curves are already compatible
  • creating Sweep and Swing objects now automatically rotates parameter curves
  • defined in the XY plane (the default) tthe appropriate plane
  • new objects will now be created at the mark, if the new preference
  • option "CreateAtMark" is enabled (default: yes) and if the objects
  • are not potential parent objects
  • the mark may now be set by double-clicking with the right mouse button
  • if the mark is set by clicking inta view, the respective z coordinate of
  • the mark is nlonger set tzer(when the preference option "GlobalMark"
  • is activated); this allows tset a 3D mark using twclicks in twviews
  • the mark can now be set directly ontpicked points of objects
  • improved face normal generation for PolyMesh and SDMesh objects through
  • application of the Newell normal calculation algorithm
  • caching the face normals for PolyMesh and SDMesh objects leads tmuch
  • faster redraw of these objects
  • added smooth normal generation for PolyMesh objects
  • added view action tzoom out tthe whole scene, the action is bound
  • tthe backspace-key
  • improved the "zoom tobject" view action tproperly adjust the clipping
  • planes, light positions, and the camera position for perspective views,
  • therefore, modelling with very small or very large objects gets a bit easier
  • improved clone placement on open trajectory curves (the trajectory is
  • now completely filled)
  • added unclamping facility for NURBS curves and surfaces
  • added curve extension (ta point) modelling tool
  • NURBS curve/surface type detection is now faster and more robust
  • skinning curves that touch at their endpoints with custom knots now works
  • many NURBS curve/surface tools nlonger unconditionally set the
  • respective knot type t"Custom" but rather infer a proper new type
  • improved picking of points for very large or very small objects
  • improved closing of surfaces
  • added a second set of drawing/display parameters that is in effect
  • when interactive modelling or view actions are active
  • added support for Trim objects tview type Trim
  • improved robustness of Gordon caps
  • added modelling action treset the weight of selected control points;
  • the shortcut tstart this action is , the shortcut for the action
  • treset all weights at once is now
  • deleting objects is now more robust for complex hierarchies with
  • master and instance objects
  • creating Instance objects now silently creates instances of the original
  • master when an Instance is selected (instead of raising an error)
  • the refine curve tool now alssupports ICurve and ACurve objects
  • patch meshes now alsmaintain an "IsRat" attribute
  • patch meshes now alssupport the "Power" basis type
  • patch meshes now always convert ta single NURBS patch (are therefore
  • easier tpost process using Script or Trim objects) and the conversion
  • now alssupports arbitrary basis types
  • added object flashing facility tthe object picking (activated
  • via new preference option "FlashObjects")
  • added support for ACurve objects and NCurve providing objects tGordon
  • objects WatchCorners feature
  • added "ScaleMode" option tTrim object controlling how tscale the
  • trim tthe parametric space of the NURBS surface
  • improved transformation attribute support of Script objects
  • improved notification and conversion of Script objects that create
  • Instances or objects with materials
  • improved STESS tesselation of trimmed NURBS in terms of robustness,
  • tesselation speed, drawing speed, and memory requirements
  • improved STESS shading of trimmed NURBS
  • improved display of trimmed NURBS using GLU by introduction of the
  • hidden preference setting "AvoidPwlCurve" (enabled by default)
  • refining the knots of periodic curves now inserts knots intall knot
  • sections (not maintaining the periodic ends, but this can still be
  • achieved by using the new refineknNC command option "-m")
  • scaling trim curves tnew knot ranges now alsworks with object
  • types different from NCurve (e.g. ICurve and ACurve)
  • added tesselation GUI option and TP tag parameter "RefineTrims" that
  • controls how many times the trim curves are tbe refined prior to
  • tesselation for improved tesselation fidelity along trim edges
  • added specialized polygon based tesselator for planar trimmed patches
  • tSTESS tesselation
  • added "ConvertTags" preference option that controls which tags are to
  • be copied during conversion and provide
  • concatenating NURBS surfaces via ConcatNP objects now supports trim curves
  • offset surfaces (OffsetNP) and normal extraction (in the ExtrNC object)
  • now support degenerate surfaces
  • rotate and scale about interactive modelling actions now round the
  • resulting transformation attributes or modified points ta specified
  • number of digits tavoid displaying unreadable numbers in the respective
  • property GUI or building up larger rounding errors in longer sequences of
  • modelling operations
  • GUI:
  • the default value menu buttons of property GUI elements now display a
  • triangle instead of the text label "Def"
  • revamped design of parameter property GUI user interface element
  • (triangles are now used for the value manipulation buttons instead of
  • the text labels "/2" and "*2" respectively)
  • added internal resize widget tscript text editor of Script object
  • improved dialog box appearance on X11
  • the "CloneAttr" property now alsdisplays the quaternion in abbreviated
  • fashion
  • the shaders preference setting GUI element now allows tdirectly
  • choose directories
  • the Tags property GUI now issues a proper notification when applied
  • there is now a dialog for the management of property GUIs via NP/RP tags
  • (new main menu entries: "Special/Tags/Add Property" and "Remove Property")
  • objects can now be moved easily in the current level using the new
  • keyboard shortcuts /
  • added keyboard shortcuts tswitch all views tpoint/object modelling
  • ( and respectively)
  • when loading scenes, material objects are now automatically renamed when
  • the initial attempt tregister the material fails (this happens when
  • the material is already present in the scene under this name)
  • removed the highlight material feature
  • added a search facility that allows tsearch for objects given criteria
  • like e.g. names, types, materials, property values;
  • the found objects can just be highlighted in the object tree, or arbitrary
  • commands can be executed on them
  • in property GUIs and dialogs, now opens the default value
  • option menu of the current element
  • the help keyboard binding () now alsworks in all property GUI
  • and dialog entry fields and other user interface elements
  • added mnemonic handling tinternal view menus and grid menu
  • walking up in the object hierarchy via the object listbox now selects
  • the proper object (the former parent)
  • the UI of the tesselation tool has been improved (the "SaveToTag" option
  • is now a major "Save" button)
  • now toggles the hide attribute (instead of just setting it)
  • the standard console prompt now alsdisplays the name of the modelling
  • action that can be repeated (via menu "Tools/Repeat", )
  • improved drawing quality of antialiased NURBS
  • added preference option "SaveDialogGeom" that controls saving the geometry
  • of various dialog windows
  • removed preference option "SavePrefsGeom" in favor of "SaveDialogGeom" above
  • added hidden preference option "PanDist" that controls the amount of
  • view window panning for keyboard presses
  • "Special/Instances/Resolve all Instances" now resolves even nested instances
  • added a "Scope" option tthe automatic instancing and resolve instances
  • dialogs
  • improved rendering GUI geometry management
  • rendering GUIs can now alsparse the progress from the stderr channel
  • improved closing of the rendering GUI, it is more robust now
  • the numeric point edit dialog now has a context menu that allows to
  • clear or reset all entries, as well as tfetch the mark coordinates
  • added keyboard shortcuts trecursively open/close whole sub-trees (/)
  • added drawing mode "HiddenWire" (with silhouettes)
  • menu browsing now manages the action state of all views tallow faster
  • redraws
  • added hidden options tayamrc that control whether the standard file
  • dialog (on Unix) shows hidden files ("FDShowHidden" and "FDShowHiddenBtn")
  • added a patched version of the standard Tk file dialog that now has an
  • additional keyboard shortcut () tchange tthe parent directory
  • improved drawing of the parametric domain in views of type "Trim"
  • improved visibility of the mark by using double-width lines and deriving
  • the mark size from the handle size
  • improved visibility of the curve/surface direction annotation likewise
  • added a "Reset All!" command entry tthe tesselation dialog
  • improved initial and default parameters of the tesselation dialog
  • improved focus management of the Alt-Rotate view action on Win32 sthat
  • e.g. the mouse wheel keeps working after usage of the Alt key all the time
  • zooming of view windows with the mouse wheel is nlonger clogging the
  • undsystem
  • simple clicks intthe view window nlonger generate unnecessary entries
  • in the undbuffer for view actions
  • the UndoLevels preference setting now uses more natural values for
  • "off" (0) and "one state tundo" (1)
  • added keyboard shortcuts tcycle/modify the grid size (/)
  • added some tool object creating tools tCreate menu
  • SCRIPTS/SCRIPTING INTERFACE:
  • added luainterp plugin tsupport the Lua scripting language
  • the "applyTrafo" command now applies the transformations tall points by
  • default and is more robust wrt. non-editable points and objects without points
  • the "estlenNC" command now supports an optional parameter "-trafo" that
  • controls whether the transformation attributes should be applied tthe curve
  • the "apnt.tcl" script now alsbinds tthe select all/npoints shortcuts
  • tenable/disable the point modelling mode
  • "getProperty"/"setProperty" nlonger need a correctly updated current level
  • in the Tcl GUI context (object listbox or tree)
  • "getProperty"/"setProperty" now alswork with multiple selected objects
  • added script "rc.tcl" that swaps cursor key bindings in parallel views
  • the "getSel" command nlonger unconditionally writes tglobal variables
  • added command "clearClip" tclear the clipboard
  • added option "-add" t"copOb" and "cutOb" commands tallow collecting
  • objects in the clipboard
  • the "aytest.tcl" script now allows more fine grained test selection per GUI
  • Material objects can nlonger be renamed via "nameOb" (as this command
  • does not update the material registry)
  • the "makeCompNC" command nlonger unconditionally clamps the parameter
  • curves (unless the new option "-force" is given)
  • added command "isCompNC" tcheck curves for compatibility
  • added command "hasTag" tquickly check for the existence of a tag
  • renamed "splitNP" command t"breakNP" tavoid confusion with the real
  • surface splitting commands "splituNP" and "splitvNP"
  • the "breakNP" command options now need a "-" and the command now supports
  • "-a" for "apply transformations"
  • added options t"buildNP" that allow tcontrol order, knot type, and
  • surface type
  • added support for another PV tag data type ('d'), that stores RGBA
  • colors and is expanded properly tCs _and_ Os upon RIB export
  • added commands tgenerate face and smooth PolyMesh normals:
  • "genfnPo" and "gensnPo"
  • the "getPnt" command now supports NURBS evaluation for objects that provide
  • NURBS curves/surfaces
  • added example Script object script "tcone.tcl" that creates truncated cones
  • improved the notification mechanism for Script object scripts
  • added "-check" option t"convOb" allowing ttest beforehand whether a
  • conversion ta given type would be successful
  • improved options of "forAll" procedure, they are now more easy to
  • recognize
  • "forAll" can now alsrecurse after the command has been called
  • removed "forAllT" procedure, use "forAll" with "-type" option instead
  • the "tonpatch.tcl" and "topoly.tcl" scripts now work with more object
  • types (e.g. Script, Mirror)
  • scripts now have access tthe mark through the global array "aymark"
  • added script "myicons.tcl" that allows the user tload an own set of
  • icons intthe application
  • added "crtTrimRect" command, now supporting multiple selected NPatch
  • objects and always linking the rectangle as first object
  • "crtNRect" now always creates centered rectangles of given width/height
  • "crtClosedBS" command options are now more legible
  • "estlenNC" now works for multiple selected objects
  • "extrNP" command now supports NPatch providing objects
  • added support for trim boundary extraction tExtrNC object
  • added a stripped down version of "notifyOb" tthe safe interpreter
  • added support for true booleans and Tcl wide ints tjsinterp (JavaScript)
  • data conversion
  • improved jsinterp error reporting
  • "aac" and "aapnt" scripts now appear and convey their keyboard shortcut in
  • the Custom menu
  • added "getTag" command tget a specific tag
  • added "-get" subcommand t"selPnts" command
  • the "delTags" command now alssupports calling without parameters to
  • remove all tags
  • added helper script "ssp.tcl" that introduces saving of the point selection
  • ta tag
  • IMPORT/EXPORT:
  • X3D export now has a special mode tinject the exported X3D scene
  • inta XHTML template file (new export option "WriteX3dom")
  • X3D export of NURBS surfaces and PolyMesh objects now support the export
  • of a wireframe (via new export control tag "AsWire")
  • X3D export of PolyMesh objects with face normals
  • X3D export now creates simple material nodes
  • (new export option "WriteMaterials")
  • X3D export of NURBS curves of order 2 now creates Polyline primitives
  • X3D import of viewpoints now creates correct camera attributes
  • X3D import now supports "StaticGroup" nodes
  • improved temporary and archive RIB file names for direct rendering with Gelato
  • added progress parsing template for Gelato
  • Rhin3DM export of PolyMesh objects now supports face normals and colors
  • improved import of closed polylines from DXF
  • improved import of patches and patch meshes with arbitrary basis types
  • from RIB files
  • improved trim curve attribute handling for RIB import
  • PLUGINS:
  • added plugin "sfcurve" that creates superformula curves
  • added plugin "printps" that creates EPS/PDF/SVG files from drawings
  • in Ayam view windows
  • DOCUMENTATION/EXAMPLE FILES:
  • added an overview tthe table of contents
  • improved modelling tools and objects chapter structures by inserting
  • intermediate tool/object category sections

New in Ayam 1.20 (Mar 29, 2012)

  • Bug Fixes:
  • the weights of the Cobb NURBS sphere are wrong (SF 3287828)
  • Tcl error when applying the ViewAttrib property (SF 3295757)
  • property reset does not work after object selection change (SF 3295758)
  • last element of dynamic property GUIs not visible (SF 3301967)
  • extracting the boundary of patches with differing orders (SF 3312039)
  • conversion of quadrics tNURBS (SF 3322311)
  • setting the display mode/tolerance of PatchMesh objects (SF 3360488)
  • reverting interpolating curves with custom derivatives (SF 3366276)
  • merging transformed PolyMeshes with normals (SF 3374188)
  • crash in surface knot insertion (SF 3376414)
  • views getting the wrong type temporarily (SF 3382382)
  • saving of the environment scene file (SF 3410856)
  • resize menu entries of external views are deactivated (SF 3414694)
  • caps of transformed outlines/holes (SF 3439485)
  • view camera changing inadvertently when another view is changed (SF 3442122)
  • OffsetNP objects are missing from exported RIB files (SF 3445410)
  • Gordon objects with transformed intersection patches (SF 3448526)
  • conversion of torii with phimin/phimax not on default fails (SF 3481314)
  • conversion of transformed quadrics with non-standard parameters (SF 3484008)
  • toXYNC resetting the scale attributes if an error occurs (SF 3485090)
  • operations on rational NURBS modify shapes (SF 3496743)
  • the application of static and dynamic code checking tools (splint, cppcheck,
  • clang, valgrind, mudflap, drmemory) lead tthe discovery and fix of
  • numerous smaller bugs (mostly memory leaks in error cases)
  • Modelling:
  • knot rescaling of NURBS curves/surfaces nlonger requires custom knots
  • added support for periodic surfaces tbe created by Birail1
  • added object type "IPatch" for interpolating surfaces
  • added centripetal parameterization tsurface interpolation
  • the surface interpolation (e.g. in Sweep and Skin objects) is more robust,
  • (can now cope with degenerate rows/columns in the input data)
  • added uniform parameterization tICurve
  • improved flashing of editable points for multiple selected objects
  • added object type "Mirror" (essentially a Clone in disguise)
  • Instance object points are not editable anymore due tcurrently
  • unsolvable notification problems
  • moving the mouse pointer across the origin when scaling nlonger
  • leads tbroken (i.e. very small) scale attributes
  • added setting the mark tselected points bounding box center
  • (shortcut )
  • closed cubic interpolating curves now alsuse the EDLen parameter properly
  • improved initial derivatives when switching from automatic tmanual
  • derivatives for ICurves
  • improved snapping points from half grid coordinates tthe grid by
  • introduction of a mouse pointer warping facility (not available on
  • MacOSX Aqua)
  • OffsetNP objects can now be associated with a material
  • added modelling actions tincrease/decrease the multiplicity of
  • selected NURBS curve control points, new keyboard shortcuts: /
  • added hidden preference option "TagResetTagged" that controls whether
  • invoking the tag (select) points action should clear the current point
  • selection
  • improved curve splitting for curves with multiple knots
  • improved focus handling of direct point edit action
  • added "UVSelect" option tConcatNP object, this allows tdetermine
  • in which direction a single parameter patch should be split before
  • the concatenation
  • ConcatNP objects now allow curve and curve providing objects tbe
  • used as parameter objects, alsin a mix with patches
  • added "Order" parameter tConcatNP, that allows tspecify the
  • desired U order of the concatenated surface
  • added "FillGaps" and "FTLength" parameters tConcatNP that
  • control the creation of fillets similiar tConcatNC
  • added custom knots tConcatNP sthat the shapes of parameter surfaces
  • can now be preserved exactly (similar tConcatNC)
  • improved drawing of torii with phimin/phimax not on defaults
  • toXYNC can now work with ACurve and ICurve objects and is thus
  • renamed ttoXYC (old command name still available but deprecated)
  • improved fillet creation of ConcatNC for parameter curve orders
  • different from 4
  • converted Sphere patches now have the same direction as other quadrics
  • tmake it easier tcombine them with ConcatNP
  • added tool (and corresponding scripting interface commands "refineuNP"/
  • "refinevNP") trefine NURBS surfaces
  • improved refinement of periodic curves (they are refined on their
  • complete length now)
  • added region support trefine curve tool: a region trefine can be
  • specified by selected points
  • improved handling of custom knots for the insert/delete point actions
  • GUI:
  • the property GUIs of Birail1, Birail2, Extrude, Gordon, Skin, Sweep,
  • and Text objects are now properly saved (the data is not applied) for
  • AddBevel/RemoveBevel
  • renamed direct point edit action tnumeric point edit
  • empty fields are now allowed in the numeric point edit dialog tallow
  • "nchange" for the respective coordinate
  • the numeric point edit dialog now supports scripts and variable accesses
  • in the entry fields
  • the ViewAttrib property GUI nlonger unconditionally sets the mark,
  • this is now controlled by the new entry "SetMark" instead
  • zooming views via the keyboard is now reversible
  • the amounts of rotation and zooming per keyboard are now configurable
  • via the ayamrc file
  • ICurve property GUI now only displays SDLen/EDLen entries when actually
  • used and the Derivatives entry is now, as for the IPatch, a menu
  • improved tooltip placement and management
  • reset layout is more robust now
  • dialog window and balloon placement is now more robust wrt. multi
  • monitor setups
  • removed "RGTrans" GUI preference option, all rendering GUI windows
  • are now always transient
  • Import/Export:
  • RIB export of tool objects now supports PV tags
  • Scripts/Scripting Interface:
  • added "concatS" scripting command tconcatenate surfaces
  • added "interpuNP"/"interpvNP" scripting commands tinterpolate surfaces
  • added script "apnt.tcl" tautomatically switch a view (or all views)
  • tpoint modelling, after the point selection action was used
  • added "remknuNP"/"remknvNP" commands tremove knots from surfaces
  • added "-i" option tall knot removal commands tspecify a knot by
  • index (not by value)
  • renamed "shiftClosedBS" t"shiftC" command, "shiftC" can now also
  • shift/cycle normal closed NURBS curves, ICurve, and ACurve objects
  • improved range error reporting (now printing the valid range)
  • getPnt/setPnt now support writing to/reading from lists of double
  • values (without double-string conversion i.e. without loss of precision)
  • getPnt/setPnt now allow tget/set all control points of an object
  • getPnt nlonger unconditionally writes tglobal variables
  • getPnt nlonger requests a variable for w tbe provided in "-eval" mode
  • scripts and plugins can now create their own view window keyboard shortcuts
  • renamed "forceNot" command tmore recognizable "notifyOb"; for
  • compatibility with existing scripts, the old name still works
  • added "-parent" option t"notifyOb" command
  • Documentation/Example Files:
  • historic information (i.e. when did a feature appear) are now presented
  • in a less obtrusive way (as footnotes)
  • improved layout of index, object trees, and code examples
  • Installation:
  • there are now Makefile targets tintegrate Ayam with a Unix desktop environment (e.g. Gnome and KDE) via desktop shortcut, menu entry, and file type

New in Ayam 1.19 (Mar 17, 2011)

  • Bug Fixes:
  • fixed setting the FilterWidth for RIB export (SF 3148250)
  • fixed read only points of ExtrNC/ExtrNP/OffsetNC/OffsetNP objects
  • appearing in wrong places (SF 3154051, 3154053)
  • fixed is_rat attribute of revolve object (SF 3159003)
  • fixed revolve for curves that touch the axis of revolution (SF 3159009)
  • fixed RIB export of SDMesh objects with tags in Affines simple
  • RIB writer (distributed with Ayam, nSF bug item created)
  • fixed "Add Bevel" command entries in various tool object property
  • GUIs (SF 3164571)
  • fixed boundary curve extraction for surfaces with unclamped knot
  • vectors (SF 3194851)
  • fixed small memory leak in ExtrNC object (in Boundary mode) (SF 3194853)
  • fixed provide of script for multiple objects (SF 3210473)
  • fixed provide of clone for multiple objects (SF 3210478)
  • Modelling:
  • added plugin "subdiv" that, with the help of "Subdivide2.0", can be used
  • timprove the display of sdmesh objects by real subdivided surfaces
  • added options tcontrol subdivision level and drawing tsdmesh objects
  • NURBS modelling tools now only delete the selected points from objects
  • where the modelling operation succeeded
  • added "-createmp" option tthe creation of NCurve/NPatch objects
  • offset surfaces now work for closed/periodic surfaces (in all possible
  • combinations of open/closed/periodic for U and V)
  • aded chordal and centripetal knot types tNURBS patches
  • added new curve offset algorithm "Hybrid"
  • renamed "Bevel" curve offset algorithm t"Point"
  • removed curve offset algorithm "Bevel3D"
  • added cross section shape defining parameter curve tBevel object
  • (allows tcreate arbitrarily shaped bevels)
  • rational coordinates are nlonger stored with the weights pre-multiplied
  • internally (homogenous => euclidean)
  • GUI:
  • main menu "Edit/Material" now works with multiple selected objects
  • when creating materials
  • added "ErrorLevel" preference setting that controls how many messages
  • appear in the Ayam console
  • removed the "ErrorLevel" preference setting from all import/export
  • parameter dialogs, all plugins use the global preference setting now
  • added access tadvanced (command line) arguments tthe creation of
  • curve/npatch objects via new create dialog entry field "AddArgs"
  • added View attribute "EnableUndo" that allows tdetermine whether view
  • actions should be recorded in the undsystem
  • parameter dialogs of knot manipulating tools now display the original
  • knot vector as reference
  • Scripts/Scripting Interface:
  • added script ("autorot.tcl") that automatically rotates a view
  • the create callback of the SDMesh object now supports much more options
  • tcontrol the initially created object

New in Ayam 1.18.2 (Jan 12, 2011)

  • Bug Fixes:
  • fixed STESS drawing of certain trimmed NURBS (SF 3119442)
  • fixed Apply-keyboard shortcut not working in all properties (SF 3119439)
  • fixed security hole in addCommand property GUI element (SF 3140745)
  • Modelling:
  • there is now a second local modelling mode: "level"; here, the view can
  • be aligned to the space of the current parent object
  • cycling through the modelling modes now automatically realigns and
  • redraws the view
  • cycling view types of local views now also automatically realigns the view
  • when zooming, grid drawing now stops automatically just before the grid
  • lines would fill the entire background of the view
  • GUI:
  • view type and modelling mode are now displayed in the modelling mode
  • menu icon as letter in the upper left and lower right corner, respectively
  • instances in the clipboard are automatically cleared upon "File/New" now
  • (if their respective master object is in the scene, not the clipboard)
  • added menu entry to restore the pane layout to a "natural preset"
  • ("Special/Reset Layout")
  • Scripts/Scripting Interface:
  • added script ("aac.tcl") that switches the rotate and scale transformation
  • modelling actions to their "about center" variants automatically
  • the "polyhedron.js" example script object script property GUI now displays
  • notation info items and has a button that creates a random polyhedron
  • the "rV" command is now available in the safe interpreter, to allow command
  • entries in script object controlled property GUIs to update all views

New in Ayam 1.18.1 (Nov 16, 2010)

  • Bug Fixes:
  • fixed set mark not setting the correct location (SF 3105801)
  • fixed not resetting binding for set mark (SF 3105793)
  • fixed not resetting handle drawing (SF 3105791)
  • fixed Script objects in JavaScript fail tsave SP params (SF 3105790)
  • fixed undof rotate about action (SF 3107141)
  • Modelling:
  • if a mark is already set in a view, the intermediate set mark action is
  • now omitted automatically
  • the current directory is now set before scenes are replaced, this allows
  • them tload assets (e.g. fonts, background images) from the current
  • directory (i.e. with relative path) more easily
  • the filename is now reset if scenes load with errors tprotect the
  • previously loaded scene file

New in Ayam 1.18 (Nov 3, 2010)

  • Bug Fixes:
  • fixed direct point editing not setting the mark (SF 2993441)
  • fixed continuous complete notification for Script objects (SF 3001239)
  • fixed find u action failing for transformed curves (SF 3006822)
  • fixed find u action not setting the mark corectly (SF 3006824)
  • fixed Revolve caps in B-Spline mode (Sections != 0) (SF 3012391)
  • fixed potential crash in NURBS patch clamp V tool (SF 3012393)
  • fixed setting the BGImage via view menu (SF 3023248)
  • fixed BGImage drawing on Win32 (SF 3023249)
  • fixed skins with periodic chordal/centripetal curves (SF 3030062)
  • fixed false positives and crashes of instance DnD/C&P (SF 3031448)
  • fixed in-place conversion leading tbroken scenes (SF 3032589)
  • fixed drag and drop with multiple objects selected by keyboard (SF 3036465)
  • fixed current level after tree reset/rebuild (via ) (SF 3044564)
  • fixed drawing/shading of sphere objects (SF 3054130)
  • Modelling:
  • the default zoom view () and direct point edit () keyboard shortcuts are now () and () respectively tmake way for two very important new shortcuts:
  • modelling actions like move, scale, or rotate nlonger decide what ttransform (objects or selected points) based on the point selection; now always objects are transformed, until the user switches explicitly tpoints using (while can be used tswitch back tobjects)
  • the point transformation state is displayed in the modelling mode icon by a little red dot
  • the mark is now reset on double
  • direct point editing now uses the point selection instead of an own pointer; thus, it now works with multiple selected objects, and one may apply coordinate values tmultiple (selected) points
  • the Revolve tool object now supports arbitrary ThetaMax values in B-Spline mode (Sections != 0)
  • added Arc and Radius parameters tcreate closed B-Spline curve tool
  • added Radius, TMin, and TMax parameters tNCircle object creation dialog
  • added modelling action tsnap the selected points tthe mark (new shortcut )
  • added modelling action tsnap the selected objects tthe mark (new shortcut )
  • added view action tpan the view tthe mark (new shortcut )
  • tavoid clashes, collapse and explode actions have new default keyboard shortcuts: and
  • the find u modelling action now works with provided objects, and is more exact
  • added find uv modelling action that finds the u and v parameters for a picked point on a NURBS surface; invoke via new view shortcut:
  • added preference setting and facility tmanage a global mark, if enabled, all views share a single mark; thus, one can set it in one view and use it in another
  • improved order changes for periodic NURBS curves via the property GUI
  • added "3DPVN" curve offset mode that offsets a curve along normals supplied via a primitive variable tag
  • creating ExtrNC/ExtrNP objects via the main menu now automatically adds a remove property tag ("RP Transformations") tthe created instance child sthat the instance always follows the transformations of the surface the curve/sub-surface is extracted from
  • NURBS curve clamping now works with half clamped curves and alswith curves where there are multiple knots in the end region(s)
  • NURBS curve clamping can now alsclamp only one end of the curve
  • NURBS patch clamping now works with half clamped patches and alswith patches where there are multiple knots in the end region(s)
  • NURBS patch clamping can now alsclamp only one end of the patch
  • the point insert/delete modelling actions now work with multiple selected objects
  • several objects now support read only points, which can be selected and their coordinates inquired (for snapping/aligning or transformation purposes) but they can not be modified; the supporting objects are: Box, Sphere, Cylinder, Disk, Cone, Torus, Hyperboloid, Paraboloid, Extrude, Revolve
  • GUI:
  • AutoFocus is now available (again) for single window GUI mode; here it manages the focus of internal widgets (views, tree, properties, console)
  • Tool dialogs now display a more descriptive window name
  • tree drag and drop now keeps the object selection intact and opens the target level
  • Scripts/Scripting Interface:
  • number conversion errors are now correctly detected and reported in all scripting interface commands
  • added "-world" option tsetPnt/getPnt commands (ttransform coordinates from/tworld space)
  • renamed "-p" option t"-eval" for getPnt
  • getPnt can now work with arbitrary object types (even from plugins) as long as they support single point editing; i.e. it now works with PolyMesh, SDMesh, and SDNPatch objects
  • added a JavaScript interpreter plugin
  • Script objects can now use arbitrary languages provided by plugins (e.g. JavaScript)
  • added a example Script object script (written in JavaScript) that creates a Polyhedron from a Conway notation ("polyhedron.js")
  • Documentation/Example Files:
  • documentation of modelling actions enhanced with tables containing keyboard shortcuts and icons

New in Ayam 1.15.1 (Dec 5, 2008)

  • tool box list can not be configured via ayamrc file
  • X3D export of Clone objects
  • converted/provided ExtrNP object transformations
  • X3D export of rational NURBS patches
  • X3D import of rational NURBS curves
  • X3D import of swept/swung surfaces
  • continuous CSG drawing
  • add tags dialog error (tag type not registered)
  • creating objects does not always select last object

New in Ayam 1.15 (Nov 13, 2008)

  • Bug Fixes:
  • aycsg plugin GUI code for internal views (SF 1943164)
  • RIB export of Instances in CSG hierarchies (SF 1953633)
  • X3D export of trim curves crashes (SF 1945924)
  • Esc key binding of About requester (SF 1964809)
  • Hide/Show keyboard shortcuts in view windows (SF 1964807)
  • reset of property GUIs when opened via keyboard (SF 1988972)
  • view mode icons when settings are changed via property GUI (SF 1989149)
  • using compressed TIFF image files as view background (SF 1991716)
  • Tcl error if first object is selected (SF 2022397)
  • omitting the first object in sub-levels (SF 2022398)
  • ExtrNP objects missing in exported RIB files (SF 2021241)
  • crash when complete notify is enabled (SF 2022393)
  • Tcl errors when keyboard shortcuts are used tdisplay unavailable properties (SF 2023854)
  • Script objects adding newline characters upon apply (SF 2027027)
  • Memory leak in ExtrNP notification (SF 2135504)
  • broken complete notification for center points action (SF 2135494)
  • menus with images dnot open on certain X11 servers (SF 2144110)
  • setting drawing mode icon when mode is changed via menu (SF 2268296)
  • GUI:
  • added plugin "aydnd.tcl" that enables inter-application drag-and-drop on Win32 and Unix/X11 with the help of tkdnd
  • using the "Esc" key (break action) in view windows now alsresets the keyboard focus tthe main window, if the Esc key is held down longer or pressed twice
  • pressing twice in the tree view clears the object selection (and property GUI) and switches the current level tthe top level
  • improved key bindings for property GUI elements used in dialogs
  • improved focus management for property GUI updates
  • established keyboard menu traversal
  • Modelling:
  • added new object type "ACurve" (for approximating curves)
  • improved bevels and offset curves (in bevel mode) of open curves
  • improved offset curve fidelity (in section mode)
  • added parameter "Relative" tExtrNP/ExtrNC objects
  • NCircle objects now accept reverse parameters tcreate reverted circles
  • added 3D offset mode ("Bevel3D") toffset curve creation
  • improved robustness of curve splitting (alsessential for Gordon caps)
  • view type cycling (via PageUp/Down) now keeps the camera aim point
  • the GLU NURBS tesselation now preserves texture coordinates and vertex colors delivered by PV tags
  • ExtrNC objects can now alsextract a middle axis curve
  • the creation of ExtrNC, ExtrNP, and OffsetNC objects now automatically creates an instance of the currently selected object first
  • Import/Export:
  • added support for true instances (via USE/DEF) tX3D export
  • improved robustness of Wavefront OBJ import
  • Scripts/Scripting Interface:
  • added example script "zdialog.tcl" that switches all internal file dialogs tuse zenity (from the Gnome project)
  • added example script "kdialog.tcl" that switches all internal file dialogs tuse kdialog (from the KDE project)
  • added script "bgconvert.tcl" that allows tuse Ayam as a background 3D file format converter from a UNIX shell
  • script objects now support saving of individual sets of parameters
  • improved error reporting for Script objects
  • add helper command testimate the length of NURBS curves "estlenNC"
  • replaced "NS" tag type by "BNS" (before notify) and "ANS" (after notify) tag types
  • Platform Support:
  • Win32:
  • the official build now uses Tcl/Tk in version 8.4.19
  • Documentation/Example Files:
  • added example scene "multicolcsg.ay" that demonstrates how "Primitive" level objects are tbe used

New in Ayam 1.14 (Apr 5, 2008)

  • Bugfix: X3D export of NURBS patches (row/column major order) (SF 1804056)
  • Bugfix: X3D export of NURBS patches (trimmed state) (SF 1804054)
  • Bugfix: X3D transformations of NurbsSweptSurface child nodes (SF 1813320)
  • Bugfix: STESS drawing mode crashing for patches with trim loops (SF 1808296)
  • Bugfix: saved ExtrNC objects failing tload (SF 1814644)
  • Bugfix: redmissing states with selection changes (SF 1828494)
  • Bugfix: sweeps with first section -1,0,0 (SF 1837720)
  • Bugfix: direct rendering of scenes with spaces in filename or path (SF 1840995)
  • Bugfix: autofocus after preferences window was closed (SF 1846422)
  • Bugfix: autofocus after implicit import/export (SF 1847870)
  • Bugfix: keyboard shortcut tswitch drawing/shading (SF 1894024)
  • Bugfix: RIB export of Clones with and in CSG hierarchies (SF 1925224)
  • added option tkeep the current selection when creating new objects, by simply holding down the key
  • added hidden preference setting tcontrol the zoom factor of the mouse wheel ("WheelZoom")
  • added hidden preference settings tcontrol the polygon offset parameters for the "Shade&Draw" display mode ("PolyOffset0" and "PolyOffset1")
  • avoid stealing the focus from the console on application startup
  • added "Select All"/"Select None" entries tedit menu (mainly tteach the corresponding keyboard shortcuts)
  • all dialogs may now be cancelled with the key
  • closing dialogs using the window decoration is now safer wrt. AutoFocus
  • improved focus handling of property canvas
  • added context sensitive help launcher ( key) tall import and export option windows and the preferences dialog
  • added preference option tswitch Ayam ta single toplevel window application; in SingleWindow mode, there are internal views and an internal toolbar, more floating view windows can be created as usual
  • added icon based modelling action display tview window menu bar
  • added saving of main window state normal/zoomed (maximized) tthe ayamrc file
  • the iconification state of view windows is now saved with scene files
  • several main preference settings are not displayed in the preferences editor on platforms/in configurations where they would not be used anyway, e.g. TwmCompat on Win32
  • added "SavePaneLayout" tag type tstore the pane configuration of the main window in scene files
  • added hidden preference setting "PaneMargins" that controls individual safety margins for all panes (lest they obscure other vital parts of the GUI as e.g. the main menu bar)
  • the main preference settings "ListTypes", "MarkHidden", "LoadEnv", and "NewLoadsEnv" are now hidden preference settings
  • renamed hidden preference settings "PrepDiaCap" t"FixDialogTitles" and "Wpcliptosel" t"WarnPropPasteToSel"
  • added hidden preference setting "ShiftTab" that let users define the keysym created by pressing shift and tab
  • added hidden preference setting "FixImageButtons" that enables a work-around for "stuck" image buttons in the toolbox
  • the operations that can be undone/redone are now alsdisplayed in the corresponding main menu entries
  • the about dialog has now a "CopyClipboard" button that makes it more simple tcopy the relevant parts of the Ayam configuration for e.g. bug reports
  • added view window keyboard shortcuts tcycle through the view types (PageUp/PageDown)
  • added secondary view window keyboard shortcuts for important functions as e.g. "zoom tobject" (mainly for internal views in single window GUI mode)
  • reorganized edit, create, and tools menus
  • added new object type "Swing" (for rotational sweeps/swung surfaces)
  • added new object type "Select" tselect one object from a list of provided objects
  • added new object type "ExtrNP" (similar t"ExtrNC", but extracts patches)
  • added new object type "OffsetNC" tcreate offset curves
  • added NCInfballoon (that displays more infon generated curves, similar tNPInfo)
  • added tolerance parameter and checking for remKnNC (knot removal) tool
  • made side cap creation of Revolve objects more robust wrt. the cross section curve direction
  • added "undrewind" command
  • resolving of instances and automatic instances are now selection aware
  • import NurbsSwungSurface elements as Swing objects from X3D files
  • import of NurbsSurface texture coordinates from X3D files
  • added "TopLevelLayers" X3D export option
  • added "WriteParametrics" X3D export option (tsave Revolve, Extrude, Sweep, and Swing objects as NurbsSweptSurface or NurbsSwungSurface nodes)
  • X3D export may now be cancelled
  • DXF export may now be cancelled
  • reworked shader parsing (core and ayslx plugin) for incompatible changes in Aqsis 1.2
  • added script "intfd.tcl" tswitch all dialogs (file/color) tinternal Tk dialogs
  • added script "showwin.tcl" tde-iconify/show all application windows
  • added script "tonpatch.tcl" that, similar t"topoly.tcl" converts all objects in the scene tplain NURBS patches
  • added helper procedure "toolbox_add" for adding text based buttons to the toolbox window
  • added true support for custom objects tthe VC2005 build (custom objects could not use the RIB export facility, due tmissing export symbols from the static Aqsis libraries in earlier versions)
  • added official X11 based build
  • fixed image buttons for the X11 based build
  • all dialog windows are now proper floating windows
  • it is nlonger possible twrap the IDR, AyCSG, RRIB, ONIO, or MetaObj plugins intthe Ayam executable

New in Ayam 1.13 (Sep 24, 2007)

  • Fix: crash after deleting of objects (SF 1637735)
  • Fix: crash after applying ScriptAttr property (SF 1637748)
  • Fix: crash using STESS drawing mode for curves (SF 1641883)
  • Fix: conversion of NPatch objects misses transformations (SF 1646153)
  • Fix: crash after copying/cutting objects using clipboard (SF 1646155)
  • Fix: insert scene fails with Tcl error on Mac OS X (SF 1648924)
  • Fix: script objects with saved data arrays fail to load params (SF 1650836)
  • Fix: no redraw in modelling view for LazyNotify (SF 1650838)
  • Fix: crtspiralgui example script fails to load parameters (SF 1651366)
  • Fix: wrong start cap of Sweeps with bevels (SF 1652653)
  • Fix: wrong caps of extrusions with transformed parameter curves (SF 1652655)
  • Fix: reversed ModelMode menu (Global/Local) on Aqua (SF 1656876)
  • Fix: ONIO: import of texture coordinates for polymesh objects (SF 1658182)
  • Fix: provide/convert of transformed objects with caps (SF 1658185)
  • Fix: provide/convert of non-simple quadrics (SF 1661508)
  • Fix: newly created level objects may get wrong type (SF 1661732)
  • Fix: provided NURBS patches of non-simple spheres (SF 1665915)
  • Fix:closing preferences with Ok does not redraw (SF 1665917)
  • Fix: extrude ignoring bevel parameter revert (SF 1673532)
  • Fix: tesselation GUI crashing when instance objects are selected (SF 1676787)
  • Fix: object picking fails in draw level only views (SF 1680998)
  • Fix: object picking reconsider dialog selection is off-by-one (SF 1681000)
  • Fix: Tcl error when clicking into the (empty) property list for multiple selected objects (SF 1682820)
  • Fix: Tcl error for "Help on property" if no properties are present (SF 1682822)
  • Fix: STESS tesselation after certain NURBS curve modelling tools (SF 1690799)
  • Fix: first view does not appear in the tree view (SF 1695151)
  • Fix: crash when elevating non-clamped NURBS patches (SF 1701803)
  • Fix: incorrectly drawn lights with light shaders (SF 1764817)
  • Fix: "Defaults!" button in shader property GUIs when a shader parsing plugin is in use (SF1779508)
  • Fix: single point editing of multiple selected objects (SF 1790657)
  • fixed select background color when changed via X resources (backported appropriate BWidgets bug-fix)
  • fixed local views redrawing upon scene saving
  • added tag type "RP" to block access to certain properties of an object via the property GUI
  • ExtrNC objects may no longer, erroneously, be associated with materials
  • improved handling of AutoFocus in various dialogs
  • added last used tool facility to Tools main menu
  • added keyboard shortcuts to set point coordinates in the direct point editing dialog (using or )
  • added "Revert" parameter to ExtrNC object
  • ExtrNC objects now draw a direction arrow (like NCurve objects)
  • ExtrNC objects may now extract the complete surface boundary
  • the standard ConcatNC knot type is now "Custom"
  • Cap objects can now also create caps from non-planar curves (by splitting the curve into four pieces and building a Gordon surface)
  • in direct connection with the above, Gordon surfaces now support rational curves for the special case of a Coons patch configuration (four curves)
  • improved speed of object picking in shaded views
  • added Split PolyMesh modelling tool
  • added clamping of NURBS patches (new scripting interface commands "clampNPU" and "clampNPV" and new main menu entries "Tools/NURBPatch/Clamp")
  • added "rescaleKnNP" command to rescale the knot vectors of NURBS patches and main menu entries "Tools/NURBPatch/Rescale Knots to Range" as well as "Tools/NURBPatch/Rescale Knots to Mindist"
  • added "insknNPU"/"insknNPV" commands and tools (new main menu entries "Tools/NURBPatch/Insert Knot U" and "Tools/NURBPatch/Insert Knot V") to insert knots into NURBS patch knot vectors
  • added "splitNPU"/"splitNPV" commands and tools (new main menu entries "Tools/NURBPatch/Split U" and "Tools/NURBPatch/Split V") to split NURBS patches at defined parametric values
  • added "extrNP" command and tool (new main menu entry "Tools/NURBPatch/Extract Patch") to extract a sub-patch from a NURBS patch
  • improved knot type handling in remove knot tool
  • added "trimNC" command and tool (new main menu entry "Tools/NURBPatchTrim")
  • sweep cross sections may now be scaled independently in x- and y-dimension by using the y- and z-dimensions of the scaling curve
  • sweep and birail objects now support 0 as number of desired sections and derive the sections from the trajectory or first rail curve respectively
  • birail objects now support 1 and 2 sections properly
  • added antialiasing drawing option for lines
  • added hidden/wizard preference options for line width: "LineWidth" and "SelLineWidth" (set via ayamrc file)
  • improved drawing of selected curves in Shade&Draw views
  • improved shading quality of NURBS surfaces in STESS mode
  • revived STESS drawing of trimmed NURBS surfaces
  • added DXF import/export plugin dxfio
  • added X3D import/export plugin x3dio
  • Mops import is now a plugin
  • Wavefront OBJ import/export is now a plugin
  • files may now be imported using the normal "File/Open" and "File/Insert" menu entries (Ayam will load the right plugin automatically and open the corresponding import options dialog, pre-seeded with the right filename)
  • likewise, scenes may be exported using "File/Save as" and choosing a filename with an extension
  • improved scalefactor option usage in rrib plugin
  • added option to write binary 3DMF files
  • added ReadCurves/WriteCurves/WriteSelected/ScaleFactor/RescaleKnots options to 3DMF import/export
  • added proper trim curve support to 3DMF export/import
  • all import options that scale NURBS patch knots now also scale the trim curves properly
  • added ReadSTrim import option to mfio, onio, objio, and rrib