Data Visualization Rendering Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Organizations face challenges in efficiently visualizing large and complex data sets, as existing methods struggle to provide meaningful and quick visualization solutions.

Innovation Solution

A data visualization approach that generates GPU or CPU code for drawing shapes based on available hardware, tailoring the code to constant, data-mapped, and animated attribute values, and omitting conditional statements to enhance performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional CPU-based data visualization methods are used, then the system is simple to implement, but the rendering speed and performance deteriorate when handling large data sets

Engineering Contradiction:
Improverendering speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent replaces the traditional CPU-based rendering mechanism with a GPU-based rendering system. The visualization system compiles and executes shader programs on the GPU that directly process large data sets in parallel, substituting the sequential CPU processing mechanism with a parallel graphics processing mechanism. This substitution dramatically improves rendering speed for large data sets while managing complexity through automated shader compilation and hardware detection.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If generic visualization code is used that handles all possible data types, then the code is versatile and adaptable, but the execution speed and performance deteriorate due to conditional statements and type checking

Engineering Contradiction:
Improvevisualization efficiencyVSAvoidcode flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by pre-compiling specific visualization code (shaders) for each data type and attribute combination before runtime. The system detects the data types and attributes in advance, compiles the appropriate specialized shader code, and stores it for direct execution. This eliminates the need for runtime conditional statements and type checking, achieving both high productivity and maintained adaptability through pre-prepared specialized code paths.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of code specialization from generic to type-specific. Instead of using a single generic visualization function with conditional logic, the system generates and executes different shader programs with parameters optimized for specific data types (e.g., integer, floating-point, categorical) and attribute configurations. This parameter change enables direct execution without conditional overhead while maintaining versatility through multiple specialized code variants.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If detailed conditional logic is included to handle all edge cases and data variations, then the code is robust and reliable, but the execution speed deteriorates due to increased branching and computational overhead

Engineering Contradiction:
Improvecode robustnessVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments the visualization code into multiple specialized shader programs, each handling a specific data type and attribute combination. Instead of one monolithic function with nested conditionals, the system divides the logic into separate compiled shaders that directly handle their specific cases without branching. This segmentation maintains reliability by covering all cases through comprehensive type detection and shader selection, while improving speed by eliminating runtime conditional logic within each specialized path.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9754392B2Generating data-mapped visualization of data
Publication Date: 2017.09.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9754392B2 patent drawing
  • US9754392B2 patent drawing
  • US9754392B2 patent drawing

AI summary

Aspects of the subject matter described herein relate to data visualization. In aspects, a caller sends a request to draw a set of shapes that have a shape type common among the shapes. The request may be for a static drawing or 1 of N animation frames. If the device has a graphical processing unit (GPU) that is available, GPU code is generated for the GPU to draw the set of shapes. Otherwise, CPU code is generated to draw the set of shapes. The drawing code is tailored to the constant, data-mapped, and animated attribute values specified by the caller and omits conditional statements that test values that are computable prior to drawing the shapes.