Animation framework
AssigneeMicrosoft Technology Licensing, LLC
InventorBarry Christopher Allyn
Life of this patent
Estimating the term…
Abstract
An animation framework for animating arbitrary changes in a visualization via morphing of geometries is provided. Geometry from a visualization is captured from before and after a change to the visualization, which is used to generate a series of frames to provide a smooth morphing animation of the change to the visualization. Transitional geometry representing a merged state between the initial geometry and the final geometry of the visualization is generated to build frames between the initial frame and the final frame. The morphing animation may be governed by a timing curve and may be built according to a display rate to ensure a smooth animation.
Claims20
A method for creating a morphing animation of a change to a visualization, comprising:
- taking an initial snapshot of geometries comprising the visualization before the change;
- taking a final snapshot of the geometries comprising the visualization after the change;
- caching the initial snapshot and the final snapshot;
- interpreting the cached snapshots to create merged geometries, wherein the merged geometries represent transitional states between the cached snapshots;
- synthesizing a plurality of frames renderable as static images to comprise the morphing animation, wherein the frames are generated based on the merged geometries;
- and
- transmitting the plurality of frames to a client to be rendered in the visualization, thereby providing the morphing animation of the change to the visualization.
A system for creating a morphing animation of a change to a visualization, comprising:
- a processor;
- and
- a memory storage including instructions, which when executed by the processor are operable to provide:
- an animation engine operable to provide a morphing animation of a change to a visualization of data, the animation engine including:
- a snapshot module, operable to respond to the change to the visualization by taking an initial snapshot of geometries comprising the visualization before the change and a final snapshot of the geometries comprising the visualization after the change;
- a tweener module, operable to receive the initial snapshot and the final snapshot from the snapshot module, and interpret the snapshots to create merged geometries, wherein the merged geometries represent transitional states between the initial snapshot and the final snapshot;
- a framing module, operable to receive the merged geometries from the tweener module to generate a plurality of frames renderable by a client as static images to comprise the morphing animation, wherein the frames are generated based on the merged geometries;
- and
- a buffer module, operable to receive the plurality of frames from the framing module to store the plurality of frames and transmit the plurality of frames to the client to be rendered in the visualization, thereby providing the morphing animation of the change.
A computing device for creating a morphing animation, comprising:
- a processor;
- and
- a memory storage including instructions, which when executed by the processor are operable to:
- receive a timing curve, the timing curve including a duration of the morphing animation;
- receive a Frames per Second (FPS) rate at which a client will render the morphing animation;
- take an initial snapshot of geometries comprising the visualization before the change;
- take a final snapshot of the geometries comprising the visualization after the change;
- cache the initial snapshot and the final snap shot as key frames within a storyboard object;
- interpret the cached snapshots to create merged geometries, wherein the merged geometries represent transitional states between the cached snapshots, wherein the transitional states are determined according to the timing curve;
- generate a plurality of frames renderable as static images to comprise the morphing animation, wherein the frames are generated based on the merged geometries, and wherein a number of the plurality of frames does not exceed a number based on the duration and the FPS rate;
- cache the plurality of frames within the storyboard object according to a timeline;
- and
- transmit the storyboard object to the client to be rendered in the visualization, wherein the storyboard object is operable to provide repeated playback of the morphing animation of the change.
Dependencies are inferred from the claim text.