Constraint-Based Adaptive GUI Generation from Static Designs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphical user interfaces (GUIs) face challenges in adapting to various display sizes and orientations without requiring multiple design iterations, as existing methods are time-consuming and subjective, and lack automation for creating responsive designs across different screen sizes.

Innovation Solution

A method and system for generating a constraint-based adaptive GUI from a static design, where constraints are applied hierarchically to views based on spatial relations and distances, using graph analysis to ensure views are fully constrained, allowing the GUI to adapt to different sizes and aspect ratios automatically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual design iterations are used to create GUIs for different display sizes, then design flexibility and control are improved, but time consumption and development efficiency deteriorate

Engineering Contradiction:
ImproveGUI adaptability to different display sizesVSAvoidTime required for design iterations
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system automatically generates constraints and adapts the GUI layout to different display sizes without requiring manual intervention. The constraint-based system self-adjusts the positioning and sizing of views based on the display dimensions, eliminating the need for designers to manually create multiple design iterations for different screen sizes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the parameters of the GUI layout by applying different constraints based on display size parameters. By modifying the constraint conditions according to the target display dimensions, the system generates appropriate layouts for various screen sizes from a single static design, avoiding manual redesign for each parameter variation.

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If multiple static designs are created for different display sizes, then design precision and control are improved, but device complexity and maintenance difficulty deteriorate

Engineering Contradiction:
ImproveLayout precision for specific display sizesVSAvoidNumber of design files and versions
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

A single static GUI design serves multiple functions by adapting to different display sizes through the constraint-based system. The same design file can be used to generate layouts for various screen dimensions, making the design process universal rather than requiring separate designs for each display size, thus reducing complexity while maintaining precision.

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

Solution Approach 2:

The constraint-based adaptation system acts as an intermediary between the static design and the final displayed GUI. It translates the single static design into multiple adapted versions for different display sizes, eliminating the need to manually create and manage multiple design files while ensuring precise layout control through automated constraint application.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated constraint generation is implemented, then productivity and development speed are improved, but automation complexity and algorithm complexity deteriorate

Engineering Contradiction:
ImproveGUI development speedVSAvoidComplexity of constraint generation algorithm
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system automatically analyzes the static design structure and generates appropriate constraints without requiring complex manual configuration or sophisticated algorithms. The constraint generation process serves itself by deriving constraints directly from the design hierarchy and spatial relationships, simplifying the automation complexity while maintaining high productivity.

Inventive Principle:
Principle #25Self-service

4Manufacturing precision

If constraints are applied based on spatial relations, then layout accuracy and design fidelity are improved, but computational requirements and processing time deteriorate

Engineering Contradiction:
ImproveLayout accuracyVSAvoidComputational resources required
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The constraint application process is segmented into hierarchical levels, applying constraints first to parent views and then to child views. This segmentation allows the system to achieve high layout accuracy by maintaining spatial relationships at each hierarchy level, while reducing computational requirements by processing constraints in manageable segments rather than all at once.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3631627B1Creating default layout constraints for graphical interfaces
Publication Date: 2024.11.13 GOOGLE LLC
  • EP3631627B1 patent drawingFigure 1
  • EP3631627B1 patent drawingFigure 2A~2C
  • EP3631627B1 patent drawingFigure 3A~3C

AI summary

In some implementations, a method of generating a constraint-based adaptive graphical user interface (GUI) from a static GUI design includes, obtaining a static GUI that includes a plurality of views, identifying a root view and a child view of the static GUI, applying one or more constraints to the child view based on a spatial relation of the child view to borders of the root view, determining that the child view is not fully constrained, in response to determining that the child view is not fully constrained, applying one or more additional constraints to the child view based on a spatial distance between the child view and an additional view that is a neighbor of the child view, and generating the constraint-based adaptive GUI in one or more sizes that differ from a size of the static GUI based on the one or more constraints.