1. A method for editing a surface object in a computer implemented surface modeler, comprising: (a) commencing, in the computer-implemented surface modeler, a surface object creation process; (b) selecting a surface object type; (c) presenting, during the surface object creation process, one or more visual affordances, wherein the one or more visual affordances comprise one or more grips that can be used to inject modification into the surface object creation process; (d) maintaining an associative knowledge base that determines an associative behavior of the surface object; and (e) subsequent to creation of the surface object: (i) displaying the one or more visual affordances; and (ii) using the one or more visual affordances to edit the surface object; and wherein: the same one or more visual affordances are displayed regardless of whether the surface object is associative and depends on a property of another object/surface, or is non-associative and has no relation to another object/surface; one of the one or more grips comprises an expander grip; the expander grip indicates an edge condition of the surface object that can be modified; the expander grip limits visual clutter and is used to hide/expose one or more additional visual affordances; and the one or more additional visual affordances are used to modify the edge condition.