Visual Programming Graph Simplification via Signal Data Decoupling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing visual programming techniques face challenges in clarity, efficiency, and complexity due to unclear node traversal order, limited data association, and lack of options for simplifying and reusing visual programming graphs, leading to confusion and inefficiency.

Innovation Solution

The approach involves decoupling data resolution from execution signals, generating visual programming slices by combining nodes, and using locked and unlocked versions of slices to manage access and security, ensuring efficient execution and simplification of visual programming graphs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If visual programming graphs are created without decoupling data resolution from execution signals, then the graph structure remains simple, but data values may not be current when needed and execution reliability deteriorates

Engineering Contradiction:
Improveexecution reliabilityVSAvoidgraph structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the visual programming graph into distinct components: data resolution operations and execution signals. Data provider nodes resolve data values independently before execution, while signal flow triggers node execution. This segmentation ensures data currentness without requiring complex interdependencies during execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by requiring data provider nodes to resolve data values before the executing node needs them. The data resolution happens in advance during graph evaluation, ensuring current data values are available when execution is triggered by signals, eliminating the need for complex runtime data resolution.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If visual programming graphs are reused without slicing and standardization, then customization flexibility is maintained, but graph complexity increases and reuse efficiency deteriorates

Engineering Contradiction:
Improvegraph reuse efficiencyVSAvoidgraph size and complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments visual programming graphs into reusable slices that can be independently created, stored, and reused. Each slice represents a self-contained functional unit with defined inputs and outputs, allowing complex graphs to be broken down into manageable, reusable components that reduce overall graph complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements nesting by allowing slices to contain other slices, creating hierarchical structures. This enables complex functionality to be built from simpler reusable units, improving productivity through systematic reuse while maintaining organization and reducing apparent complexity through hierarchical abstraction.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Ease of operation

If node traversal order is not clearly defined in visual programming graphs, then graph flexibility is maintained, but execution clarity and reliability deteriorate

Engineering Contradiction:
Improveexecution clarityVSAvoidtraversal order definition complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the graph execution model into clear phases: data resolution phase and execution phase. During data resolution, all data provider nodes are evaluated to current values before execution begins. During execution, nodes are triggered by signal flow in a well-defined order. This segmentation provides execution clarity without requiring complex traversal rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by evaluating all data provider nodes before execution begins. This ensures that when a node is triggered for execution, all its input data is already resolved to current values, providing execution clarity without needing to define complex traversal dependencies during the execution phase.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If data association with nodes is limited in existing visual programming techniques, then node simplicity is maintained, but functionality and adaptability deteriorate

Engineering Contradiction:
Improvedata association capabilityVSAvoidnode structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments data association into distinct data input slots and data output slots on each node. This clear segmentation allows nodes to associate with multiple data sources and targets in a structured way, enhancing adaptability while maintaining node simplicity through consistent, well-defined interfaces.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements universality by designing nodes with multiple data input and output slots that can connect to various data provider nodes. This allows a single node to associate with multiple data sources and targets, providing versatile data association capability while maintaining a consistent, simple node structure that can be universally applied throughout the graph.

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

Data Source

PatentUS10642580B1Simplifying and reusing visual programming graphs
Publication Date: 2020.05.05 AMAZON TECH INC
  • US10642580B1 patent drawing
  • US10642580B1 patent drawing
  • US10642580B1 patent drawing

AI summary

Techniques for simplifying and reusing visual programming graphs are described herein. In some examples, visual programming graphs may be simplified by decoupling execution signals from data resolution. Execution of a particular node may be triggered through a representation of a signal sent from a signal output slot of another node to a signal input slot on the node being triggered. Additionally, evaluation of data values may be represented by a connection between a data output slot on the node providing the data value to a data input slot on the node receiving the data value. Another technique for simplifying visual programming graphs may include combining and/or collapsing of multiple selected visual programming nodes into a single reusable visual programming node. In some examples, reusable combined visual programming nodes may be exposed using unlocked versions and/or locked versions.