GPUBatch.draw supports basic drawing methods. Although all supported GPU backends support range based and instance based drawing. This patch adds 2 methods to GPUBatch to add support to range based and instance based drawing. my_batch.draw_range(my_shader, elem_start=10, elem_count=5) Will draw my_batch using my_shader. From the attached index buffer elements 10-14 will be drawn. my_batch.draw_instance_range(my_shader, instance_start=0, instance_count=10) will draw my_batch using my_shader 10 times. Inside the vertex shader the current instance number is held by gl_InstanceID. Pull Request #104457