# US 2017/0286799 A1 · Automated realization of hand-drawn topologies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286799 A1
- Document ID: US20170286799A1
- Status: Published application
- Kind: A1
- Application number: 15/238,733
- Filed: 2016-08-17
- Published: 2017-10-05
- Earliest claimed: 2016-04-01
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: BHAGYASHREE GUJAR; DIMAL BABY; NIKHIL BOKARE; DEVIDAS GARGOTE
- Web page: https://patentgrep.com/patent/US20170286799A1

## CPC

- G06V 30/347: {Sampling; Contour coding; Stroke extraction}
- G06T 2207/10004: Still image; Photographic image
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Techniques disclosed herein provide an approach for automated realization of hand-drawn topologies. In one embodiment, a topologizer application is configured to parse an image depicting a hand-drawn topology and identify shapes and relationships between the shapes in the image. The topologizer may convert the hand-drawn topology to polygons and then identify the polygons as being, e.g., particular shapes and arrows representing relationships between the shapes. The identified shapes and relationships are then output in a machine-readable format for consumption, in which the shapes are mapped to corresponding components of a computing system and deployed based on the mapping and the relationships indicated in the topologizer output.

## Claims

### Claim 1

A method of deploying a topology in a computing system, comprising:
receiving an image depicting the topology;
parsing the received image to identify shapes and relationships between the shapes in the received image, wherein the parsing includes converting the topology depicted in the image into polygons, and wherein the relationships between the shapes are determined based on at least angles of one or more of the polygons representing arrows between the shapes;
mapping each of the shapes to a corresponding system component; and
creating instances of the corresponding system components based on the mapping of shapes to corresponding system components and the identified relationships.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
outputting the identified shapes and relationships between the shapes in a machine-readable format,
wherein mapping each of the shapes to the corresponding system component includes parsing the output in the machine-readable format.

### Claim 3 (depends on 2)

The method of claim 2, further comprising, displaying the output to a user for verification, wherein the mapping and creating steps are performed in response to verification by the user that the output accurately specifies the topology depicted in the received image.

### Claim 4 (depends on 1)

The method of claim 1,
wherein the relationships between the shapes are determined by identifying the arrows represented by the one or more polygons and the shapes closest to the heads and tails of the arrows.

### Claim 5 (depends on 4)

The method of claim 4, wherein the head and tail of each of the arrows are determined by:
determining whether each of the angles formed at vertices of a polygon representing the arrow is a reflex angle or a non-reflex angle;
matching reflex and non-reflex angles at the vertices of the polygon representing the arrow to a sequence of reflex and non-reflex angles of an arrow;
selecting the head of the arrow as a central vertex in three consecutive vertices in the sequence of angles that are all reflex angles or non-reflex angles; and
selecting the tail of the arrow as a vertex that is three vertices away from the selected head vertex.

### Claim 6 (depends on 1)

The method of claim 1, wherein the instances of the corresponding system components are created responsive to determining that the shapes and the relationships between the shapes represent a valid topology.

### Claim 7 (depends on 1)

The method of claim 1, wherein mappings between shapes and system components are predefined by a user.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
identifying text in the received image;
mapping the identified text to one or more corresponding system components,
wherein the instances of the corresponding system components are created based on the mapping of the shapes to system components and the mapping of the text to system components.

### Claim 9 (depends on 1)

The method of claim 1, wherein the system is a virtualized computing system and the system components include at least one of a datacenter, a host computer cluster, a host computer, and a virtual machine (VM).

### Claim 10 (depends on 1)

The method of claim 1, wherein the image depicting the topology is a hand-drawn image captured via a camera or a scanner.

### Claim 11

A non-transitory computer-readable storage medium containing a program which, when executed by one or more processors, performs operations for automatically deploying a topology in a computing system, the operations comprising:
receiving an image depicting the topology;
parsing the received image to identify shapes and relationships between the shapes in the received image, wherein the parsing includes converting the topology depicted in the image into polygons, and wherein the relationships between the shapes are determined based on at least angles of one or more of the polygons representing arrows between the shapes;
mapping each of the shapes to a corresponding system component; and
creating instances of the corresponding system components based on the mapping of shapes to corresponding system components and the identified relationships.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, the operations further comprising:
outputting the identified shapes and relationships between the shapes in a machine-readable format,
wherein mapping each of the shapes to the corresponding system component includes parsing the output in the machine-readable format.

### Claim 13 (depends on 11)

The non-transitory computer-readable storage medium of claim 11,
wherein the relationships between the shapes are determined by identifying the arrows represented by the one or more polygons and the shapes closest to the heads and tails of the arrows.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the head and tail of each of the arrows are determined by:
determining whether each of the angles formed at vertices of a polygon representing the arrow is a reflex angle or a non-reflex angle;
matching reflex and non-reflex angles at the vertices of the polygon representing the arrow to a sequence of reflex and non-reflex angles of an arrow;
selecting the head of the arrow as a central vertex in three consecutive vertices in the sequence of angles that are all reflex angles or non-reflex angles; and
selecting the tail of the arrow as a vertex that is three vertices away from the selected head vertex.

### Claim 15 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the instances of the corresponding system components are created responsive to determining that the shapes and the relationships between the shapes represent a valid topology.

### Claim 16 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein mappings between shapes and system components are predefined by a user.

### Claim 17 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, the operations further comprising:
identifying text in the received image;
mapping the identified text to one or more corresponding system components,
wherein the instances of the corresponding system components are created based on the mappings of the shapes to system components and the mappings of the text to system components.

### Claim 18 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the system is a virtualized computing system and the system components include at least one of a datacenter, a host computer cluster, a host computer, and a virtual machine (VM).

### Claim 19 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the image depicting the topology is a hand-drawn image captured via a camera or a scanner.

### Claim 20

A system, comprising:
a processor; and
a memory, wherein the memory includes a program executable in the processor to perform operations for automatically deploying a topology in a computing system, the operations comprising:
receiving an image depicting the topology,
parsing the received image to identify shapes and relationships between the shapes in the received image, wherein the parsing includes converting the topology depicted in the image into polygons, and wherein the relationships between the shapes are determined based on at least angles of one or more of the polygons representing arrows between the shapes,
mapping each of the shapes to a corresponding system component, and
creating instances of the corresponding system components based on the mapping of shapes to corresponding system components and the identified relationships.
