• removed node caching which was introducing more issues than improvements, this fixes the blend node not working. This is a backport of a change made in Yeti 2.0 which completely removes all node caching support in light of other optimizations.
  • feather attributes can now be correctly set via the Attribute node as with previous versions.
  • pgYetiCacheInfo prints to stdout vs. stderr
  • the Comb node correctly forces combed attributes to be Vectors.
  • built with MtoA and Arnold


  • pgYetiGraph command now only draws a license if you’re setting values in the graph.
  • updated image search path support for images in sub directories.
  • updated Arnold DSO to avoid instability when parameters are missing.


  • fixed a bug in the Renderman procedural that was causing time samples to be offset incorrectly.


  • fixed a bug that was causing feather rendering to crash VRay.
  • added stepSize parameter to pgYetiConvertGuideSetToGroom to control the amount of detail in the resulting groom strands.
  • symbols on Linux and OSX are more agressively hidden.


  • built with MtoA and Arnold
  • build with VRay 3.0 final release
  • changed layout of symbols on Linux and OSX to avoid threading issues.
  • fixed a bug in Scatter that caused Yeti to crash when scattering on instanced objects.
  • default width now correctly set for VRay.
  • support for spline based (smooth) hair with VRay 3.0.


  • fixed Grow segment derivation that caused motion blur issues in some cases.
  • feathers now obey the Ignore Name Spaces option.
  • set membership callback ids correctly managed to avoid unregistering issues.
  • Linux Maya 2015 outliner crash issues resolved.
  • built against MtoA and Arnold
  • built against Maya 2014 sp4 and Maya 2015 ext 1


  • optimized object data structures to imrpove insert/delete speed which was affecting feather generation times.
  • fixed threading issue on Windows build.
  • fixed Arnold warnings about Visibility using wrong data type.


  • fixed a threading bug (our embedded HDF5 wasn’t being compiled with thread safety) that was causing arnold to crash when multiple caches were being referenced in the same scene.


  • length is automatically exported to rendering engines vs. having to explicitly map it.
  • resolved issue with Guide rest position not being stored on sub frames when no rest position is provided.
  • empty objects now ignored when computing the bounding box for a Yeti graph, this was causing out of range bounds in some circumstances.
  • fixed Save Guides Rest Position to now handle curves of varying parameterization.
  • Yeti now throws an error when input guide sets don’t contain any curves.
  • Feather orientations are now correctly exported for Arnold.
  • built against MtoA
  • built against VRay 3.05.03


  • initial support for Maya 2015, this should be considered experimental until Yeti 1.4.0 when Viewport 2.0 is fully supported.
  • updated to Arnold and MtoA
  • support for VRay 3.0 Beta 2, these are installed in the unsupported directory, you will need to copy these to the bin and plugin directories and overwrite the VRay 2.0 builds.


  • fixed a bug in the VRay engine that was generating garbage transforms for VRay motion blur when full transforms were missing causing ray acceleration issues.
  • updated derivative computation to correctly obey per face S&T values.
  • updated pgYetiCacheInfo to fully evaluate a graph for more accurate bounding box results, –density parameter added to control the evaluation density.
  • weight parameter on the Clump node is now evaluated on a per vertex basis.
  • fixed naming of Tip Parameter in Width node.
  • updated PRMan callbacks to use preLayerRenderMel and postLayerRenderMel.
  • updated build to resolve missing lzma symbols on OSX.
  • added a Load At Initialization toggle which forces Arnold to load and evaluate the graph on initialization vs. deferred using the bounding box data.


  • Resolved duplicate output for OBJ export.
  • Update curves to groom conversion to ignore Nref and Pref which potentially led to incorrect strand sampling.
  • Fixed a bug with instancing Referenced graphs.
  • updated Texture node to correctly flush images after each evaluation.
  • empty objects are correctly pruned post node evaluation which resolves bounding box computation issues if they still existed.
  • fixed a bug that would cause Yeti (thus Maya) to crash if a Non-graph was returned from the compute method.
  • Texture caching is now handled globally, this provides a substantial improvement when textures are shared across Yeti nodes.
  • Re-introduced Rest Influence and Rest Influence Power as per Yeti 1.2.


  • more instance alignment/deformation improvements via new up vector propagation.
  • Object List now ignores intermediate objects.
  • added Ignore Rest Normal Triangulation option to guide sets that forces Yeti to take both sides of an object into consideration when deriving surface transformations. This is useful for large flight feathers etc. when “attaching” them to a wings surface.
  • The feather generator now creates an orientation attribute if Arnolds curve type is set to Oriented. This will produce a shading normal that is perpendicular to the feather surface vs. Arnold’s default derivation.


  • fixed a bug in the Arnold vertex to varying parameter conversion stage, this would affect strandu and other user defined vertex attributes to be interpolated incorrectly.
  • added feather_u and feather_v output parameters to procedural feathers for easier texture mapping.
  • added a catch for strands that end up infinitely long, this was causing issues with the smooth brush (rightly so).
  • guide sets converted into fibres produce the correct result when instancing/deforming other geo to them - including feathers. This means you can instance feathers to individually controlled guide curves. The body/base geometry needs to be the second input to the Convert node for this to work (so the guides know what surface they’re deforming on).
  • corrected the number of repeated end points when generating Arnold curve data.
  • removed all references to Mental Ray in example scenes.
  • fixed float sliders in the UI that weren’t updating correctly and truncating values to two decimal places.
  • very high U & V values are now supported when using UDIM names in textures.
  • derivative code has been updated to better handle UV borders which fixes instances where strands located on the borders would flip.


  • updated Scatter node to provide generation time similar to 1.2.x.
  • negative values can be used for brush strength (as 1.2.x).
  • fixed instance alignment offset that was introduced in 1.3.4.
  • add tangent in the Attribute node won’t crash the graph evaluation.


  • fixed a bug with rename callbacks that caused shapes to disappear when referencing or importing a scene with grooms.
  • previews are not stored if the result contains mesh instances, these were generating cache files that were huge and slow (defeating the purpose).
  • fixed a bug which caused groups to disappear when node caching was enabled.
  • attribute node now correctly evaluates on a per group basis if the attribute has already been created.
  • added Display Strand Segments to Groom node Display options.
  • undo support for Mirroring.
  • added the ability to resample either all the strands in a groom or just selected strands.
  • refactored deformed Instance alignment to reduce flipping issues.
  • added Help and About items to the Yeti menu.
  • added -type argument to pgYetiGraph command which allows the user to specify a node type to limit the result too.
  • added -nodeType argument to pgYetiGRaph to query a nodes internal type.
  • pgYetiGraph can correctly query the graph values if the graph hasn’t been evaluated.
  • fixed an issue where the id attribute was being exported as id and not fur_id as in previous versions.
  • limited the number of Yeti versions printed out per instance of Arnold.
  • flood fill works with Scatter populate mode.


  • fixed feather draw issue introduced in 1.3.2
  • updated vector texture code for smoother results


  • fixed motion blurred feather length generation bug which caused prman to crash and vray to spew incorrect normal errors.
  • the feather_param is passed to VRay via the W coordinate of the UVW attribute.
  • rachi length now matches Barb End to avoid the rachi extending past the end of the feather.
  • threaded export texture.
  • export direction from grooms now stores the map based on surface derivatives and N.


  • fixed a bug in the stiffness component of the dynamics solver that caused strands to end up incorrectly oriented.
  • added node name to the graph evaluation time feedback.
  • Yeti now uses the node name vs. the cache name when outputting log information.
  • added rachii tip/base width controls to feather geometry.
  • barbs are created on the surface of the rachii vs. the spine to avoid intersections.
  • Display Output now only affects GL drawing vs. node visibility at render time.


  • feather geometry feather_part attribute is now set to 0 for rachii, 1 for barb right side and 2 for barb left side.
  • fixed bug that caused Yeti to crash when input geometry is missing.

1.3.0 RC

  • fixed a bug caused by node caching when used with the Texture node.
  • fixed a significant memory leak caused by the subdivision surface implementation.
  • improved accuracy of bounding box computation for Maya yeti node. (this was causing Arnold to complain about inaccurate bounding boxes)
  • threaded feather expansion (generation).
  • feathers now obey their world space positions.
  • added pgYetiGraph documentation in the Scripting Reference guide.
  • added Export Direction to the Groom texture utilities which exports the direction of the strands to a vector map projected in the faces normal space.
  • generated feather barb attributes were being exported to the renderer incorrectly mapped causing issues with the various render engines (mostly visible with renderman engines).

1.3.0 beta 3


  • added Create Feather to the Yeti menu.
  • added Yeti node name to error output.
  • display density will cull fibre cache previews when set lower than the value cached at.
  • cleaned up Groom AE with better attribute list create/duplicate/rename & delete workflow and UI layout.
  • added “Add Float” and “Add Vector” controls to the User Attributes palette for the Yeti AE.
  • Comb and Guide nodes are more strict about what can be used for their second input (Grooms for Comb and Guides for Guide).
  • most grooming operations are now threaded optimized interaction.
  • added Bard Azimuth Variation to Feather node to provide of plane variation to the feathers.
  • added Tearing to feathers, which creates tears along the profile where barbs clump together.

Bugs Fixed/Changes

  • import object dialog correctly lists all Feather objects for selection.
  • Arnold now correctly renders Yeti nodes referencing a cache file.
  • improved deformed instance alignment.
  • improved the quality of Scatter distribution.
  • Generated feathers correctly export strandu, feather_param and feather_part to the rendering engine for shading purposes.
  • implemented variant of FTL solver for more stable and optimized (fewer iterations needed) dynamics.

1.3.0 beta 2


  • added pgYetiForceUpdate( $pgYetiMayaNode ) command to force a Yeti node to re-evaluate it’s graph.
  • previews are now be stored with fur caches (by default, this can be turned off) - these are then used for fast display results when viewed in Maya (preview use can be turned off if needed). The previews use the current display context (density, width, length, etc.) for generation and are done so on the whole frame number and thus are considered static (no motion blurred).
  • added Yeti Subdivision and Yeti Subdivision Iterations attributes to any input mesh geometry to control this outside of any renderer specific implementation.
  • Yeti’s subdivision surfaces will match the same iteration as specific for the rendering engine (at this time only Arnold has this control).

Bugs Fixed/Changes

  • component editing undo implemented correctly
  • new feathers are created with default shape vs. a shared shape
  • feathers can be removed from the list of input objects in the pgYetiMaya node
  • Node Editor isn’t “always on top”
  • Normals correctly generated for feather primitives.
  • Attribute node can now be used to correctly modify feather attributes, please see yeti_featherAttributeExample.ma.

1.3.0 beta 1


  • added Bend Start and Bend End to the bend node, this change will slightly affect the look of the bend results.
  • added Base and Tip parameter to Width node to control where the width fall off starts/stops.
  • added Constant attribute type to the Attribute node.
  • added pgYetiCacheInfo binary used to query .fur files for information, please use –help for options.
  • when in component mode the Shift key can be held to alter the selected strands length by click-dragging.
  • added a Randomize brush for attribute painting.
  • added dynamic node result caching to optimize evaluation of graphs that contain branching and merging. This can be toggled on and off via the Node Caching parameter in the Others palette of the Yeti AE.
  • I/O AE palette now has separate Input and Output sections.
  • added pgYetiRemoveAllConnections scripting command to remove any and all connections to the specified Yeti node.
  • added more interactive sliders to float parameters in the Node Inspector along with soft ranges and a means of hiding the sliders.
  • heavily threaded all bounding box calculations for improved redraw speeds.
  • added the ability to convert a Yeti node result into Maya objects via the Convert to Maya Objects menu item or pgYetiCommand -generateMayaObjects command.
  • new pgYetiGraph command that can be used to query/set nodes and their parameters in the Yeti graphs.
  • added Twist brush for grooming.
  • added Clump brush for grooming.
  • added a Scatter brush to populate the grooms by scattering strands while painting.
  • added Override Cache With Inputs option for the Yeti node, this turns off cache overriding (corrective grooming) by default. This is useful to avoid situations where the graph steals a license when an input has been left on by mistake.
  • Subdivision Surface evaluation. If an input mesh is tagged by a renderer as a subdivision surface Yeti will evaluate the mesh in a subdivided state, there is a new toggle in the Yeti node display parameters to show the subdivided result in the Viewport or just as Render time (default).
  • improved dynamics solver with more accurate friction handling.
  • Yeti Arnold node now exports the correct bounding box to procedural call which is now expanded when needed vs. on init.

Bugs Fixed/Changes

  • ignore namespaces is ON by default.
  • removed redundant bend multiplier.
  • cleaned up Maya field sampling code, any fields affecting grooms will likely need to be adjusted.
  • fixed a bug in the pgYetiGroomNode which caused fatal crashes when using undo/redo.
  • fixed a bug in Scraggle that caused the vector to flip when the segment was pointing in the opposite direction of the surface normal.
  • Node Inspector correctly reflects parameter errors.
  • isLicenseAvailable correctly reports license availability.
  • input guides are stored with more detail to capture finer shapes.
  • pgYetiCommand will return MS::kFailure if a cache write fails.
  • OBJ export is now buffered to provide better performance when exporting large results to a network location.
  • Yeti won’t remove the graph but default if switching to cache mode with an invalid cache file specified.
  • improved strand tangent calculation which provides more accurate comb and guide results when needing to match input strands.
  • Guide Set list now ignores vertex, edge, face and edit points sets.
  • new strands are selected by default if Isolate Strands is on with strands already selected.