About Genshade

GenShade is an interactive software that enables users to create a large variety of shaders for Pixar's RenderMan and Side Effects' Houdini photo-realistic rendering software. GenShade uses novel genetic algorithm techniques that is custom made for the shader generation problem allowing artists to direct a wide variety of choices.

Working with GenShade's intuitive interface,  artists without any programming background or even understanding about the  shader making process, can create their desired shaders.

GenShade automatically generates a large set of surface, displacement, light, and atmosphere shaders for evaluation based upon one or more shaders selected for genetic reproduction. The shader generation process is efficient, robust, and fast producing many shader variations within a few minutes saving hours and hours of experimenting to achieve a desired result.

Running GenShade

The system runs in both artist directed and automatic scoring modes. In both modes, users need to provide the system with their selection of pre-built example shaders and generation parameters. In interactive artist mode, the user controls aesthetic evaluation and selection of shaders. In automatic mode, the system evaluates generated shaders by comparing their rendered images with target images. The system generates a wide variety of children shaders. The user can view these children shaders as their images are being rendered. The system can also run in the background, results can be viewed later using the graphic interface.


GenShade use steering to speed up the search in a certain direction. The basic idea is that if results are not satisfactory, a large structural change is needed by selecting generation parameters that will result in a large change. One the other hand, if results are somewhat satisfactory, a small change is needed. Using the automatic scoring mode, the target images are used as an additional tool to guide the search in a certain direction.

Fine Tunning

Once one, or more, shader has been selected to become the choice for this project, a fine tunning may be needed . GenShade provide such an ability by simply selecting that shader and applying mutations, small random changes, to it. A large selection of shaders will be generated that are very similar to the original. The user can then select the desired "fine tuned" shader.


Since GenShade generates a large number of shaders, the user has to make decisions:

- select one or more of the shaders to become the final shader(s)

- send one or more shaders to be fine tuned,

- select shaders for a new or existing database of shaders for further exploration,

- select shaders for a new or existing database of shaders for usage in future projects, or

- throwing away the remaining shaders to preserve disk space


GenShade makes artists' job much easier. They can provide the system with the required info and let it run over lunch time, or over night. They would come back, browse through a large variety of generated shaders, and pick the ones they want. This will make it easier and more efficient to show their work. GenShade provides several pre-built example shaders e.g. wood database, rock database, etc. to get users up and running quickly. It allows users to easily customize databases of shaders. Currently GenShade imports Cinema Graphics Inc.'s ShadeTree format. It exports shaders in both RenderMan shading language source code and ShadeTree format. Currently GenShade supports surface, displacement, light, and atmosphere shaders.

Database Management

Users can build their customized databases of shaders out of a mix of new generated shaders and prebuilt shaders. These new databases can be used for future GenShade runnings, or ongoing or future projects.

If pre-built example databases are not enough, and users would like to use shaders that they have collected over the years, there would be a need to convert these shaders into GenShade shader format. One method would be to edit a text file in GenShade shader format. Another method would be to use Cinema Graphics' ShadeTree software to build shaders and then import these shaders into GenShade. Users would then make database of their favorite shaders in GenShade, and Shadetree formats, and RenderMan shading language source code. The time spent on the shader rebuilding would be highly rewarded given the fact that thousands of new diverse shaders may be generated out of this initial database.


GenShade Feature Summary

Recommended System Requirements

Required Software
  • Pixar Photorealistic RenderMan v3.7 or higher
  • Side Effects' Houdini V4.0 or higher
  • Recommended Software
  • Cinema Graphics ShadeTree software
  • Pixar Photorealistic RenderMan v3.9's Slim

  • GenShade Interface

    Graphical User Interface for generating shaders

    - Main MenuBar provides database management, generation setup options, and generation commands.

    - ToolBar for fast access to frequently used generation options. For example, the user can switch between interactive or automatic scoring options

    - Panel Area offers viewing of images of targets or parent shaders, sliders for fast access to frequently used generation parameters, a slider to control the display of images in each generation, and a text window to display information about what the system is doing.

    - Current Population Pool, the middle three rows, displays rendered images of shaders in the current population. This display is scrollable to show a large population. It can be set, in every generation, to show different options, for example it can show the parents selected for breeding in a generation, the generated children, or the sorted children if the automatic scoring option was set.

    - Storage Pool, the bottom row, displays temporarily stored images of shaders which can be used to form a new database of shaders.

    Interface Flexibility

    the user can move images of shaders around using the graphic interface. For example, a child image may be moved to the top row to be used as a target image. Images can be moved to form the current population pool for the next generation.

    Generation Parameters Setup

    Generation parameters are provided to allow a great level of control over the generation of shaders. There are several generation parameters that users need to provide the system with if different from the default ones. The generation setup deck is accessed through the setup submenu. These parameters includes the number of generations, the method used to select parents for breeding, the method used to breed parents, the scoring mode, etc.

    Customer Services

    Corporate Sales and Marketing Headquarters

    Cinema Graphics Inc.
    22516 Lassen Street
    Chatsworth, CA 91311
    Tel (818) 718-6320


    [email protected]

    Software Development and Technical Support

    Genetic Graphics Inc.
    22 W Bryan St.
    Suite 145
    Savannah, GA 31401


    [email protected]

    Genetic Graphics Inc. is a technology company specializing in graphics software development for use in visual effects production.

    All product names are registered trademarks of their respective companies.