Itoo Software Forum

Author Topic: ForestIvy Beta Documentation  (Read 1015 times)

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 3001
ForestIvy Beta Documentation
« on: May 20, 2024, 02:36:16 PM »
ForestIvy Beta Documentation

The ForestIvy Plugin for 3ds Max enables the quick creation of ivy and climbing plants. It includes several high quality presets to get users up and running instantly.
Its fast algorithm allows for real-time growth simulation, combining manual and automated growth for art-directable results that maintain realism. It's optimized for efficient rendering, making it simple to add swathes of detailed lifelike plants to any scene.

Features of the IvyPlugin
  • Includes over 20 presets featuring high-quality leaf scans for enhanced realism and detail. (2 available during beta period)
  • Customizable Library Browser: Effortlessly manage and add your own presets with a simple click, improve efficiency and save your favorite plants with ease.
  • Revolutionary Multithreaded Algorithm: Experience super-fast growth simulations with instant feedback, eliminating wait times for procedural generation.
  • Hybrid Drawing and Growth Mechanism: Blend artistic hand-drawing control with algorithmic growth for unmatched realism and creativity in your plant designs.
  • Advanced Leaf Simulation Controls: Tailor growth patterns, heliotropism effects, and leaf size variations based on branch age to mimic natural growth behaviors accurately.
  • Multi-layered Growth Options: Add complexity with layers for leaves, flowers, and berries growing on stems, offering detailed customization of plant life.
  • Forest Color Integration: Randomize leaf textures seamlessly for diverse and lifelike vegetation.
  • Surface-independent Growth: Create bushes and basic shrubs without requiring a surface, offering rudimentary plant modeling.
  • User-friendly Interface for Custom Climbers: Intuitively design your own climbing plants with controls that are easy to master.
  • Gravity and Ground Culling Features: Create hanging plants and vines with realistic interactions with gravity and ground surfaces.
  • Optimized Rendering with Viewport and Render Time Instancing: Efficiently render hundreds of thousands of high-poly assets, thanks to advanced instancing capabilities.
Creating your first Ivy object


To create an Ivy object, the easiest way is to load a preset from the library. To do this:

  • Go to the Create panel and click on ForestIvy.
  • Click and drag to create a new ForestIvy object in the viewport.
  • Switch to the Modify panel.
  • In the General rollout, click on the Library button to open the Library Browser.
  • Pick a Climbing Plant preset from the list of included assets and click Load Selected.
  • Go to the Growth rollout.
  • Click on the + button and pick the surface(s) from the scene on which you’d like the plant to grow. Alternatively, you can use the Load Multiple button to load surfaces from a list. To remove all surfaces, use the Delete button.
  • To limit the plant to grow only on certain material IDs, enter their values in the Mat.ID box. Multiple values can be separated using a comma-separated list. The Exclude option uses the list to exclude parts of the mesh from the calculation instead of including them.
  • Click on the Brush Icon and draw a baseline on the surface. The ivy will continue to grow based on this initial stroke. You can draw as many baselines as you like. To delete a baseline, use the eraser tool, or to remove all the baselines, click the bin icon.
  • Finally, use the Growth Level parameter to determine the size of the plant. Increasing this value makes the plant larger, simulating longer growth.

The other settings are only used to modify the growth rules used by the preset. See the Modifying Parameters section below for more information on how to adapt and create your own climbing plants.

Modifying Parameters

The following parameters offer granular control over the ivy’s surfaces, growth behavior, adhesion properties, and visual characteristics, giving you all the options you need to ensure that the plant interacts realistically with its surroundings.

Surface Objects


  • Add Single Objects: Pick a surface where Ivy will grow.
  • Add Multiple Objects: Pick a selection of surfaces from the scene where Ivy will grow.
  • Delete all Objects: Clears the current selection of Objects.
  • Paint Tool: Used to draw the initial baseline on the surface.
  • Erase: Use to delete baselines from the surface using a brush.
  • Delete All: Use to remove all baselines from the surface.
  • Painter Options: Used to adjust the brush settings.
  • Material ID: Use to limit the polygons on the surface that can be used to grow ivy based on their material IDs. For multiple material IDs, use a comma-separated list.
  • Exclude: When activated, the list of material IDs is used to exclude parts of the mesh from growing ivy.
  • Grow Without Surface: When enabled, the baselines are ignored, and a single plant is planted at the ForestIvy object’s pivot point. It can be used to make basic shrubs, flowers, and other simple plants.
  • Grow Beyond Baseline: When enabled, the branches continue to grow from the end of the baselines as well as its sides. When disabled, the length of the baseline is fixed, and new branches only grow from its sides.
  • Growth Level: The lifespan of each branch. Larger values simulate a longer growing time for the plant.
  • Baseline: Used if you would like to limit the growth along the baseline. For example, a setting of 50% would use only half of the baseline to generate new branches.
Growth Behavior Parameters

Ivy is formed by multiple branches. Each branch is defined by sections, and each section has a fixed number of segments. When a branch section grows, and it reaches the maximum number of segments, there is a probability that the branch splits into two. The following parameters define this growth behavior:

  • Segments per Branch: Defines the segment count per branch section.
  • Length: The range between the minimum and maximum length of branch sections.
  • Branching Probability: The likelihood of a branch section splitting upon reaching the segment limit.
  • Branching Angle: Controls the angle between emerging branches, with options for minimum and maximum angles.
  • Symmetrical Branching: If activated, child branches mirror the angle values for a symmetrical appearance.
  • Branch Noise: Defines the rotation angle for the subsequent section if the branch doesn't split.
Adhesion and Climbing Behavior

These parameters define how the ivy interacts with surfaces, as well as how they transition between clinging and free growth states:

  • Gravity: Influences the branch's direction when growing freely.
  • Adhesion: The surface attraction level. Higher values mean that the ivy is more likely to cling to the nearest surface.
  • Adhesion Distance: The threshold distance dictating the switch between adhered and free growth states.
  • Climbing Factor: Governs the climbing ability over surfaces.
  • Death Distance: The maximum allowed distance from the surface; if a branch exceeds this value, it results in branch termination.
  • Death on Ground Hit: The percentage of branches that are removed when hitting the ground plane. The ground plane used for this calculation is defined by the pivot position of the ForestIvy object.
  • Collision Check: Prevents excessive amounts of geometry by limiting stacked branches.
  • Precise: The precision option improves collision detection, but at the expense of calculation speed.
Branches Configuration

Controls the mesh used to generate branches.


  • Enabled: Toggles branch visibility on or off.
  • Width: Sets the branch's radius.
  • Sides: Defines the edge count for branch cross-sections.
  • Material ID: Assigns a material ID to the branches.
  • UVW Mapping: Configures UVW channel and scale settings, with support for real-world map sizes.
Leaves and Flowers


ForestIvy uses a layers system to apply leaves and flowers to the branches. Any number of layer distributions can be applied. There are three steps to create a layer:

1 - Add Models

  • Use the Add button to add a new object to the list by selecting it from the scene.
  • Use the Add Multiple button to add a new object to the list by selecting it from a popup list.
  • Use the Delete button to remove the asset selected in the models list.
  • Use the Extract Model button if the model has been deleted from the scene but remains embedded in the ForestIvy object. This will place a copy of the model in its original location.

2 - Create Layers and Assign Assets

To configure each layer, use the following parameters:

  • Add Layer: Adds a new empty layer.
  • Delete Layer: Deletes the selected layer.
  • Name: Use to define the name of the selected layer.
  • Models: Opens a pop-up containing a list of the available models. Select to assign to the current layer by activating its checkbox. Each model also has a probability setting that determines the likelihood of it being selected.
3 - Configure Layers

  • Mode: Determines if one or two leaves are generated at each position and their distribution pattern. Options are Single, Alternate, or Double.
  • Distance Min/Max: Defines the minimum and maximum separation between leaves along the branch.
  • Fixed: If enabled, the separation distance between leaves is fixed, defined by the 'Min' value. If disabled, the distance is randomized between the ‘Min’ and ‘Max’ values.
  • Density: Adjusts the leaf density. The default value generates leaves as defined by the distance parameters. Setting the value to 0% has the effect of disabling the layer.
  • Collision Check: Similar to branches, this setting checks for leaf collisions to prevent overlap.
  • Global Collision: When enabled, shares collision checking across all layers with this parameter enabled. If disabled, each layer uses its own collision space.
  • End Leaf Prob: Sets the probability of adding a leaf at the end of a branch.
  • Align: Controls leaf alignment relative to the branch, options include: Perpendicular, Branch Normal, or Branch Direction.
  • Align Ground: Rotates the leaf towards the ground; negative values rotate the leaves towards the sky.
  • Rotation: Sets a random rotation for leaves with separate ‘Min’ and ‘Max’ values for the X, Y, and Z axes.
  • Mirror: When enabled, the rotation value is mirrored on either side of the branch.
  • Scale Min/Max: Determines the random scale range for leaves.
  • Scale > By Age: Sets the minimum size of leaves when the scale by distance value is > 0.
  • Scale > Distance: Use this setting to gradually decrease the scale of the leaves as they approach the ends of the branches. This value represents the distance at which the leaves start to reduce in size.
Display Modes


These options determine how to display and render the geometry output by the object’s layers. Options include:

  • Viewport: Determines how to display the geometry in the viewports. Two options are available:
    • Mesh mode collapses the entire model to a single mesh, it is not very efficient, but may be valuable if you plan to add additional modifiers on top of the ForestIvy object or you plan to collapse the mesh for other reasons.
    • Quick Mesh mode uses instanced geometry directly in the viewport allowing for large polycounts with minimal impact on performance.
  • Render > Instancing Support: Defines the behavior of RailClone when it creates the elements for rendering. When enabled, it automatically creates instances when using V-Ray or Arnold (other renderers will follow). If disabled, it creates a single mesh containing all of the geometry.
  • Build: These settings determine how and when the ForestIvy object is updated. When Manual Update is activated, users must press the update button to see changes after a parameter change. The object can be completely deactivated using the Disable Object option.
  • Limits: To prevent users from accidentally creating huge polycounts and crashing their machine, ForestIvy includes some failsafes. Branches control how many 1000s of branches can be generated by the plugin, and Leaves does the same for geometry created in layers. In both cases, setting the value to 0 disables the restrictions completely.
  • Icon Size: Sets the size of the icon shown in the viewports when no geometry is being generated.
« Last Edit: May 24, 2024, 12:11:10 PM by iToo »
Paul Roberts
iToo Software