Substance is a middleware for developing flexible interactive multi-surface applications, based on a data-oriented framework that decouples functionality from data. Shared Substance is a middleware implemented in Substance that provides powerful sharing abstractions to develop distributed applications.