We introduce a set of tools for interactive modeling of multi-material objects. We use non-manifold surface meshes to define complex objects, which can have multiple connected solid regions of different materials. Our suite of tools can create and edit non-manifold surfaces, while maintaining a consistent labeling of distinct regions. We also introduce a technique for generating approximate material gradients, using a set of thin layers with varying material properties. We demonstrate our approaches by printing physical objects with a multi-material printer.