Instance Tool

40 votes
Date Updated: 
Author Name: 
Matan Halberstadt

Instance tool analyze the geometry objects in the scene and finds groups of objects that could be represented as instances of one of them. Then the user can turn every group into actual instances and choose which object from the group will be preserved. The objects in the group are objects that have the same topology (could be morph targets of one another) and the difference between them could be described with transformation alone. After making a group into instances, all the objects in the group accept the master object will become instances of the master and a new transformation value (position rotation and scale) will be applied to transform them back to their original shape and orientation.


The advantages of using instances over just copies of objects are:

  1. It saves storage space.
  2. It saves memory.
  3. It saves render time.
  4. It saves work time (modifying one instance effect all of them, like uv mapping).



version 2.4

  • Added Group by Material ID checkbox - if checked, only objects with the same material ID setup will be grouped as instances.
  • UI is now resizeable on the height axis.

version 2.3

  • Added Group by Scale checkbox - if checked, only objects with the same scale will be grouped as instances.
  • Added Group by Material checkbox - if checked, only objects with the same material will be grouped as instances.

 version 2.1:

  • "-- Unknown property: "getName" in undefined" error message in early max versions is now fixed.

version 2.0

  • All mesh geomety is now supported including Editable mesh, Editable poly and primitives.



  1. Drag and drop the mzp file into the viewport, the tool will pop up.
  2. Go to Customize -> Customize user interface.. -> Toolbars tab
  3. Under the category "Snowball VFX" you will find the InstanceTool, drag it into a toolbal.
  4. Enjoy.



UI description:


  • Get groups Button: analyze the scence and collect the potential groups. In no objects are selected, the whole scene will be analized, but if there are selected objects, only groups containing at list 1 selected object will be created (this will take less time).
  • Tolerance Spinner: set the maximum distance alowed for every vertex of an object to move from it's original location in order to become instanced to another object.
  • Ignore hidden objects CheckBox: If checked, it will ignor hidden objects.
  • Random wirecolor per group CheckBox: if checked, every group will recieve a unified  random wirecolor.
  • Instance selected group Button: Make the selected group in the Groups listbox into instances of the master object.
  • Instance all groups Button: Make all groups into instances.
  • Groups ListBox: Shows all the found groups after the analyze is done, and let the user select a group. Double clicking the group will select the objects of the group in the scene.
  • Remove selected group Button: Delete the selected group from the list.
  • Group Membets ListBox: Shows the objects in the selected group. Selecting an object from the list will select it in the scene. Double clicking an object in the list will set it to be the master (the master is the object that has the prefix ">>" in the list. This is the object that will not be changed at all when instancing the group, all the other objects will become instances of it).
  • Remove selected Object Button: Delete the selected object from the group.
  • Attach selected group Button: Attach all the members of the selected group into one mesh.
  • Attach all groups Button: Attach all the groups, every group will become one mesh.
  • Detach selected objects Button: this option is only available if you are running snowball pipeline for now.
  • Select instances: Select all the instances of the selected objects in the scene.


Instance tool UI



Version Requirement: 
Tested on 3ds Max 2008 and 2011
Video URL: 
instancetool_dragdrop.mzp111.13 KB
instancetool_help.pdf88.78 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
migero's picture

will it work on vray/corona

will it work on vray/corona proxy ?

hypersapien's picture

Non-Orthogonal matrix support

Hello, your script seems potentially amazing and a huge time-saver, but I am running into an issue:

I am making a scene to be exported to FBX and then into a game engine. Sometimes, when I use your instancing script it causes the effected objects to throw a "Warning: Non-orthogonal matrix support" error.

I've tested this as thoroughly as I can manage- I'll export clean geometry to FBX and it works fine, then I run this script and immediately try to export again, and now all the geometry that was re-instanced now has this error.

Is there any way to fix this? The only way I know how to fix non-orthogonal matrix problems is to apply reset x-form, which then breaks instances, so I'm back at square-one.

antomor's picture

script freeze

I try work with huge mesh objects, and script freeze and not response. I need close a 3ds max.
And script error with corona scatter object

Robert Y.'s picture


Yes it's works!, may be my 3D Max was hanging!

Matan's picture

mirroring should work

mirroring should work

visit my portfolio at

Robert Y.'s picture

Great Tool !


Thanks Very much for this tool, but I have a question :

Could you make this tool work with mirrored objects ? , Since if I have few complicated objects and I start to mirrored them and by mistake I forget to choose mirrored as instances.


Tornado's picture

Its work like a charm :)

Many thanks Matan :) you are the boss :)

Matan's picture

Updated the tool to be

Updated the tool to be resizeable.

'Instance material' is used when you want the material to be instanced together with the objects, so that all the objects in a group will share the same material.

What you want to use is the new checkbox named 'Group by material'. This option will only instance objects that share the same material already.

visit my portfolio at

Tornado's picture

Scrolling tab is needed

Hello Matan,
Thanks very much for the update :) :), it's very useful, but i can't use all tabs and because now the script window become larger, I hope you can help me with this problem , adding Scrolling tab and re-sizing the window may be solve the problem.

My screen resolution is 1360 X 768.

Also I try to use "Instance material" option but it is not instance the objects with same material, it's made for something else !

Best Regards,
Thanks in advance

untitled.png 266.62 KB
Matan's picture

the new version has the

the new version has the requested features:
* checkbox - group by scale
* checkbox - group by same material

visit my portfolio at

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.