IP Library Granted Patent US 12,026,361
Granted Patent B2
US 12,026,361 · App. 18/139,299 · Granted Jul 2, 2024

System and method for implementing design system to provide preview of constraint conflicts

Inventors: Marcin Wichary (San Francisco, CA); Nikolas Klein (San Francisco, CA)
Assignee: Figma, Inc.
G06F3/04845G06F3/04842H04L67/14
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,026,361
App. No.
18/139,299
Granted
Jul 2, 2024
Kind
B2
Abstract

A computing system that can operate to implement an interactive graphic design system that enables users to preview and resolve input actions that cause conflict with predefined constraints.

Claims (62)

1. A network computer system comprising:

one or more processors;

a memory sub-system to store a set of network-side instructions;

wherein the one or more processors execute the set of network-side instructions to:

(i) enable a first user device of a plurality of user devices that is associated with an account to access data sets for a design under edit that includes a plurality of objects;

(ii) communicate to the first user device a plurality of constraints of the design under edit;

(iii) communicate user device instructions to the first user device; wherein the user device instructions include instructions that when executed by the first user device, cause the first user device to:

a) render the design under edit on a canvas of the first user device, wherein the design under edit includes:

i. a first object of the plurality of objects with a first attribute of a plurality of attributes; and

ii. a second object of the plurality of objects with a second attribute of a plurality of attributes

b) enable a first user of the first user device to provide input for performing any one of a plurality of input actions on the design under edit;

c) in response to receiving a first user input, predict, while a first input action corresponding to the first user input is in progress, how the first input action will modify the second attribute of the second object to generate a modified second attribute;

d) determine that implementing the first input action that would create the modified second attribute would cause the modified second object to be in conflict with the first attribute of the first object based on one of the plurality of constraints of the design under edit;

e) render a preview that is indicative of the conflict between the first object and the second object; and

f) enable the first user to respond to the preview to generate an outcome with respect to rendering the object.

2. The network computer system of claim 1 , wherein the first object and the second object are concurrently edited.

3. The network computer system of claim 1 , wherein enabling the first user input includes enabling the first user to provide input to resolve the conflict.

4. The network computer system of claim 1 , wherein enabling the first user input includes enabling the first user to provide input to override the constraint.

5. The network computer system of claim 1 , wherein enabling the first user input includes enabling the user to modify the first object or the second object.

6. The network computer system of claim 1 , wherein enabling the first user input includes enabling the user to provide input to resolve the conflict by changing the first attribute of the first object or the second attribute of the second object.

7. The network computer system of claim 1 , wherein the first attribute of the first object is concurrently modified by a second user of a second user device resulting in the first attribute being replaced by a modified first attribute.

8. The network computer system of claim 7 , wherein enabling the first user input includes enabling the second user to cancel a modification of the modified first attribute of the first object.

9. The network computer system of claim 1 , wherein the one or more processors execute the set of network-side instructions to:

for each user device of the plurality of user devices,

(i) establish a data connection with the user device for a respective user session,

(ii) during the respective user session, receive, using the established data connection, change data, the change data including data that is indicative of each input action that is implemented to the design under edit of the user device, and

(iii) record the change data; and

wherein the user device instructions include instructions, that when executed by each user device of the plurality of user devices, cause the user device to:

during the respective user session, transmit the change data to the network computer system using the data connection.

10. The network computer system of claim 9 , wherein the one or more processors record the change data by updating a network-side data representation of the design under edit.

11. The network computer system of claim 10 , wherein the one or more processors execute the set of network-side instructions to identify multiple user devices, including the first user device, that have overlapping sessions during which the multiple user devices implement input operations to the design under edit; and wherein for at least the first user device, the change data does not reflect the preview.

12. A non-transitory computer-readable medium that stores instructions that, when executed by one or more processors of a computing device, cause the computing device to perform operations including:

(i) enabling a first user device of a plurality of user devices that is associated with an account to access data sets for a design under edit that includes a plurality of objects;

(ii) communicating to the first user device a plurality of constraints of the design under edit;

(iii) communicating user device instructions to the first user device; wherein the user device instructions include instructions that when executed by the first user device, cause the first user device to perform operations that include:

a) rendering the design under edit on a canvas of the first user device, wherein the device under edit includes:

i. a first object of the plurality of objects with a first attribute of a plurality of attributes; and

ii. a second object of the plurality of objects with a second attribute of a plurality of attributes

b) enabling a first user of the first user device to provide input for performing any one of a plurality of input actions on the design under edit;

c) in response to receiving a first user input, predicting, while a first input action corresponding to the first user input is in progress, how the first input action will modify the second attribute of the second object to generate a modified second attribute;

d) determining that implementing the first input action that would create the modified second attribute would cause the modified second object to be in conflict with the first attribute of the first object based on one of the plurality of constraints of the design under edit;

e) rendering a preview that is indicative of the conflict between the first object and the second object; and

f) enabling the first user to respond to the preview to generate an outcome with respect to rendering the object.

13. The non-transitory computer-readable medium of claim 12 , wherein enabling the first user input includes enabling the first user to provide input to resolve the conflict.

14. The non-transitory computer-readable medium of claim 12 , wherein enabling the first user input includes enabling the first user to provide input to override the constraint.

15. The non-transitory computer-readable medium of claim 12 , wherein enabling the first user input includes enabling the first user to modify the first object or the second object.

16. A method for operating a computing device, the method comprising one or more processors and comprising:

(i) enabling a first user device of a plurality of user devices that is associated with an account to access data sets for a design under edit that includes a plurality of objects;

(ii) communicating to the first user device a plurality of constraints of the design under edit;

(iii) communicating user device instructions to the first user device; wherein the user device instructions include instructions that when executed by the first user device, cause the first user device to perform steps that include:

a) rendering the design under edit on a canvas of the first user device, wherein the device under edit includes:

i. a first object of the plurality of objects with a first attribute of a plurality of attributes; and

ii. a second object of the plurality of objects with a second attribute of a plurality of attributes

b) enabling a first user of the first user device to provide input for performing any one of a plurality of input actions on the design under edit;

c) in response to receiving a first user input, predicting, while a first input action corresponding to the first user input is in progress, how the first input action will modify the second attribute of the second object to generate a modified second attribute;

d) determining that implementing the first input action that would create the modified second attribute would cause the modified second object to be in conflict with the first attribute of the first object based on one of the plurality of constraints of the design under edit;

e) rendering a preview that is indicative of the conflict between the first object and the second object; and

f) enabling the first user to respond to the preview to generate an outcome with respect to rendering the object.

17. The method of claim 16 , wherein enabling the first user input includes enabling the first user to provide input to resolve the conflict.

18. The method of claim 16 , wherein enabling the first user input includes enabling the user to provide input to override the constraint.

19. The method of claim 16 , wherein enabling the first user input includes enabling the first user to modify the first object or the second object.

20. The method of claim 16 , wherein enabling the first user input includes enabling the user to provide input to resolve the conflict by changing the first attribute of the first object or the second attribute of the second object.

Assignments (1)
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 (3)
Continuation 17570200 · Jan 6, 2022
Continuation 16682982 · Nov 13, 2019
Related Publication 20230333723A1 · Oct 19, 2023