For 3D SetObjectShapeStaticPolygon() will help if you have static objects. By default if you bring in an object it will be a square box around the shape.
But dynamic objects are a different beast. For example if you made a cool container thing in Blender and you want it to be dynamic and move around and then put other cool 3d dynamic object thingys inside it, you will be disappointed to see that an invisible lid has been placed by AppGameKit and all the thingys fall off to the side.
SetObjectShapeCompound() is your answer to create invisible boundaries to represent where you want the real boundaries to be. When you call the command it will wipe the existing object shape and you replace it with pieces like AddObjectShapeBox() or AddObjectShapeSphere(). Note that the documentation is WRONG when it refers to world coordinates for positioning the compound shapes, the coordinates are based on the object itself.