A user interface system comprising: a display for displaying a UI; a plurality of UI client engines each associated with a respective one of a plurality of applications, each of the plurality of UI client engines configured for: determining a corresponding UI component tree for its respective one of the plurality of applications, wherein the corresponding UI component tree includes instructions for creating one or more elements of the UI for the corresponding UI components tree, receiving inputs, from its respective one of the plurality of applications, related to the elements of the UI, and determining UI data items related to the inputs; a UI rendering engine associated with the display, the UI rendering engine configured for: receiving the UI component trees from the plurality of UI client engines, joining the plurality of UI component trees into a single tree structure including the elements of the UI; determining a predefined visual node tree for each of the elements of the UI in the single tree structure; assembling the predefined visual node trees into an overall visual node tree; receiving, from at least one of the plurality of UI client engines, UI data items related to one or more of the elements of the UI; populating the overall visual node tree with the UI data items; and rendering the UI including the elements of the UI in accordance with the overall visual node tree independently of further input from the plurality of UI client engines. a display for displaying a UI; a plurality of UI client engines each associated with a respective one of a plurality of applications, each of the plurality of UI client engines configured for: determining a corresponding UI component tree for its respective one of the plurality of applications, wherein the corresponding UI component tree includes instructions for creating one or more elements of the UI for the corresponding UI components tree, receiving inputs, from its respective one of the plurality of applications, related to the elements of the UI, and determining UI data items related to the inputs; determining a corresponding UI component tree for its respective one of the plurality of applications, wherein the corresponding UI component tree includes instructions for creating one or more elements of the UI for the corresponding UI components tree, receiving inputs, from its respective one of the plurality of applications, related to the elements of the UI, and determining UI data items related to the inputs; a UI rendering engine associated with the display, the UI rendering engine configured for: receiving the UI component trees from the plurality of UI client engines, joining the plurality of UI component trees into a single tree structure including the elements of the UI; determining a predefined visual node tree for each of the elements of the UI in the single tree structure; assembling the predefined visual node trees into an overall visual node tree; receiving, from at least one of the plurality of UI client engines, UI data items related to one or more of the elements of the UI; populating the overall visual node tree with the UI data items; and rendering the UI including the elements of the UI in accordance with the overall visual node tree independently of further input from the plurality of UI client engines. receiving the UI component trees from the plurality of UI client engines, joining the plurality of UI component trees into a single tree structure including the elements of the UI; determining a predefined visual node tree for each of the elements of the UI in the single tree structure; assembling the predefined visual node trees into an overall visual node tree; receiving, from at least one of the plurality of UI client engines, UI data items related to one or more of the elements of the UI; populating the overall visual node tree with the UI data items; and rendering the UI including the elements of the UI in accordance with the overall visual node tree independently of further input from the plurality of UI client engines.