1. A method of rendering a user interface of an application operating on a computer system, the method comprising: constructing a first data structure by interfacing with the application, the first data structure having first objects associated with the user interface of the application; constructing a second data structure separate from the first data structure, the second data structure having second objects associated with the first objects of the first data structure; making implicit animations available for automatically animating properties of the second objects in response to changes received from the application; receiving from the application a change for at least one property of at least one of the first objects from a first state to a second state; changing the at least one property of the at least one first object from the first state to the second state; determining one of the implicit animations for animating the change of the at least one property for at least one of the second objects associated with the at least one first object from the first state to the second state, the implicit animation being automatically determined independent of the application and being determined based on what the at least one property is that is subject to the change, wherein the application does not include explicit animation code for the automatically determined implicit animation; and rendering from the second data structure for display with the computer system by implementing the determined animation on the at least one property of the at least one second object.