US 11,893,205 B2
Real-time gestures in shared electronic canvases
Nathan Darrel Kile, Jr., Mercer Island, WA (US); Jaewon Hwang, Kirkland, WA (US); Nicolas Gunnar Alexander Nuzzaci, Bellevue, WA (US); David Adam Stephens, Seattle, WA (US); Kyle David Ryan, Sammamish, WA (US); and Maria Montserrat Lozano Dieck, Seattle, WA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Dec. 23, 2021, as Appl. No. 17/560,716.
Claims priority of provisional application 63/274,225, filed on Nov. 1, 2021.
Prior Publication US 2023/0135704 A1, May 4, 2023
Int. Cl. G06F 3/04812 (2022.01); G06F 3/01 (2006.01); G06F 3/038 (2013.01); G06F 3/04883 (2022.01); G06F 3/04817 (2022.01)
CPC G06F 3/04812 (2013.01) [G06F 3/017 (2013.01); G06F 3/038 (2013.01); G06F 3/04817 (2013.01); G06F 3/04883 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method for enabling real-time gestures on shared canvases, the computer-implemented method comprising:
receiving, by a shared object service, an indication of a movement of a cursor on a shared canvas managed as a shared object by the shared object service, wherein the movement of the cursor is initiated by a first client device accessing the shared canvas, and wherein the first client device comprises a first distributed data structure corresponding to the shared canvas;
logging, by the shared object service, the movement of the cursor as an operation in a cloud-based ledger of operations associated with the shared canvas;
determining that the movement of the cursor satisfies each of one or more conditions of a gesture operation;
sending data specifying the operation to a second client device accessing the shared canvas;
causing, using the data specifying the operation, the second client device to render the movement of the cursor on a graphical user interface representation of a second distributed data structure stored locally on the second client device, wherein the second distributed data structure corresponds to the shared canvas, and wherein the second client device merges the operation to the second distributed data structure; and
causing the second client device to transform the cursor to a user interface element corresponding to the gesture operation on the graphical user interface representation of the second distributed data structure corresponding to the shared canvas.