
Example File:
Instancing is a powerful feature inside Octane. There are a few ways to approach it and also a few gotchas to be aware of. One of the most powerful and easy to use ways of instancing in Houdini is using packed primitives. See Object Level Instancing for the alternative method.
Packed primitives are incredibly powerful and easy to use. Octane supports packed primitive instancing.
All you need to get this to work is to pack your geo - you can do this using the pack node, or via some of the pack options in nodes like copy to points, copy and transform etc.

And then enable packed instancing in your octane object parmeters.

You can find a guide on how to handle instance attributes here:
Materials can either be assigned to the geometry before packing it, or on the object level. Any materials assigned on the packed primitives will be ignored when packed instancing is enabled.

Material assignment before packing

Material assignment in object parms
As of Octane 2026 using packed instances has a longer processing time than using object level instances. We have goals on improving this, but for now it’s a good thing to be aware of. For scenes with many millions of instances it is best to use object level instancing.
You cannot mix packed and unpacked geo in the same obj when using packed instancing, and make sure all objects have the same.
Packed alembics are currently NOT supported
Since the packed instances are all inside one object, you cannot set separate octane object parameter settings for each (for example light id masks, trace sets, geometry settings etc). These settings are all taken from the one object. If you need more flexibility here you might want to use Object Level Instancing
This method does not allow instancing lights - namely the universal light (you can instance normal geo with emissive materials of course). For this you will need to use Object Level Instancing
This method also doesn’t currently allow for instancing volumes, even when inside packed primitives. For this you will also want to use Object Level Instancing