Animation Engine Using Three Threads and Declarative Markup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing user interfaces lack efficient and visually pleasing animation of computer-generated display components, such as buttons, controls, and content items, which is essential for providing a smooth and engaging user experience, especially with advanced computing devices.

Innovation Solution

An animation engine utilizing three processing threads (UI thread, compositor thread, and rendering thread) and declarative markup language like XML to create and manage animation layers, specifying behaviors for display components, enabling high frame rates and smooth animations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If animation behaviors are specified for display layers to achieve visually pleasing animations, then the visual quality and user experience improve, but the processing complexity and computational resources required increase

Engineering Contradiction:
Improveease of animation creationVSAvoidprocessing thread complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The animation system is divided into three distinct processing threads: UI thread for handling user interface events and logic, compositor thread for managing layer composition and animation behaviors, and rendering thread for final image output. This segmentation allows each thread to specialize in specific tasks, improving overall system efficiency while maintaining visual quality

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The compositor thread acts as an intermediary between the UI thread and rendering thread, managing animation behaviors and layer compositions. It receives animation specifications from the UI thread, processes them through declarative markup language, and passes rendered results to the rendering thread, thereby decoupling interface logic from visual output

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If high frame rates are achieved through multiple processing threads, then animation smoothness improves, but the device resource consumption and system complexity increase

Engineering Contradiction:
Improveframe rateVSAvoidthread management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

By dividing animation processing into three separate threads (UI, compositor, rendering), each operating independently at optimal speeds, the system achieves high frame rates without requiring the entire system to operate at maximum complexity. Each thread can be optimized and tuned separately

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each processing thread operates autonomously with its own event loop and task queue, managing its own resources and synchronization without requiring constant intervention from other threads. The compositor thread self-manages animation timing and the rendering thread self-manages frame output, reducing overall system complexity

Inventive Principle:
Principle #25Self-service

3Ease of operation

If declarative markup language is used to define display behavior, then animation control and optimization improve, but the learning curve and implementation complexity increase

Engineering Contradiction:
Improveanimation controlVSAvoidmarkup language complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The declarative markup language serves multiple functions: it defines animation behaviors, specifies timing parameters, describes layer compositions, and controls rendering properties all in a single standardized format. This universal approach simplifies animation control across different display components and devices

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The markup language allows animation parameters (duration, easing functions, timing, interpolation) to be easily modified without changing the underlying animation logic. Developers can adjust animation behavior by simply changing parameter values in the declarative syntax, making animation control more accessible

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9196075B2Animation of computer-generated display components of user interfaces and content items
Publication Date: 2015.11.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9196075B2 patent drawing
  • US9196075B2 patent drawing
  • US9196075B2 patent drawing

AI summary

Animation of computer-generated display components of user interfaces and content items is provided. An animation application or engine creates images of individual display components (e.g., bitmap images) and places those images on animation layers. Animation behaviors may be specified for the layers to indicate how the layers and associated display component images animate or behave when their properties change (e.g., a movement of an object contained on a layer), as well as, to change properties on layers in order to trigger animations (e.g., an animation that causes an object to rotate). In order to achieve high animation frame rates, the animation application may utilize three processing threads, including a user interface thread, a compositor thread and a rendering thread. Display behavior may be optimized and controlled by utilizing a declarative markup language, such as the Extensible Markup Language, for defining display behavior functionality and properties.