IP Library Granted Patent US 8,943,468
Granted Patent B2
US 8,943,468 · App. 13/597,329 · Granted Jan 27, 2015

Wireframe recognition and analysis engine

Inventor: Kamesh Sivaraman Balasubramanian (Pasadena, CA)
Assignee: Kamesh Sivaraman Balasubramanian
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,943,468
App. No.
13/597,329
Granted
Jan 27, 2015
Kind
B2
Abstract

A method and system for dynamically producing source code for a software application from a set of wireframe images is presented herein. A wireframe recognition and analysis engine receives a set of wireframe images from an end user's device over a network. The features that comprise each wireframe in the set of wireframe images are identified by comparing against a library of models, and saved to a data store. An inference engine, driven by a knowledge base of wireframe design rules, processes the contents of the data store to formulate a collection of wireframe components. A template engine dynamically produces source code for the software application using the collection of wireframe components and a set of source templates. All produced source code are compressed into a single archive file and provided to the end user's device to download.

Claims (64)

1. A computer-implemented method for dynamically producing source code for a software application from a set of wireframe images, comprising:

defining a plurality of shapes common to wireframe images in a library of models;

defining a plurality of wireframe design rules in a knowledge base;

receiving, from an end user's device, a set of wireframe images depicting the software application to be fabricated and a set of user-configured options;

extracting the plurality of features contained in each wireframe image in the set;

wherein extracting the plurality of features contained in each wireframe in the set, comprises:

processing each wireframe image in the set of wireframe images through an edge detector to identify edges and form contours;

computing a set of contour moments of the formed contours from each wireframe image in the set;

matching the set of computed contour moments of each formed contour with those defined in the library of models to identify shape features;

performing optical character recognition on each wireframe image in the set of wireframe images to identify text features;

storing the identified features from each wireframe image in the set of wireframe images to a data store;

formulating a collection of wireframe components from the plurality of extracted features;

generating the source code for the software application from the collection of wireframe components;

where in generating comprises:

selecting a set of source templates based on the user-configured option that specifies the target platform;

associating each wireframe component from the collection of wireframe components to its corresponding source template;

producing source code using a template engine to process each source template associated with a wireframe component; and

providing to the end user's device, an archive file containing the source code for the software application.

2. The computer-implemented method of claim 1 , wherein each shape definition in the plurality of shapes defined in the library of models, comprises defining a set of contour moments for the contour that represents the shape in the library of models.

3. The computer-implemented method of claim 1 , wherein each wireframe design rule definition in the plurality of wireframe design rules defined in the knowledge base, comprises defining a wireframe component based on a set of features along with the disposition of each feature in the set of features.

4. The computer-implemented method of claim 1 , wherein the set of user-configured options received from the end user's device, includes a user-configured option to specify the target platform of the software application to be fabricated.

5. The computer-implemented method of claim 1 , wherein formulating the collection of wireframe components from the plurality of extracted features, comprises processing the contents of the data store through an inference engine that utilizes the knowledge base containing the plurality of wireframe design rules;

producing wireframe components during the execution state of the inference engine's recognize-act cycle;

storing the produced wireframe components to the data store; collecting all wireframe components that exist in the data store once the contents of the data store have arrived at a quiescent state.

6. The computer-implemented method of claim 1 , wherein generating the source code for the software application from the collection of wireframe components, comprises

compressing the produced source code into a single archive file.

7. A non-transitory computer-readable storage medium storing executable computer program instructions that constitute a service, when executed by a computer, cause the computer to perform operations comprising:

defining a plurality of shapes common to wireframe images in a library of models;

defining a plurality of wireframe design rules in a knowledge base;

receiving, from an end user's device, a set of wireframe images depicting the software application to be fabricated and a set of user-configured options;

extracting the plurality of features contained in each wireframe image in the set;

wherein extracting the plurality of features contained in each wireframe in the set, comprises:

processing each wireframe image in the set of wireframe images through an edge detector to identify edges and form contours;

computing a set of contour moments of the formed contours from each wireframe image in the set;

matching the set of computed contour moments of each formed contour with those defined in the library of models to identify shape features;

performing optical character recognition on each wireframe image in the set of wireframe images to identify text features;

storing the identified features from each wireframe image in the set of wireframe images to a data store;

formulating the collection of wireframe components from the plurality of extracted features;

generating the source code for the software application from the collection of wireframe components;

where in generating comprises:

selecting a set of source templates based on the user-configured option that specifies the target platform;

associating each wireframe component from the collection of wireframe components to its corresponding source template;

producing source code using a template engine to process each source template associated with a wireframe component; and

providing to the end user's device, an archive file containing the source code for the software application.

8. A computer system comprising: memory; input/output (I/O) device;

at least one non-transitory computer-readable storage medium storing executable computer program instructions comprising instructions for:

defining a plurality of shapes common to wireframe images in a library of models;

defining a plurality of wireframe design rules in a knowledge base;

receiving, from an end user's device via the input/output (I/O) device, a set of wireframe images depicting the software application to be fabricated and a set of user-configured options;

extracting the plurality of features contained in each wireframe image in the set;

wherein extracting the plurality of features contained in each wireframe in the set, comprises:

processing each wireframe image in the set of wireframe images through an edge detector to identify edges and form contours;

computing a set of contour moments of the formed contours from each wireframe image in the set;

matching the set of computed contour moments of each formed contour with those defined in the library of models to identify shape features;

performing optical character recognition on each wireframe image in the set of wireframe images to identify text features;

storing the identified features from each wireframe image in the set of wireframe images to a data store;

formulating the collection of wireframe components from the plurality of extracted features;

generating the source code for the software application from the collection of wireframe components;

where in generating comprises:

selecting a set of source templates based on the user-configured option that specifies the target platform;

associating each wireframe component from the collection of wireframe components to its corresponding source template;

producing source code using a template engine to process each source template associated with a wireframe component;

providing to the end user's device, via the input/output (I/O) device, an archive file containing the source code for the software application; and

at least one CPU for executing the computer program instructions.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2021
From: BALASUBRAMANIAN, KAMESH S
To: KUBELY, LLC
Reel/Frame 057646/0101 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2020
From: WIRECOG, LLC
To: BALASUBRAMANIAN, KAMESH
Reel/Frame 052680/0502 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2018
From: BALASUBRAMANIAN, KAMESH SIVARAMAN
To: WIRECOG, LLC
Reel/Frame 044832/0331 →
Continuity (1)
Related Publication 20140068553A1 · Mar 6, 2014