IP Library › Granted Patent US 12,737,102
Granted Patent B2
US 12,737,102 · App. 18/749,399 · Granted Sep 15, 2026

Graphic design system utilizing variable data structures for performing simulations where attributes of stateful design elements are dynamically determined

Inventors: Sho Kuwamoto (San Francisco, CA); Shana Hu (San Francisco, CA); Amanda Yeh (San Francisco, CA); Nikolas Klein (San Francisco, CA); Jacob Miller (San Francisco, CA); Shreya Sudarshana (San Francisco, CA); Garrett Miller (San Francisco, CA)
Assignee: Figma, Inc.
G06F3/04847G06F8/38G06T11/60
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,737,102
App. No.
18/749,399
Granted
Sep 15, 2026
Kind
B2
Abstract

A computer system is operable to associate each of a first and second layer of a graphic design with a variable data structure. The first layer includes a component that is associated with multiple instances that collectively define multiple states that are associated with the component. The computer system can perform a simulation of the graphic design being deployed in a production environment by (i) setting an active value for the variable data structure based on an attribute of one of the multiple instances of the component; and (ii) automatically configuring an attribute of the object of the second layer based on the active value of the variable data structure.

Claims (48)

1 . A computer system comprising:

one or more processors;

a memory to store a set of instructions;

wherein the one or more processors are operable to execute the instructions stored in the memory, to cause the computer system to perform operations that include:

providing a design interface for a graphic design;

enabling a user to associate a first layer of the graphic design with a variable data structure, the first layer including a component that is associated with multiple instances that collectively define multiple states that are associated with the component;

enabling a user to link a second layer of the graphic design with the variable data structure, the second layer being different than the first layer, and the second layer including an object that is different than the component;

performing a simulation of the graphic design being deployed in a production environment by (i) setting an active value for the variable data structure based on an attribute of one of the multiple instances of the component; and (ii) automatically configuring an attribute of the object of the second layer based on the active value of the variable data structure.

2 . The computer system of claim 1 , wherein the operations further comprise:

enabling the user to specify an event or condition when associating the first layer with the variable data structure; and

wherein setting the active value of the variable data structure is performed in response to occurrence of the event or condition.

3 . The computer system of claim 2 , wherein the event or condition corresponds to an occurrence of a user interaction, and wherein setting the value of the variable data structure is performed in response to occurrence of the user interaction.

4 . The computer system of claim 1 , wherein the operations further comprise:

enabling the user to associate multiple layers of the graphic design, including the first layer, with the variable data structure;

for each of the multiple layers, enabling the user to specify an interaction when associating the layer with the variable data structure; and

wherein performing the simulation of the graphic design includes detecting multiple user interactions with the multiple layers, and in response to detecting each of the multiple user interactions, setting the active value of the variable data structure based on an attribute value of a corresponding layer of the multiple layers where the interaction is received.

5 . The computer system of claim 4 , wherein performing the simulation includes:

in response to detecting each of the multiple interactions, automatically changing the attribute of another layer of the multiple layers based on the active value of the variable data structure.

6 . A computer-implemented method comprising:

providing a design interface for a graphic design;

enabling a user to associate a first layer of the graphic design with a variable data structure, the first layer including a component that is associated with multiple instances that collectively define multiple states that are associated with the component;

enabling a user to link a second layer of the graphic design with the variable data structure, the second layer being different than the first layer, and the second layer including an object that is different than the component; and

performing a simulation of the graphic design being deployed in a production environment by (i) setting an active value for the variable data structure based on an attribute of one of the multiple instances of the component; and (ii) automatically configuring an attribute of the object of the second layer based on the active value of the variable data structure.

7 . The computer-implemented method of claim 6 , wherein the operations further comprise:

enabling the user to specify an event or condition when associating the first layer with the variable data structure; and

wherein setting the active value of the variable data structure is performed in response to occurrence of the event or condition.

8 . The computer-implemented method of claim 7 , wherein the event or condition corresponds to an occurrence of a user interaction, and wherein setting the value of the variable data structure is performed in response to occurrence of the user interaction.

9 . The computer-implemented method of claim 6 , wherein the operations further comprise:

enabling the user to associate multiple layers of the graphic design, including the first layer, with the variable data structure;

for each of the multiple layers, enabling the user to specify an interaction when associating the layer with the variable data structure; and

wherein performing the simulation of the graphic design includes detecting multiple user interactions with the multiple layers, and in response to detecting each of the multiple user interactions, setting the active value of the variable data structure based on an attribute value of a corresponding layer of the multiple layers where the interaction is received.

10 . The computer-implemented method of claim 9 , wherein performing the simulation includes:

in response to detecting each of the multiple interactions, automatically changing the attribute of the second layer based on the active value of the variable data structure.

11 . A non-transitory computer-readable medium that stores instructions, which when executed by one or more processors of a computer system, cause the computer system to perform operations comprising:

providing a design interface for a graphic design;

enabling a user to associate a first layer of the graphic design with a variable data structure, the first layer including a component that is associated with multiple instances that collectively define multiple states that are associated with the component;

enabling a user to link a second layer of the graphic design with the variable data structure, the second layer being different than the first layer, and the second layer including an object that is different than the component; and

performing a simulation of the graphic design being deployed in a production environment by (i) setting an active value for the variable data structure based on an attribute of one of the multiple instances of the component; and (ii) automatically configuring an attribute of the object of the second layer based on the active value of the variable data structure.

12 . The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

enabling the user to specify an event or condition when associating the first layer with the variable data structure; and

wherein setting the active value of the variable data structure is performed in response to occurrence of the event or condition.

13 . The non-transitory computer-readable medium claim 12 , wherein the event or condition corresponds to an occurrence of a user interaction, and wherein setting the value of the variable data structure is performed in response to occurrence of the user interaction.

14 . The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

enabling the user to associate multiple layers of the graphic design, including the first layer, with the variable data structure;

for each of the multiple layers, enabling the user to specify an interaction when associating the layer with the variable data structure; and

wherein performing the simulation of the graphic design includes detecting multiple user interactions with the multiple layers, and in response to detecting each of the multiple user interactions, setting the active value of the variable data structure based on an attribute value of a corresponding layer of the multiple layers where the interaction is received.

15 . The non-transitory computer-readable medium of claim 14 , wherein performing the simulation includes:

in response to detecting each of the multiple interactions, automatically changing the attribute of the second layer based on the active value of the variable data structure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2025
From: KUWAMOTO, SHO; HU, SHANA; YEH, AMANDA; KLEIN, NIKOLAS; MILLER, JACOB; SUDARSHANA, SHREYA; MILLER, GARRETT
To: FIGMA, INC.
Reel/Frame 072394/0535 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 27, 2025
From: FIGMA, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071775/0349 →
Continuity (2)
Provisional Application 63522089 · Jun 20, 2023
Related Publication 20240427482A1 · Dec 26, 2024
References Cited (79)
US 7752559B1 · Szpak · 2010 [cited by applicant]
US 8312416B2 · Freund · 2012 [cited by applicant]
US 10114733B1 · Varghese et al. · 2018 [cited by applicant]
US 10181059B1 · Brewton et al. · 2019 [cited by applicant]
US 10997217B1 · Nielsen et al. · 2021 [cited by applicant]
US 11269501B2 · Wichary et al. · 2022 [cited by applicant]
US 20070006136A1 · Hirschberg et al. · 2007 [cited by applicant]
US 20070240080A1 · Eldridge · 2007 [cited by examiner]
US 20080036776A1 · Niles · 2008 [cited by applicant]
US 20090187860A1 · Fleck · 2009 [cited by examiner]
US 20100017695A1 · Palmieri · 2010 [cited by applicant]
US 20100077330A1 · Kaplan · 2010 [cited by examiner]
US 20120233037A1 · Lamoureux · 2012 [cited by examiner]
US 20120254733A1 · Tucovic · 2012 [cited by examiner]
US 20130086529A1 · Singh et al. · 2013 [cited by applicant]
US 20130239001A1 · Maloney et al. · 2013 [cited by applicant]
US 20140071133A1 · Chu · 2014 [cited by applicant]
US 20140195901A1 · DeBlois · 2014 [cited by examiner]
US 20140356822A1 · Hoque · 2014 [cited by applicant]
US 20160048388A1 · Eksten · 2016 [cited by applicant]
US 20160274776A1 · Scheff · 2016 [cited by applicant]
US 20160371312A1 · Ben-Aharon · 2016 [cited by examiner]
US 20170221253A1 · Banerjee et al. · 2017 [cited by applicant]
US 20180174346A1 · Fratarcangeli · 2018 [cited by applicant]
US 20180268608A1 · Schneider · 2018 [cited by applicant]
US 20180308276A1 · Cohen · 2018 [cited by applicant]
US 20190035149A1 · Chen · 2019 [cited by applicant]
US 20190196694A1 · Youngblood · 2019 [cited by examiner]
US 20190206106A1 · Martin et al. · 2019 [cited by applicant]
US 20190325626A1 · Tao · 2019 [cited by applicant]
US 20200311281A1 · Boulton · 2020 [cited by applicant]
US 20210216701A1 · Qu · 2021 [cited by applicant]
US 20210241508A1 · Cichon · 2021 [cited by examiner]
US 20220012071A1 · Kim · 2022 [cited by applicant]
US 20220083316A1 · Andersson · 2022 [cited by examiner]
US 20220101582A1 · Uzgin · 2022 [cited by examiner]
US 20220245618A1 · King · 2022 [cited by examiner]
US 20230003197A1 · Huff · 2023 [cited by applicant]
US 20230219970A1 · Ban et al. · 2023 [cited by applicant]
US 20230306667A1 · Hopkins · 2023 [cited by applicant]
US 20230386118A1 · Klein · 2023 [cited by applicant]
US 20230400971A1 · Tai · 2023 [cited by applicant]
US 20230418562A1 · Andersson · 2023 [cited by applicant]
US 20240023681A1 · Wilson et al. · 2024 [cited by applicant]
US 20240111405A1 · Harvill · 2024 [cited by applicant]
US 20240143869A1 · Klein · 2024 [cited by applicant]
US 20240144443A1 · Sharma et al. · 2024 [cited by applicant]
EP 3719752 · 2020 [cited by applicant]
JP 200821221 · 2008 [cited by applicant]
WO 2022061027 · 2022 [cited by applicant]
WO 2022061027A1 · 2022 [cited by applicant]
WO 2023219970 · 2023 [cited by applicant]
WO 2024091964 · 2024 [cited by applicant]
WO 2024091964A1 · 2024 [cited by applicant]
WO 2024034855 · 2024 [cited by applicant]
WO 2024034864 · 2024 [cited by applicant]
WO 2024034867 · 2024 [cited by applicant]
Bibliographic information for “Figma Tutorial: Build and present interactive prototypes”, https://www.youtube.com/watch?v=X5qiBwqptek, Feb. 5, 2024, 2 pages. [cited by applicant]
Bibliographic information for “Figma Tutorial: Prototyping”, https://www.youtube.com/watch?v=sAAa-CCOcg, Feb. 27, 2024, 2 pages. [cited by applicant]
International Preliminary Report on Patentability mailed Jul. 2, 2024, for related PCT/US2021/050734, filed Sep. 16, 2021, 8 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Aug. 23, 2023, for related PCT/US2023 filed May 8, 2023, 11 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Dec. 22, 2021, for related PCT/US2021/050734 filed Sep. 16, 2021, 66 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Feb. 16, 2024, for related PCT/US2023/077671, filed May 2, 2024, 11 pages. [cited by applicant]
Jarzabek et al., “XVCL: XML-based Variant Configuration Language”, IEEE, pp. 1-2 (Year: 2003). [cited by applicant]
Kriouile et al., “Towards Flexible and Reusable SaaS for Multi-tenancy”, IEEE, pp. 1-7 (Year: 2014). [cited by applicant]
Paper by Figma—“Frames in Figma”, URL https://web.archive.org/web/20221004002738/ https://help.figma.com/hc/en-us/articles/360041539473-Frames-in-Figma , Oct. 10, 2022, 11 pages. [cited by applicant]
Paper by Figma—“Guide to Prototyping in Figma”, URL https://web.archive.org/web/2022102202/0956 https://help.figma.com/hc/en-us/articles/360040314193 “Flows and Starting Points” “Create Connections”, Oct. 22, 2022, 8 pa… [cited by applicant]
Paper by WeTransfer—Simple Sketch App, “Creativity at your fingertips” URL:https://web.archive.org/web/20220121205009/https://wetransfer.com/paper, 9 pages. [cited by applicant]
Written Opinion of The International Preliminary Examining Authority mailed Apr. 10, 2024, for related PCT/US2021/050734, filed Sep. 16, 2021, 7 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 18/749,359 dated Dec. 4, 2025, 38 pages. [cited by applicant]
Bezier Animations, UI Elements to Flutter Widgerts (Part 1), by Kamalesh Basu, Published in TheBrand.app on Jan. 29, 2020. 25 pages. [cited by applicant]
International Search Report and Written Opinion mailed Aug. 12, 2024 in PCT/US2024/034867. [cited by applicant]
International Search Report and Written Opinion mailed Aug. 20, 2024 in PCT/US2024/034864. [cited by applicant]
International Search Report and Written Opinion mailed Sep. 4, 2024 in PCT/US2024/034855. [cited by applicant]
Prototyping Easing Curves, The Wayback Machine by Figma Help Center. Found at:https://web.archive.org/web/20240000000000*/Prototyping%20Easing%20Curves7 pages. [cited by applicant]
Written Opinion of the International Preliminary Examining Authority mailed Sep. 16, 2024, for related PCT/US2023/0076500, filed Oct. 10, 2022, 6 pages. [cited by applicant]
Written Opinion of The International Preliminary Examining Authority mailed Sep. 18, 2024, for related PCT/US2023/0077671, filed Oct. 24, 2023, 8 pages. [cited by applicant]
Final Office Action received for U.S. Appl. No. 18/749,359 dated May 27, 2026, 31 pages. [cited by applicant]
Non-Final Rejection received for U.S. Appl. No. 18/749,422 dated Jun. 3, 2026, 31 pages. [cited by applicant]