Described is a method and system providing a dynamic, live (active) surface and / or model elements to complement and enhance what is being modeled or visualized, enabling the addition of new features and functionality to visualization and modeling tools. A dynamic surface is accomplished by extending traditional HTML, rendering APIs and / or components to enable visualization and modeling functionality. The surface background and model elements may comprise HTML elements, and the surface can include a Web site. The model elements are HTML elements layered dynamically atop the surface, as the user interacts with them, and completed designs may be saved in a non-proprietary format, (e.g., HTML). The live surface bases its services on HTML rendering engine services, and further provides a visualization and modeling engine that wraps and extends the rendering engine through multiple interfaces. Interfaces can enumerate modeling elements and their relationships, add, delete or change connections between model elements and states, and initialize the surface, including loading an existing diagram such as saved as an HTML document.