Abstract Defining how 3D models respond to user actions is a crucial step in building an interactive 3D world. Unfortunately, existing tools make it very difficult for interaction designers to assign responses to any part of a 3D model that is not a pre-defined group of polygons. This is particularly problematic for applications that use image-based models or models where most of the detail is in the model's texture map. We present a flexible and easy-to-use technique that overcomes this problem by allowing a designer to specify interaction surfaces, parts of the model he wants to respond to events, by painting them onto the model. We capture the painted areas by projecting them onto a 2D interaction map. An interaction map is similar to a traditional texture, but it specifies interaction surfaces instead of affecting a model's appearance. We allow designers to name interaction surfaces and then assign them responses to events both statically and at run-time. In addition, designers can modify the size and shape of interaction surfaces at run-time and can pass parameters to these surfaces' responses by encoding them in the model's interaction map.