IP Library Granted Patent US 11,755,176
Granted Patent B2
US 11,755,176 · App. 17/480,084 · Granted Sep 12, 2023

Collaboration system including markers identifying multiple canvases in a shared virtual workspace

Inventors: Ariel Jakobovits (Redwood City, CA); Satish Santhakumar (Fremont, CA); Demian Entrekin (Oakland, CA)
Assignee: Haworth, Inc.
G06F3/0482G06F3/1431G06F3/1454H04L67/131H04L67/01
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 11,755,176
App. No.
17/480,084
Granted
Sep 12, 2023
Kind
B2
Abstract

A node of a collaboration system is provided to establish communication with other nodes, store data identifying graphical targets having locations in a virtual workspace and including locations in the virtual workspace of the identified graphical targets, and compute a mapping of a local client viewport to a local client screen space. The node is configured to render on the local client screen space graphical targets having locations within the local client viewport, provide a user interface to display a list of viewport markers representing viewports, where each viewport defines an area in the workspace, and respond to an input indicating a selected viewport marker from the list of viewport markers, update the local client viewport to match the location and dimensions of the viewport represented by the selected viewport marker, and render on the local client screen space graphical targets having locations within the updated local client viewport.

Claims (170)

1. A network node for use in a collaboration system, the network node comprising:

a display having a physical display space and a processor configured with logic to implement operations comprising:

storing collaboration data including widget locations within a virtual workspace;

rendering, on a local client screen space of the network node, a local client canvas having a location in the virtual workspace; and

providing a user interface to:

display a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

2. The network node of claim 1 , wherein the processor is further configured with logic to implement operations comprising:

receiving data from a remote network node of the collaboration system, the received data identifying a canvas created by the remote network node, the received data including metadata associated with the created canvas, and the metadata including a location and dimensions, within the virtual workspace, of the created canvas; and

adding a marker representing the created canvas to the list of markers.

3. The network node of claim 2 , wherein:

the metadata includes an access list identifying users of the collaboration system that are permitted to render the widgets having locations within the created canvas; and

the processor further includes logic to implement operations comprising prohibiting the rendering of the widgets having locations within the created canvas when a user of the network node is not identified by the access list included in the metadata.

4. The network node of claim 2 , wherein:

the metadata includes a user-defined title of the created canvas; and

the processor further includes logic to implement operations comprising including the user-defined title of the created canvas in the list of displayed markers.

5. The network node of claim 2 , wherein:

the metadata identifies a color corresponding to the created canvas; and

the processor further includes logic to implement operations comprising displaying the marker representing the created canvas in the color identified by the metadata.

6. The network node of claim 2 , wherein:

the metadata identifies one or more contextual menu list items associated with the created canvas; and

the processor further includes logic to implement operations comprising rendering, on the local client screen space, the one or more contextual menu list items associated with the created canvas.

7. The network node of claim 2 , wherein:

the metadata includes a specified zoom-in indicator indicating that the network node is to render the widgets included in the created canvas using a specified zoom-in level while still allowing the rendered widgets to remain on the local client screen space in their entirety; and

the processor further includes logic to implement operations comprising rendering the widgets included in the created canvas using the specified zoom-in level while still allowing the rendered widgets to remain on the local client screen space in their entirety, when the metadata includes the specified zoom-in indicator.

8. The network node of claim 2 , wherein:

the metadata includes information that links the created canvas to a different canvas that is associated with the created canvas; and

the processor further includes logic to implement operations comprising, upon receiving a user instruction to walk to a next canvas:

updating the location and dimensions, in the virtual workspace, of the local client canvas to match a location and dimensions, in the virtual workspace, of the different canvas; and

rendering, on the local client screen space, widgets located within the updated local client canvas.

9. The network node of claim 1 , wherein the processor is further configured with logic to implement operations comprising:

creating a user-defined canvas by:

obtaining information identifying a user-defined area in the virtual workspace that includes one or more rendered widgets and defines the user-defined canvas; and

storing data representing the user-defined canvas, the stored data including metadata identifying a location and dimensions of the area within the virtual workspace that defines the user-defined canvas;

creating a user-defined marker associated with the user-defined canvas; and

transmitting a message to all other nodes in the collaboration system, the transmitted message including the stored data representing the user-defined canvas and the user-defined marker displayed as part of the list of markers.

10. A method for operating a network node including a display having a physical display space and a processor, the method comprising:

storing collaboration data including widget locations within a virtual workspace;

rendering, on a local client screen space of the network node, a local client canvas having a location in the virtual workspace; and

providing a user interface to:

display a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

11. A non-transitory computer-readable recording medium having a program recorded thereon, the program, when executed by a network node including a display having a physical display space and a processor, causing the network node to perform operations comprising:

storing collaboration data including widget locations within a virtual workspace;

rendering, on a local client screen space of the network node, a local client canvas having a location in the virtual workspace; and

providing a user interface to:

display a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

12. A system comprising:

a client-side network node including a display having a physical display space and a processor, the client-side network node being configured with logic to implement operations comprising:

retrieving, from a server-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace;

wherein:

the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location, and

the defined area in the virtual workspace includes certain widgets for simultaneous display on the physical display space of the client-side network node when rendered by the client-side network node;

and wherein:

an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets; and

rendering each of the certain widgets included in the defined area of the predefined interactive canvas represented by the selected marker onto a displayable area of the physical display space.

13. A method for operating a client-side network node including a display having a physical display space and a processor, the method comprising:

retrieving, from a server-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace;

wherein:

the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location, and the defined area in the virtual workspace includes certain widgets for simultaneous display on the physical display space of the client-side network node when rendered by the client-side network node;

and wherein:

an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets; and

rendering each of the certain widgets included in the defined area of the predefined interactive canvas represented by the selected marker onto a displayable area of the physical display space.

14. A non-transitory computer-readable recording medium having a program recorded thereon, the program, when executed by a client-side network node including a display having a physical display space and a processor, causing the client-side network node to perform operations comprising:

retrieving, from a server-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace;

wherein:

the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location, and the defined area in the virtual workspace includes certain widgets for simultaneous display on the physical display space of the client-side network node when rendered by the client-side network node;

and wherein:

an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets; and

rendering each of the certain widgets included in the defined area of the predefined interactive canvas represented by the selected marker onto a displayable area of the physical display space.

15. A server-side network node for use in a collaboration system, the server-side network node comprising:

a processor configured with logic to implement operations comprising:

storing collaboration data including widget locations within a virtual workspace;

providing, to a client-side network node, the collaboration data allowing the client-side network node to render, on a local client screen space, a local client canvas having a location in the virtual workspace; and

providing, to the client-side network node, data allowing the client-side network node to render a user interface to:

display, on the local client screen space, a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

16. A method for operating a server-side network node including a processor, the method comprising:

storing collaboration data including widget locations within a virtual workspace;

providing, to a client-side network node, the collaboration data allowing the client-side network node to render, on a local client screen space, a local client canvas having a location in the virtual workspace; and

providing, to the client-side network node, data allowing the client-side network node to render a user interface to:

display, on the local client screen space, a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

17. The method of claim 16 , further comprising storing metadata associated with a created canvas of the predefined interactive canvases within the virtual workspace.

18. The method of claim 17 , wherein:

the metadata includes an access list identifying users that are permitted to render the widgets having locations within the created canvas; and

the method further includes prohibiting the rendering of the widgets having locations within the created canvas when a user is not identified by the access list included in the metadata.

19. The method of claim 17 , wherein:

the metadata includes a user-defined title of the created canvas; and

the method further includes providing data allowing the user-defined title of the created canvas to be included in the list of displayed markers.

20. The method of claim 17 , wherein:

the metadata identifies one or more contextual menu list items associated with the created canvas; and

the method further includes providing data allowing rendering, on the local client screen space, of the one or more contextual menu list items associated with the created canvas.

21. The method of claim 17 , wherein:

the metadata includes a specified zoom-in indicator indicating that the client-side network node is to render the widgets included in the created canvas using a specified zoom-in level while still allowing the rendered widgets to remain on the local client screen space in their entirety; and

the method further includes providing data allowing rendering of the widgets included in the created canvas using the specified zoom-in level while still allowing the rendered widgets to remain on the local client screen space in their entirety, when the metadata includes the specified zoom-in indicator.

22. The method of claim 17 , wherein the metadata includes information that links the created canvas to a different canvas that is associated with the created canvas.

23. A non-transitory computer-readable recording medium having a program recorded thereon, the program, when executed by a server-side network node including a processor, causing the server-side network node to perform operations comprising:

storing collaboration data including widget locations within a virtual workspace;

providing, to a client-side network node, the collaboration data allowing the client-side network node to render, on a local client screen space, a local client canvas having a location in the virtual workspace; and

providing, to the client-side network node, data allowing the client-side network node to render a user interface to:

display, on the local client screen space, a list of markers representing predefined interactive canvases within the virtual workspace, each predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and wherein each predefined interactive canvas defines an area and has a canvas location within the virtual workspace; and

respond to an input indicating a selected marker from the list of displayed markers to:

update the location of the local client canvas to match the canvas location of the predefined interactive canvas represented by the selected marker, regardless of whether a creator of the predefined interactive canvas is actively viewing the predefined interactive canvas; and

render, on the local client screen space, a widget having a widget location within the updated local client canvas.

24. A server-side network node of a collaboration system, the server-side network node comprising:

a processor configured with logic to implement operations comprising:

providing, to a client-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace;

wherein:

the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location, and

the defined area in the virtual workspace includes certain widgets for simultaneous display on a physical display space of the client-side network node when rendered by the client-side network node;

and wherein:

an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets.

25. A method for operating a server-side network node including a processor, the method comprising:

providing, to a client-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace,

wherein the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location,

wherein the defined area in the virtual workspace includes certain widgets for simultaneous display on a physical display space of the client-side network node when rendered by the client-side network node, and

wherein an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets.

26. The method of claim 25 , further comprising storing metadata associated with a created canvas of the predefined interactive canvases within the virtual workspace.

27. The method of claim 26 , wherein the metadata includes an access list identifying users that are permitted to render the widgets having locations within the created canvas.

28. The method of claim 26 , wherein the metadata includes a user-defined title of the created canvas.

29. The method of claim 26 , wherein the metadata identifies one or more contextual menu list items associated with the created canvas.

30. The method of claim 26 , wherein the metadata includes a specified zoom-in indicator indicating that the client-side network node is to render the widgets included in the created canvas using a specified zoom-in level while still allowing the rendered widgets to remain on a local client screen space of the client-side network node in their entirety.

31. The method of claim 26 , wherein the metadata includes information that links the created canvas to a different canvas that is associated with the created canvas.

32. A non-transitory computer-readable recording medium having a program recorded thereon, the program, when executed by a server-side network node including a processor, causing the server-side network node to perform operations comprising:

providing, to a client-side network node, at least part of a log of entries identifying:

a canvas location, within a virtual workspace, of a predefined interactive canvas configured to allow a user to create, modify, or delete objects within the predefined interactive canvas, and represented by a marker selected from a menu of markers representing predefined interactive canvases, regardless of whether creators of the predefined interactive canvases are actively viewing any of the predefined interactive canvases;

widgets; and

widget locations in the virtual workspace,

wherein the predefined interactive canvas represented by the selected marker defines an area in the virtual workspace having the canvas location,

wherein the defined area in the virtual workspace includes certain widgets for simultaneous display on a physical display space of the client-side network node when rendered by the client-side network node, and

wherein an entry in the log, which identifies the predefined interactive canvas represented by the selected marker, comprises data specifying:

virtual coordinates of the canvas location of the predefined interactive canvas represented by the selected marker and having the defined area including the certain widgets; and

virtual coordinates of widget locations in the virtual workspace of the certain widgets.

Assignments (3)
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Oct 14, 2024
From: THOUGHT STREAM LLC; HAWORTH, INC.
To: BLUESCAPE BUYER, LLC
Reel/Frame 069163/0654 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2024
From: HAWORTH, INC.
To: BLUESCAPE BUYER LLC (DBA BLUESCAPE)
Reel/Frame 069082/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2021
From: JAKOBOVITS, ARIEL; SANTHAKUMAR, SATISH; ENTREKIN, DEMIAN
To: HAWORTH, INC.
Reel/Frame 057537/0392 →