Slim 2.0 Release Notes

Table of Contents

New Features
Bug Fixes

New Features

  • New Graph Editor The new Graph Editor functionality in Slim allows Connections, colors, and floats to be changed inside a graph editor window. Each Palette has an arbitrary number of "work areas" in the graph editor. Each work area can contain any number of appearance graph nodes. Connections are made by dragging a connection (default : mouse2) from one node to another. When the dragged connection is released an option menu allows the source node to be connected to any compatible parameter in the target appearance.
  • Adaptors (procedural shader attachments) - new functionality which allows you to attach different appearances under different rendering conditions - essentially .
  • Dynamic Functions This means that templates can be written that procedurally describe the code generation process. Before only top-level shaders could be described programmatically.
  • Override Parameters.  Now you can override the values of parameters defined lower in the call chain.  Mostly useful for Adaptors, Ensembles and Shader Instances.
  • TCL Boxes  These are like RIB Boxes but are used to encapsulate and manage per-attachment TCL scripting state.
  • Editable Descriptions.  Simply ctrl-shift-double-click on an info icon to edit the descriptions of parameters and instances.  Note that you can also use this key sequence on palette entries to edit the Slim representation of an appearance.
  • Template Versioning.  Now when templates are changed, old shader networks won't break.  See README in $RATTREE/lib/slim.
  • New Templates
    • A new and improved Layer template supports several additional compositing operators and, because it's a shadingmodel template (the old Layer was a surface template), it can be connected into shader graphs in more powerful configurations. For example, you can connect an instance of Layer to a single Layer of another Layer instance to develop extremely complex compositions.
    • skin shadingmodel
    • imagefile shadingmodel - for use when you have a texture map with associated alpha channel.
    • primvars - now you can type in the name of MTOR primitive variables in order to access their values in Slim-constructed shaders.
    • ColorAdjust has new intuitive controls for adjusting color values.
    • trivial.slim - contains simple nodes that allow values to be shared by parameters across Slim appearance networks.
    • adaptors.slim and adaptorui.slim - contains support for Adaptors.
    • overrides.slim - support for override parameters.
    • shadingmodel to color type converter.
  • AutoCollect mode - causes all newly minted appearances to automatically be collected within the appearance from which they were created.
  • AutoArchiving controls for MTOR.
  • SLIM_DISPLAY environment variable.  On Unix, you can set this environment variable to cause Slim to appear on a different X Display than Maya.
  • Resource Report Script A Slim script called ::Slim::ResourceReport can be invoked from the Slim console to generate a report which enumerates external resources and reports warnings. The report is printed to the Slim Message Logger. By default the report is verbose, but it can be trimmed down to just warnings by supplying -short as the arg. 
  • Search & Replace Script Another new procedure called ::Slim::SearchReplace can be used to search for and replace a specified pattern with specified replacement in string entry fields of Slim appearances. Information on arguments for this procedure can be found in the Slim Scripting documentation under the Miscellaneous section. Be aware that there is also a new dirmap functionality in the Workspace Editor which may actually be more appropriate for certain purposes than ::Slim::SearchReplace. The source code for both of these scripts lives in "$RATTREE/etc/SlimResources.tcl".


  • Modified Templates
    • Facing Forward is now more powerful.
    • AdditiveFX now supports Opacity premultiplication
    • EnvironmentMapPlus bug fixes
  • X-selection and clipboard interoperation is more consistent.
  • Changed naming in parameter's value provider menu:  was Constant/Variable now it's: Internal/External.
  • RIB Generation for Shader Instances now pay attention to Internal/External provider setting.  Internal parameters won't appear in RIB.
  • Better presentation of collected appearances.  Now you can hide/display each child appearance's parameters.
  • Changed mechanism for viewing/editing appearance encapsulations. Simply right click on the appearance in the Palette Editor and select "View Source".  Note that this only appear when in Expert Menus mode.
  • Added Save scripting method to the Palette object.  This can be used to convert an internal to an external palette.
  • Added support for ascertaining Slim's current selection.  See the standard scripting docs for:  slim GetAppearance -selected.
  • Moved the default master reference specification to the slim.ini. The new pref is called DefaultMasterRef.  You can change this default value to, for example, place shaders in a user-specific area below the project location.
  • Added support for vendor or site-specific template organization.  Now you can cause your site's custom templates to appear in their own menus.  See the preferences dialog.
  • Added support for large numbers of templates.  Now we automatically create cascading menus when the number of templates exceeds a value specified in Slim.ini.
  • Changed the drawing behavior of the Appearance Editor for collected appearances.  Now, only child appearances that are used in the current network are present in the display. Also we only display nodes that contribute externally visible parameters.

Bug Fixes

  • reloading appearances with array parameters.
  • palettes with spaces in their labels weren't encapsulated correctly.
  • connection menu lost up to 10 potential connection points.
  • now we display the correct appearance in an editor that had been iconified.
  • collected ensembles now save and reload correctly.
  • drag/drop shading group nodes onto surface connections now works.
  • delete unused doesn't delete appearances with special names (backplane, world, ...).
  • the Console's Load Script command now works.
  • instance names can now contain spaces.
  • fixed the toggle selection feature.  Now selecting an appearance while depressing the shift button causes it's selection status to invert. (1358)
  • no longer do & characters in parameter expressions get mysteriously converted to %v. (1131)
  • no longer does reload result in resetting an appearance master reference.
  • various bugs related to scripting of palettes and subpalettes have been fixed.
  • in some cases duplicating collected appearances resulted in incomplete connection remapping. (1287)
  • the palette scripting command FindAppearances was inconsistent with the slim-side equivalent.
  • we no longer clamp to black in ColorRamp template when not tiling.
  • when flattening a network, the special ramp interface can now appear in the flattened shader. Simply change the ramp collection to external prior to flattening using the properties menu raised via the right mouse button.
  • duplicate network can now be undone and redone.
  • the palette scripting command FindAppearances was inconsistent with the slim-side equivalent.
  • the new appearance UpdateEditor scripting command now returns 0/1 depending on whether an editor exists for that appearance.
  • delete unused no longer deletes "special" appearances - frame, world, ...



Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.