IP Library Granted Patent US 12,725,328
Granted Patent B2
US 12,725,328 · App. 18/533,674 · Granted Sep 1, 2026

Dynamically synthesized user interface widgets

Inventors: Jeevana Priya Inala (Hillsboro, OR); Chenglong Wang (Bellevue, WA); Priyan Vaithilingam (Boston, MA)
Assignee: Microsoft Technology Licensing, LLC
G06T11/26G06F3/0484G06F8/31G06F8/35G06F8/38G06F9/451G06F40/40G06N3/0475
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 12,725,328
App. No.
18/533,674
Granted
Sep 1, 2026
Kind
B2
Abstract

Systems for dynamically synthesizing widgets for chart modification are provided. A method can include receiving data indicating a dataset of structured data. The data can be provided by a user through a user interface (UI). The UI can display the data on a chart. A request can be received by the UI. The request can be provided by the user. The request can indicate an alteration to a representation of the data on the chart. A widget can be dynamically synthesized based on the request. The widget can be operable to alter the representation of the data on the chart based on user interaction with the widget. The UI can present the widget on the UI alongside the chart. The chart can be altered based on user interaction with the widget.

Claims (53)

1 . A method comprising:

receiving, by a user through a user interface (UI), data indicating a dataset of structured data;

displaying, by the UI, the data on a chart;

receiving, by the UI, a request from the user to alter a representation of the data on the chart including an initial chart-design edit of the chart;

dynamically synthesizing a widget operable to directly alter the representation of the data on the chart based on user interaction with the widget, the widget including a visualization specification and a callback function, the visualization specification including a script that defines how the widget is displayed on the UI, the callback function including code that is executed responsive to the user interacting with the widget, and the code translating user inputs provided through user interaction with the widget to visualization properties of the chart, the dynamically synthesizing including:

issuing a prompt to a large language model (LLM), the prompt including a first code template for the visualization specification, a second code template for the callback function, and a current chart visualization specification; and

receiving, from the LLM, the visualization specification and the callback function as filled in versions of the first and second code templates for the visualization specification and the callback function, respectively;

presenting, by the UI, the widget on the UI alongside the chart with the initial chart-design edit; and

altering, based on user interaction with the widget and by calling the callback function with input populated based on the user interaction, the chart, resulting in an altered chart.

2 . The method of claim 1 , wherein the request is provided in natural language through a widget input control.

3 . The method of claim 1 , the code further providing an ordered list of transform objects executed using the widget, the method further comprising:

concurrently performing the initial chart-design edit to the chart along with presentation of the widget on the UI and executing the transform objects in chronological order across widgets before rendering to generate the altered chart.

4 . The method of claim 3 , further comprising providing, by the UI, an enable/disable control for each transform contributed by a widget and wherein the transform objects are included based on a state of the enable/disable control.

5 . The method of claim 1 , further comprising:

pre-processing the dataset resulting in a data summary; and

wherein prompting the LLM further includes providing the first and second code templates along with the data summary to the LLM.

6 . The method of claim 5 , wherein prompting the LLM further includes providing few shot examples along with the prompt.

7 . A system comprising:

processing circuitry;

a display;

a user interface (UI), provided on the display by the processing circuitry, the UI configured to:

receive, by a user, data indicating a dataset of structured data;

display a representation of the data on a chart;

receive a request from the user to alter a representation of the data on the chart including an initial chart-design edit of the chart; and

issue a command to dynamically synthesize a widget operable to directly alter the representation of the data on the chart based on user interaction with the widget;

a widget engine configured to:

receive the command;

generate a prompt to generate the widget based on the command and the dataset, the prompt including a first code template for a visualization specification, a second code template for a callback function and a current chart visualization specification;

issue the prompt to a large language model (LLM); and

receive the widget from the LLM, the widget including the visualization specification and the callback function as filled in versions of the first and second code templates for the visualization specification and the callback function, respectively, the visualization specification including a script that defines how the widget is displayed on the UI, the callback function including code that is executed responsive to the user interacting with the widget, and the code translating user inputs provided through user interaction with the widget to visualization properties of the chart;

the UI further configured to present the widget alongside the chart with the initial chart-design edit; and

a chart engine configured to alter, based on user interaction with the widget on the UI and by calling the callback function with input populated based on the user interaction, the chart, resulting in an altered chart.

8 . The system of claim 7 , wherein the request is provided in natural language through a widget input control of the UI.

9 . The system of claim 7 , wherein the chart engine concurrently performs the initial chart-design edit to the chart along with presentation of the widget on the UI.

10 . The system of claim 7 , further comprising:

a data summarizer configured to pre-process the dataset resulting in a data summary; and

wherein prompting the LLM further includes providing the first and second code templates along with the data summary to the LLM.

11 . The system of claim 10 , wherein prompting the LLM further includes providing few shot examples along with the prompt.

12 . A non-transitory machine-readable medium including instructions that, when executed by a machine, cause the machine to perform operations for dynamically synthesized widgets, the operations comprising:

receiving, by a user through a user interface (UI), data indicating a dataset of structured data;

displaying, by the UI, a representation of the data on a chart;

receiving, by the UI, a request from the user to alter a representation of the chart including an initial chart-design edit of the chart;

issuing, by the UI, a command to dynamically synthesize a widget operable to alter the representation of the data on the chart based on user interaction with the widget;

receiving, by a widget engine, the command;

generating, by the widget engine, a prompt to generate the widget based on the command and the dataset, the prompt including a first code template for a visualization specification, a second code template for a callback function, and a current chart visualization specification;

issuing, by the widget engine, the prompt to a large language model (LLM);

receiving the widget from the LLM, the widget including the visualization specification and the callback function as filled in versions of the first and second code templates for the visualization specification and the callback function, respectively, the visualization specification including a script that defines how the widget is displayed on the UI, the callback function including code that is executed responsive to the user interacting with the widget, and the code translating (i) the visualization specification altered through user interaction with the widget and (ii) the chart to an altered chart;

presenting, by the UI, the widget alongside the chart with the initial chart-design edit;

altering, by a chart engine and based on user interaction with the widget on the UI and by calling the callback function with input populated based on the user interaction and the chart with the initial chart-design edit, the chart, resulting in the altered chart.

13 . The non-transitory machine-readable medium of claim 12 , further comprising:

receiving, from a data summarizer configured to pre-process the dataset, a data summary; and

wherein prompting the LLM further includes providing the code templates along with the data summary to the LLM.

14 . The non-transitory machine-readable medium of claim 13 , wherein prompting the LLM further includes providing few shot examples along with the prompt.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2023
From: INALA, JEEVANA PRIYA; WANG, CHENGLONG; VAITHILINGAM, PRIYAN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065871/0327 →
Continuity (1)
Related Publication 20250190230A1 · Jun 12, 2025
References Cited (72)
US 11138518B1 · Yu · 2021 [cited by examiner]
US 20190250891A1 · Kumar · 2019 [cited by examiner]
US 20200089700A1 · Ericson · 2020 [cited by examiner]
US 20200319872A1 · Yu · 2020 [cited by examiner]
US 20220382524A1 · Ansari · 2022 [cited by examiner]
US 20230011807A1 · Gunda · 2023 [cited by examiner]
US 20230115185A1 · Huang · 2023 [cited by examiner]
US 20230138367A1 · Song · 2023 [cited by examiner]
US 20230280985A1 · Hayashi · 2023 [cited by examiner]
US 20230342116A1 · Dibia · 2023 [cited by examiner]
US 20230409298A1 · Ciminelli · 2023 [cited by examiner]
US 20240329820A1 · Zheng · 2024 [cited by examiner]
CN 114398034A · 2022 [cited by examiner]
Stephen Collins, Crafting Prompt Templates for Code Generation, https://stephencollins.tech/posts/crafting-prompt-templates-for-code-generation (Year: 2023). [cited by examiner]
Victor Dibia, LIDA: A Tool for Automatic Generation of Grammar-Agnostic Visualizations and Infographics using Large Language Models (Jun. 6, 2023), https://arxiv.org/abs/2303.02927v3 (Year: 2023). [cited by examiner]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/057582, Mar. 14, 2025, 14 pages. [cited by applicant]
Victor Dibia, “LIDA: A Tool for Automatic Generation of Grammar-Agnostic Visualizations and Infographics using Large Language Models”, arXiv:2303.02927v2, Jun. 2, 2023, 27 pages. [cited by applicant]
Vaithilingam, et al., “DynaVis: Dynamically Synthesized UI Widgets for Visualization Editing”, In Repository of arXiv:2401.10880v1, Jan. 19, 2024, 24 pages. [cited by applicant]
“D3 by Observable.”, Retrieved from: https://d3js.org/, Retrieved Date: Oct. 3, 2023, 4 Pages. [cited by applicant]
“Explore data, deliver insights, and take action with Tableau AI”, Retrieved from: https://www.tableau.com/, Retrieved Date: Oct. 3, 2023, 2023, 08 Pages. [cited by applicant]
“ggplot2”, Retrieved from: https://ggplot2.tidyverse.org/, Retrieved Date: Oct. 3, 2023, 6 Pages. [cited by applicant]
“Natural Language AI”, Retrieved from: https://cloud.google.com/natural-language?hl=en, Retrieved Date: Oct. 3, 2023, 6 Pages. [cited by applicant]
“pandas documentation”, Retrieved from: https://pandas.pydata.org/docs/index.html, Oct. 26, 2023, 2 Pages. [cited by applicant]
“Spacy”, Retrieved from: https://spacy.io/, Retrieved Date: Oct. 3, 2023, 10 Pages. [cited by applicant]
“Turn your Data into Immediate Impact”, Retrieved from: https://web.archive.org/web/20230503230022/https://powerbi.microsoft.com/en-us/, May 3, 2023, 14 Pages. [cited by applicant]
“Welcome to Apache OpenNLP”, Retrieved from: https://opennlp.apache.org/, Retrieved Date: Oct. 3, 2023, 2 Pages. [cited by applicant]
Belinkov, et al., “Analysis methods in neural language processing: A survey”, In Journal of Transactions of the Association for Computational Linguistics, vol. 7, Mar. 2019, pp. 49-72. [cited by applicant]
Brockman, et al., “OpenAI API”, Retrieved from: https://openai.com/blog/openai-api, Jun. 11, 2020, 16 Pages. [cited by applicant]
Buck, et al., “Introduction: Use Natural Language to Explore Data with Power BI Q&A”, Retrieved from: https://learn.microsoft.com/en-us/power-bi/natural-language/q-and-a-intro, Sep. 30, 2023, 6 Pages. [cited by applicant]
Budiu, Raluca, “Memory Recognition and Recall in User Interfaces”, Retrieved from: https://www.nngroup.com/articles/recognition-and-recall/, Jul. 6, 2014, 12 Pages. [cited by applicant]
Chen, et al., “Type-directed synthesis of visualizations from natural language queries”, In Proceedings of the ACM on Programming Languages, vol. 6, Oct. 31, 2022, 28 Pages. [cited by applicant]
Crotty, et al., “Vizdom: Interactive Analytics through Pen and Touch”, In Proceedings of the VLDB Endowment, vol. 8, Issue 12, Aug. 1, 2015, pp. 2024-2027. [cited by applicant]
Dhamdhere, et al., “Analyza: Exploring Data with Conversation”, In Proceedings of the 22nd International Conference on Intelligent User Interfaces, Mar. 13, 2017, pp. 493-504. [cited by applicant]
Dibia, et al., “Data2Vis: Automatic Generation of Data Visualizations Using Sequence-to-Sequence Recurrent Neural Networks”, In Journal of IEEE Computer Graphics and Applications, vol. 39, Issue 5, Sep. 1, 2019, pp. 33-… [cited by applicant]
Dibia, Victor, “LIDA: A Tool for Automatic Generation of Grammar-Agnostic Visualizations and Infographics using Large Language Models”, In Repository of arXiv:2303.02927v1, Mar. 6, 2023, 12 Pages. [cited by applicant]
Fischer, et al., “DIY assistant: A Multi-modal End-User Programmable Virtual Assistant”, In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Jun. 19, 2021, … [cited by applicant]
Gajos, et al., “Automatically Generating user Interfaces Adapted to users' Motor and Vision Capabilities”, In Proceedings of the 20th annual ACM symposium on User interface software and technology, Oct. 7, 2007, pp. 231… [cited by applicant]
Gajos, et al., “SUPPLE: Automatically Generating User Interfaces”, In Proceedings of the 9th International Conference on Intelligent User Interfaces, Jan. 13, 2004, pp. 93-100. [cited by applicant]
Gao, et al., “DataTone: Managing Ambiguity in Natural Language Interfaces for Data Visualization”, In Proceedings of the 28th Annual ACM Symposium on User Interface Software and Technology, Nov. 8, 2015, pp. 489-500. [cited by applicant]
Lee, et al., “You Can't Always Sketch What You Want: Understanding Sensemaking in Visual Query Systems”, In Proceedings of IEEE Transactions on Visualization and Computer Graphics, vol. 26, Issue 1, Jan. 2020, pp. 1267-… [cited by applicant]
Li, et al., “Pumice: A multi-modal agent that learns concepts and conditionals from natural language and demonstrations”, In Proceedings of the 32nd annual ACM symposium on user interface software and technology, Oct. 2… [cited by applicant]
Liu, et al., “Data Illustrator: Augmenting Vector Design Tools with Lazy Data Binding for Expressive Visualization Authoring”, In Proceedings of the CHI Conference on Human Factors in Computing Systems, Apr. 21, 2018, p… [cited by applicant]
Loper, et al., “NLTK: The Natural Language Toolkit”, In Repository of arXiv:cs/0205028v1, May 17, 2002, 8 Pages. [cited by applicant]
Lukes, et al., “Synthesis of Web Layouts from Examples”, In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Aug. 23, 2021, … [cited by applicant]
Luo, et al., “Deepeye: Creating good data visualizations by keyword search”, In Proceedings of the International Conference on Management of Data, Jun. 10, 2018, pp. 1733-1736. [cited by applicant]
Manning, et al., “The Stanford CoreNLP Natural Language Processing Toolkit,” in Proceedings of 52nd Annual Meeting of the Association for Computational Linguistics: System Demonstrations, Jun. 2014, pp. 55-60. [cited by applicant]
Markas, Ruhaab, “Ask Data: Simplifying analytics with natural language”, Retrieved from: https://www.tableau.com/blog/ask-data-simplifying-analytics-natural-language-98655, Nov. 26, 2018, 6 Pages. [cited by applicant]
Moritz, et al., “Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco”, In Journal of IEEE Transactions on Visualization and Computer Graphics, vol. 25, Issue 1, Aug. 20, … [cited by applicant]
Narechania, et al., “NL4DV: A Toolkit for Generating Analytic Specifications for Data Visualization from Natural Language Queries”, In Journal of IEEE Transactions on Visualization and Computer Graphics, vol. 27, Issue … [cited by applicant]
Nichols, et al., “Huddle: Automatically Generating Interfaces for Systems of Multiple Connected Appliances”, In Proceedings of the 19th Annual ACM Symposium on user Interface Software and Technology, Oct. 15, 2006, 10 P… [cited by applicant]
Nichols, et al., “Personal Universal Controllers: Controlling Complex Appliances With GUls and Speech”, In Extended Abstracts on Human Factors in Computing Systems, Apr. 5, 2003, pp. 624-625. [cited by applicant]
Nichols, et al., “UNIFORM: Automatically Generating Consistent Remote Control user Interfaces”, In Proceedings of the SIGCHI conference on Human Factors in computing systems, Apr. 22, 2006, pp. 611-620. [cited by applicant]
Nielsen, Jakob, “10 Usability Heuristics for User Interface Design”, Retrieved from: https://www.nngroup.com/articles/ten-usability-heuristics/, Apr. 24, 1994, 17 Pages. [cited by applicant]
Norman, et al., “User Centered System Design: New Perspectives on Human-Computer Interaction”, In Publication of CRC Press; 1st edition, Jan. 1, 1986. [cited by applicant]
Ren, et al.' “Charticulator: Interactive Construction of Bespoke Chart Layouts”, In Journal of IEEE transactions on Visualization and Computer Graphics vol. 25, Issue 1, Aug. 20, 2018, pp. 789-799. [cited by applicant]
Satyanarayan, et al., “Lyra: An Interactive Visualization Design Environment”, In Computer Graphics Forum, vol. 33, Jul. 12, 2014, 10 Pages. [cited by applicant]
Satyanarayan, et al., “Vega-Lite: A grammar of interactive graphics”, In Journal of IEEE Transactions on Visualization and Computer Graphics, vol. 23, Issue 1, Jan. 2017, pp. 341-350. [cited by applicant]
Setlur, et al., “Eviza: A Natural Language Interface for Visual Analysis”, In Proceedings of the 29th Annual Symposium on user Interface Software and Technology, Oct. 16, 2016, pp. 365-377. [cited by applicant]
Shen, et al., “Towards Natural Language Interfaces for Data Visualization: A Survey”, In Journal of IEEE Transactions on Visualization and Computer Graphics, vol. 29, Jun. 2023, pp. 3121-3144. [cited by applicant]
Siddiqui, et al., “ShapeSearch: A Flexible and Efficient System for Shape-based Exploration of Trendlines”, In Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data, Jun. 11, 2020, pp. 51-65. [cited by applicant]
Srinivasan, et al., “Natural Language Interfaces for Data Analysis with Visualization: Considering What Has and Could Be Asked”, In Proceedings of the Eurographics/IEEE VGTC Conference on Visualization: Short Papers, Ju… [cited by applicant]
Vaithilingam, et al., “Bespoke: Interactively Synthesizing Custom GUls from Command-line Applications by Demonstration”, In Proceedings of the 32nd Annual ACM Symposium on user Interface Software and Technology, Oct. 17… [cited by applicant]
Wang, et al., “Towards Natural Language-Based Visualization Authoring”, In Journal of IEEE Transactions on Visualization and Computer Graphics, vol. 29, Issue 1, Jan. 2023, pp. 1222-1232. [cited by applicant]
Whitenton, Kathryn, “The Two UX Gulfs: Evaluation and Execution”, Retrieved from: https://www.nngroup.com/articles/two-ux-gulfs-evaluation-execution/, Mar. 11, 2018, 12 Pages. [cited by applicant]
Wilkinson, Leland, “The Grammar of Graphics, Second Edition”, In Publication of Springer, 2005, 693 Pages. [cited by applicant]
Wongsuphasawat, et al., “Voyager 2: Augmenting Visual Analysis with Partial View Specifications”, In Proceedings of the 2017 Chi Conference on Human Factors in Computing Systems, May 2, 2017, pp. 2648-2659. [cited by applicant]
Young, et al., “Recent Trends in Deep Learning Based Natural Language Processing”, In Journal of IEEE Computational Intelligence Magazine, vol. 13, Issue 3, Jul. 18, 2018, pp. 55-75. [cited by applicant]
Yu, et al., “FlowSense: A Natural Language Interface for Visual Data Xxploration Within a Dataflow System”, In Proceedings of IEEE Transactions on Visualization and Computer Graphics, vol. 26, Issue 1, Jan. 2020, pp. 1-… [cited by applicant]
Zamfirescu-Pereira, et al., “Why Johnny Can't Prompt: How Non-AI Experts Try (and Fail) to Design LLM Prompts”, In Proceedings of CHI Conference on Human Factors in Computing Systems, Apr. 23, 2023, 21 Pages. [cited by applicant]
Zgraggen, et al., “Panoramicdata: Data analysis through pen & touch”, In Journal of IEEE transactions on Visualization and Computer Graphics, Dec. 31, 2014, 10 Pages. [cited by applicant]
Zhang, et al., “Sato: Contextual Semantic Type Detection in Tables”, In Publication of arXiv:1911.06311v1, Nov. 14, 2019, 14 Pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/057582, mailed on Jun. 18, 2026, 09 pages. [cited by applicant]