A system (100, 400, 500) comprising: a sensor configured to detect a touch on a touch surface (116, 502), the touch surface mapped to a graphical user interface (130, 424, 506, 520); the graphical user interface configured to display at least one interface element; an actuator (118, 418, 422) coupled to the touch surface, the actuator configured to output a haptic effect in response to a haptic signal; and, a processor in communication with actuator and the sensor, the processor configured to: i) track a location of the touch on the touch surface using sensor data; ii) identify an interaction with the graphical user interface, based on the location of the touch; iii) select a haptic effect to generate based on the interaction; iv) transmit a haptic signal to the actuator to generate the selected haptic effect, the haptic effect comprising at least one of a texture, a simulated obstacle or boundary, or an adjusted coefficient of friction of the surface; characterised in that: the processor is further configured to: v) based on said tracking, determine if the touch is approaching a projected location in the touch surface (116, 502) that is mapped to a control in the graphical user interface (130, 424, 506, 520); vi) based on the determined projected location, consult a listing of interface elements to further determine the haptic effect associated with the control. a sensor configured to detect a touch on a touch surface (116, 502), the touch surface mapped to a graphical user interface (130, 424, 506, 520); the graphical user interface configured to display at least one interface element; an actuator (118, 418, 422) coupled to the touch surface, the actuator configured to output a haptic effect in response to a haptic signal; and, a processor in communication with actuator and the sensor, the processor configured to: i) track a location of the touch on the touch surface using sensor data; ii) identify an interaction with the graphical user interface, based on the location of the touch; iii) select a haptic effect to generate based on the interaction; iv) transmit a haptic signal to the actuator to generate the selected haptic effect, the haptic effect comprising at least one of a texture, a simulated obstacle or boundary, or an adjusted coefficient of friction of the surface; i) track a location of the touch on the touch surface using sensor data; ii) identify an interaction with the graphical user interface, based on the location of the touch; iii) select a haptic effect to generate based on the interaction; iv) transmit a haptic signal to the actuator to generate the selected haptic effect, the haptic effect comprising at least one of a texture, a simulated obstacle or boundary, or an adjusted coefficient of friction of the surface; characterised in that: the processor is further configured to: v) based on said tracking, determine if the touch is approaching a projected location in the touch surface (116, 502) that is mapped to a control in the graphical user interface (130, 424, 506, 520); vi) based on the determined projected location, consult a listing of interface elements to further determine the haptic effect associated with the control. v) based on said tracking, determine if the touch is approaching a projected location in the touch surface (116, 502) that is mapped to a control in the graphical user interface (130, 424, 506, 520); vi) based on the determined projected location, consult a listing of interface elements to further determine the haptic effect associated with the control.