I just started scripting on blender no long ago, even tho i have read the API about dependency graph I still have question in what's the difference between "instance_object" and object inside the depsgraph. Following code from template operator_modal_view3d_raycast.py def visible_objects_and_duplis(): """Loop over (object, matrix) pairs (mesh only)""" depsgraph = context.evaluated_depsgraph_get() for dup in depsgraph.object_instances: if dup.is_instance: # Real dupli instance obj = dup.instance_object yield (obj, dup.matrix_world.copy()) else: # Usual object obj = dup.object yield (obj, obj.matrix_world.copy())