IP Library Granted Patent US 11,126,325
Granted Patent B2
US 11,126,325 · App. 15/791,351 · Granted Sep 21, 2021

Virtual workspace including shared viewport markers in a collaboration system

Inventors: Ariel Jakobovits (Redwood City, CA); Satish Santhakumar (Fremont, CA); Demian Entrekin (Oakland, CA)
Assignee: Haworth, Inc.
G06F3/0482G06F3/1431G06F3/1454H04L67/38H04L67/42
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,126,325
App. No.
15/791,351
Filed
Oct 23, 2017
Granted
Sep 21, 2021
Kind
B2
Examiner
XIAO, DI
Art Unit
2179
USPC
715/753
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 (121)

1. For use in a collaboration system, a network node comprising:

a display having a physical display space, a user input device, a processor and a communication port, the processor being configured with logic to:

establish communication with one or more other network nodes;

store collaboration data identifying graphical targets having locations in a virtual workspace, the collaboration data including locations in the virtual workspace of the identified graphical targets;

compute a mapping of a local client viewport having a location and dimensions in the virtual workspace to a local client screen space having dimensions in the physical display space;

render on the local client screen space one or more graphical targets having locations within the local client viewport as a function of the mapping; and

provide a user interface to:

display a list of viewport markers representing predefined viewports in the virtual workspace, each predefined viewport represented by the viewport markers defining an area in the virtual workspace having a location and dimensions; and

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

update the location and dimensions of the local client viewport to match the location and dimensions, in the virtual workspace, of the predefined viewport represented by the selected viewport marker, regardless of whether a creator of the predefined viewport is actively viewing the predefined viewport; and

render on the local client screen space one or more graphical targets having locations within the updated local client viewport.

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

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

add a viewport marker representing the created viewport to the list of viewport 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 one or more graphical targets having locations within the created viewport; and

the processor further includes logic to prohibit the rendering of the one or more graphical targets having locations within the created viewport 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 viewport; and

the processor further includes logic to include the user-defined title of the created viewport in the list of displayed viewport markers.

5. The network node of claim 2 , wherein:

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

the processor further includes logic to display the viewport marker representing the created viewport 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 viewport; and

the processor further includes logic to render, on the local client screen space, the one or more contextual menu list items associated with the created viewport.

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 one or more graphical targets included in the created viewport using a specified zoom- in level while still allowing the rendered one or more graphical targets to remain on the local screen space in their entirety; and

the processor further includes logic to render the one or more graphical targets included in the created viewport using the specified zoom-in level while still allowing the rendered one or more graphical targets to remain on the local 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 viewport to a different viewport that is associated with the created viewport; and

the processor further includes logic to, upon receiving a user instruction to walk to a next viewport:

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

render on the local client screen space one or more graphical targets located within the updated local client viewport.

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

create a user-defined viewport by:

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

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

create a user-defined viewport marker associated with the user-defined viewport; and

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

10. The network node of claim 9 , wherein the processor is further configured with logic to identify the area in the virtual workspace by receiving a user selection of the one or more rendered graphical targets using the user input device.

11. The network node of claim 9 , wherein the processor is further configured with logic to identify the area in the virtual workspace by receiving a user selection of the area including the one or more rendered graphical targets using the user input device.

12. The network node of claim 9 , wherein the processor is further configured with logic to:

receive a selection of one or more users of the collaboration system that are permitted to render the one or more graphical targets included in the user-defined viewport; and

include, in the transmitted metadata, an access list that identifies the selected one or more users of the collaboration system that are permitted to render the one or more graphical targets included in the user-defined viewport, wherein the transmitted access list allows for the rendering of the one or more graphical targets only by the selected one or more users that are identified by the access list.

13. The network node of claim 9 , wherein the processor is further configured with logic to:

receive a user-defined title of the user-defined viewport, as input by a user of the network node; and

include, in the transmitted metadata, the user-defined title of the user-defined viewport, wherein the transmitted title of the user-defined viewport allows for rendering of the user-defined title of the user-defined viewport as part of the user-defined viewport marker displayed as part of the list of viewport markers.

14. The network node of claim 9 , wherein the processor is further configured with logic to:

receive a user selection of a color corresponding to the user-defined viewport; and

include, in the transmitted metadata, data that represents the color corresponding to the user-defined viewport, wherein the transmitted color allows for rendering of the displayed viewport marker in the color corresponding to the user-defined viewport.

15. The network node of claim 9 , wherein the processor is further configured with logic to:

determine one or more contextual menu list items associated with the user-defined viewport, the one or more contextual menu list items being determined by the processor in dependence on characteristics of the one or more graphical targets included in the user-defined viewport; and

include, in the transmitted metadata, the one or more contextual menu list items associated with the user-defined viewport, wherein the transmitted one or more contextual menu list items allows for rendering of the one or more contextual menu list items when a menu list icon associated with the user-defined viewport is selected by a user.

16. The network node of claim 9 , wherein the processor is further configured with logic to:

receive a selection of one or more contextual menu list items associated with the user-defined viewport, the selection of the one or more contextual items being made by a user of the network node; and

include, in the transmitted metadata, the one or more contextual menu list items associated with the user-defined viewport, wherein the transmitted one or more contextual menu list items allows for rendering of the one or more contextual menu list items when a menu list icon associated with the user-defined viewport is selected by a user.

17. The network node of claim 9 , wherein the processor is further configured with logic to:

receive a user selection to indicate that a specified zoom-in level is permitted for the user-defined viewport, the specified zoom-in level indicating that a network node is to render the one or more graphical targets included in the user-defined viewport using a specified zoom-in level while still allowing the rendered one or more graphical targets to remain on the local screen space of the network node in their entirety; and

include, in the transmitted metadata, a specified zoom-in indicator representing the user selection to indicate that the specified zoom-in level is permitted, wherein the specified zoom-in indicator allows for rendering of the one or more graphical targets included in the user-defined viewport using the specified zoom-in level while still allowing the rendered one or more graphical targets to remain on the local screen space of the network node in their entirety.

18. The network node of claim 1 , wherein the processor is further configured with logic to:

receive a selection linking a created viewport to another viewport; and

include, in the transmitted metadata, information linking the created viewport to the other viewport, so as to allow for, upon receiving a user instruction to walk to a next viewport from the created viewport:

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

rendering on the local client screen space one or more graphical targets located within the updated local client viewport.

19. The network node of claim 1 , wherein the logic to render the one or more graphical targets located within the updated local client viewport on the local client screen space further includes logic to:

rearrange locations of at least some of the one or more graphical targets so that the one or more graphical targets fit into the local client screen space, when a size of the dimensions of the local client screen space is not sufficient, without rearrangement of the one or more graphical targets, to simultaneously fit the one or more graphical targets located within the updated local client viewport.

20. The network node of claim 1 , wherein the processor is further configured with logic to:

provide a user interface to receive an input to add a graphical target represented by a selected file to a destination viewport represented by a selected viewport marker from the list of displayed viewport markers; and

increase the dimensions of the destination viewport to account for the graphical target added to the destination viewport.

21. A system comprising:

a client-side network node including a display having a physical display space, a user input device, a processor and a communication port, the client-side network node being configured with logic to:

establish a link to a server-side network node;

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

a location and dimensions, within a virtual workspace, of a predefined viewport represented by a viewport marker selected from a menu of viewport markers representing predefined viewports, regardless of whether creators of the predefined viewports are actively viewing any of the predefined viewports,

graphical targets; and

virtual coordinates of the graphical targets representing locations in the virtual workspace, wherein the predefined viewport represented by the selected viewport marker defines an area in the virtual workspace having the location and dimensions, the defined area in the virtual workspace includes certain graphical targets 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 viewport represented by the selected viewport marker, comprises data specifying:

virtual coordinates of the location and dimensions, within the virtual workspace, of the predefined viewport represented by the selected viewport marker and having the defined area including the certain graphical targets; and

virtual coordinates of a location and dimensions in the virtual workspace of the certain graphical targets;

map a displayable area, in the physical display space, to locations and dimensions of a local client viewport that are updated to match the locations and dimensions of the predefined viewport represented by the selected viewport marker; and

render each of the certain graphical targets included in the defined area of the predefined viewport represented by the selected viewport marker onto the displayable area.

22. A method for operating a network node including a display having a physical display space, a user input device, a processor and a communication port, the method comprising:

establishing communication with one or more other network nodes;

storing collaboration data identifying graphical targets having locations in a virtual workspace, the collaboration data including locations in the virtual workspace of the identified graphical targets;

computing a mapping of a local client viewport having a location and dimensions in the virtual workspace to a local client screen space having dimensions in the physical display space;

rendering on the local client screen space one or more graphical targets having locations within the local client viewport as a function of the mapping; and

providing a user interface to:

display a list of viewport markers representing predefined viewports in the virtual workspace, each predefined viewport represented by the viewport markers defining an area in the virtual workspace having a location and dimensions; and

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

update the location and dimensions of the local client viewport to match the location and dimensions, in the virtual workspace, of the predefined viewport represented by the selected viewport marker, regardless of whether a creator of the predefined viewport is actively viewing the predefined viewport; and

render on the local client screen space one or more graphical targets having locations within the updated local client viewport.

23. A method for operating a client-side network node including a display having a physical display space, a user input device, a processor and a communication port, the method comprising:

establishing a link to a server-side network node;

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

a location and dimensions, within a virtual workspace, of a predefined viewport represented by a viewport marker selected from a menu of viewport markers representing predefined viewports, regardless of whether creators of the predefined viewports are actively viewing any of the predefined viewports;

graphical targets; and

virtual coordinates of the graphical targets representing locations in the virtual workspace, wherein the predefined viewport represented by the selected viewport marker defines an area in the virtual workspace having the location and dimensions, the defined area in the virtual workspace includes certain graphical targets 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 viewport represented by the selected viewport marker, comprises data specifying:

virtual coordinates of the location and dimensions, within the virtual workspace, of the predefined viewport represented by the selected viewport marker and having the defined area including the certain graphical targets; and

virtual coordinates of a location and dimensions in the virtual workspace of the certain graphical targets;

mapping a displayable area, in the physical display space, to locations and dimensions of a local client viewport that are updated to match the locations and dimensions of the predefined viewport represented by the selected viewport marker; and

rendering each of the certain graphical targets included in the defined area of the predefined viewport represented by the selected viewport marker onto the displayable area.

24. 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, a user input device, a processor and a communication port, causing the network node to perform a method comprising:

establishing communication with one or more other network nodes;

storing collaboration data identifying graphical targets having locations in a virtual workspace, the collaboration data including locations in the virtual workspace of the identified graphical targets;

computing a mapping of a local client viewport having a location and dimensions in the virtual workspace to a local client screen space having dimensions in the physical display space;

rendering on the local client screen space one or more graphical targets having locations within the local client viewport as a function of the mapping; and

providing a user interface to:

display a list of viewport markers representing predefined viewports in the virtual workspace, each predefined viewport represented by the viewport markers defining an area in the virtual workspace having a location and dimensions; and

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

update the locations and dimensions of the local client viewport to match the location and dimensions, in the virtual workspace, of the predefined viewport represented by the selected viewport marker, regardless of whether a creator of the predefined viewport is actively viewing the predefined viewport; and

render on the local client screen space one or more graphical targets having locations within the updated local client viewport.

25. 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, a user input device, a processor and a communication port, causing the client-side network node to perform a method comprising:

establishing a link to a server-side network node;

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

a location and dimensions, within a virtual workspace, of a predefined viewport represented by a viewport marker selected from a menu of viewport markers representing predefined viewports, regardless of whether creators of the predefined viewports are actively viewing any of the predefined viewports,

graphical targets; and

virtual coordinates of the graphical targets representing locations in the virtual workspace, wherein the predefined viewport represented by the selected viewport marker defines an area in the virtual workspace having the location and dimensions, the defined area in the virtual workspace includes certain graphical targets 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 viewport represented by the selected viewport marker, comprises data specifying:

virtual coordinates of the location and dimensions, within the virtual workspace, of the predefined viewport represented by the selected viewport marker and having the defined area including the certain graphical targets; and

virtual coordinates of a location and dimensions in the virtual workspace of the certain graphical targets;

mapping a displayable area, in the physical display space, to locations and dimensions of a local client viewport that are updated to match the locations and dimensions of the predefined viewport represented by the selected viewport marker; and

rendering each of the certain graphical targets included in the defined area of the predefined viewport represented by the selected viewport marker onto the displayable area.

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 Oct 23, 2017
From: JAKOBOVITS, ARIEL; SANTHAKUMAR, SATISH; ENTREKIN, DEMIAN
To: HAWORTH, INC.
Reel/Frame 043928/0281 →
Continuity (1)
Related Publication 20190121498A1 · Apr 25, 2019
Cited By (4)
US 12,254,446 US 12,360,725 US 12,401,700 US 12,701,272