Independent Expression Animations in Multi-Threaded UI Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded user interface systems, separate threads often operate independently, making it difficult for developers to describe object properties relative to other object properties in animations, as they access different memory areas, preventing easy collaboration and real-time updates.

Innovation Solution

The implementation of an independent expression within a secondary code thread allows for the evaluation of object properties as a function of other properties, enabling real-time updates and interpolation of animated object values by combining key frames, using source and target bindings with sampling modes to manage dynamic object interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If separate threads operate independently to execute primary and secondary code sets, then processing efficiency is improved through multi-threaded execution, but object property collaboration and real-time updates deteriorate due to isolated memory access

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidobject property collaboration
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces expressions as intermediary mechanisms that bridge the primary and secondary code threads. These expressions reside in the secondary thread's memory space and enable the rendering code thread to access and manipulate object properties defined in the application code thread, facilitating collaboration while maintaining thread independence

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a new dimension of interaction by allowing the secondary thread to access primary thread objects through expression-based references. This dimensional bridge enables property collaboration across thread boundaries without compromising the architectural separation that provides processing efficiency

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of operation

If the secondary code thread accesses the primary code thread's memory space for real-time updates, then object property collaboration is improved, but thread independence and rendering performance deteriorate

Engineering Contradiction:
Improveobject property collaborationVSAvoidrendering performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Expressions serve as intermediary data structures that allow the secondary thread to work with object properties without direct memory access to the primary thread. The expressions are evaluated within the secondary thread's context, maintaining rendering performance while enabling property collaboration

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a copying mechanism where the secondary thread creates local copies of object property data through expressions. This allows real-time manipulation and interpolation of animated properties without blocking or interfering with the primary thread's rendering operations

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If developers need to describe object properties as functions of other properties in animations, then animation flexibility is improved, but thread complexity increases due to cross-thread memory access requirements

Engineering Contradiction:
Improveanimation flexibilityVSAvoidthread complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent enables the secondary code thread to self-service by evaluating expressions locally within its own memory space. The rendering code thread can independently compute animated property values based on expressions that reference objects from the primary thread, eliminating the need for complex cross-thread synchronization and memory management mechanisms

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10466974B2Independent expression animations
Publication Date: 2019.11.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10466974B2 patent drawing
  • US10466974B2 patent drawing
  • US10466974B2 patent drawing

AI summary

In one embodiment, a user interface system may execute an independent expression in a secondary code set to facilitate taking a dynamic object reading for a target composition object. The user interface system may execute a primary code thread and a secondary code thread for a user interface. The primary code thread may generate an independent expression resident in the secondary code thread. The independent expression may gather an input set resident in the secondary code thread for a target composition object. The secondary code thread may render the target composition object based on the input set.