IP Library Granted Patent US 11,797,256
Granted Patent B2
US 11,797,256 · App. 18/204,336 · Granted Oct 24, 2023

Virtual workspace viewport following in collaboration systems

Inventors: Satish Santhakumar (Fremont, CA); Demian Entrekin (Oakland, CA)
Assignee: Haworth, Inc.
G06F3/1454G06F3/0481G06F3/0485G06F3/04817G06F3/04883G06F9/451G06F9/452H04L12/1813H04L12/1827H04M3/567H04M7/0027G06F2203/04806G06Q10/101G09G2340/0407
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,797,256
App. No.
18/204,336
Granted
Oct 24, 2023
Kind
B2
Abstract

A collaboration system is provided and includes memory storing collaboration data including a spatial event map locating events in a virtual workspace and a local display including a screen space. The collaboration system further includes logic to identify a local client viewport in the virtual workspace, logic to render, in the screen space on the local display, graphical objects identified by events in the spatial event map that have locations within the local client viewport, logic to change a location and a dimension of the local client viewport in the virtual workspace in response to input signals, logic to render, in the screen space on the local display, graphical objects identified by events in the spatial event map that have locations within the changed local client viewport, and logic to generate a viewport change event in response to the change of the local client viewport in response to input signals.

Claims (57)

1. A method for operating a server node having a processor and a communication port, the method comprising:

establishing communication with one or more nodes;

sending data identifying graphical targets having locations in a virtual workspace, the data including (i) locations in the virtual workspace of the identified graphical targets and (ii) at least a portion of a log of events relating to the graphical targets having locations in the virtual workspace and including entries of a viewport change event comprising a specification of dimensions, of a viewport of a first node, to be displayed on a viewport of a second node, wherein the first node viewport and the second node viewport are viewports of different or overlapping areas of the virtual workspace;

sending data to allow computing of a mapping of the second node viewport having a location and dimensions in the virtual workspace to a second node screen space having dimensions in a physical display space, and to allow displaying of graphical targets having locations in the second node viewport to the second node screen space as a function of the mapping;

sending data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport, the determination including:

(i) a first mode in which the second node viewport is changed in response to user input received from the second node; and

(ii) a second mode in which messages are monitored, the messages containing locations and changes of location in the virtual workspace of the first node viewport from the first node, and upon retrieval of a viewport change event the second node viewport is changed using the locations and changes of location contained in the messages, wherein:

the second node screen space and a first node screen space have different dimensions and the changing of the second node viewport using the locations and changes of location contained in the messages defines dimensions of the second node viewport so that the first node viewport falls within the changed second node viewport displayed in the second node screen space; and

entries are recorded in the log of events including the entries of the viewport change event.

2. The method of claim 1 , further including sending data to allow display of a graphical user interface using the physical display space, the graphical user interface including user input constructs for selection of the first node.

3. The method of claim 1 , wherein the second node screen space has static dimensions in the physical display space.

4. The method of claim 1 , wherein the second node screen space has a static resolution including a number of pixels, and the dimensions of the second node viewport define a changeable resolution including a number of virtual pixels in the virtual workspace, and

wherein the mapping is used to determine a zoom factor based on differences in the static resolution and the changeable resolution.

5. The method of claim 1 , wherein entries in the log include records of events,

and wherein a record of an event includes an identifier of an action, a location in the virtual workspace of a graphical target of the action, a time of the action, and a target identifier of the graphical target.

6. The method of claim 1 , further including:

sending data to allow display of a user interface displaying a list of location markers in the virtual workspace, a location marker having a marked location in the virtual workspace; and

sending data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport responsive to an input indicating a selected location marker, to update the location of the second node viewport to the marked location.

7. The method of claim 1 , further including sending messages to other client nodes, the messages identifying locations and changes of locations made in the first mode of the second node viewport, and the messages including a specification of dimensions in the virtual workspace of the second node viewport.

8. A server node comprising:

a processor and a communication port, the processor being configured with logic to:

establish communication with one or more nodes;

send data identifying graphical targets having locations in a virtual workspace, the data including (i) locations in the virtual workspace of the identified graphical targets and (ii) at least a portion of a log of events relating to the graphical targets having locations in the virtual workspace and including entries of a viewport change event comprising a specification of dimensions, of a viewport of a first node, to be displayed on a viewport of a second node, wherein the first node viewport and the second node viewport are viewports of different or overlapping areas of the virtual workspace;

send data to allow computing of a mapping of the second node viewport having a location and dimensions in the virtual workspace to a second node screen space having dimensions in a physical display space, and allow displaying of graphical targets having locations in the second node viewport to the second node screen space as a function of the mapping;

send data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport, the determination including:

(i) a first mode in which the second node viewport is changed in response to user input received from the second node; and

(ii) a second mode in which messages are monitored, the messages containing locations and changes of location in the virtual workspace of the first node viewport from the first node, and upon retrieval of a viewport change event the second node viewport is changed using the locations and changes of location contained in the messages, wherein:

the second node screen space and a first node screen space have different dimensions and the changing of the second node viewport using the locations and changes of location contained in the messages defines dimensions of the second node viewport so that the first node viewport falls within the changed second node viewport displayed in the second node screen space; and

entries are recorded in the log of events including the entries of the viewport change event.

9. The server node of claim 8 , further including logic to send data to allow display of a graphical user interface using the physical display space, the graphical user interface including user input constructs for selection of the first node.

10. The server node of claim 8 , wherein the second node screen space has static dimensions in the physical display space.

11. The server node of claim 8 , wherein the second node screen space has a static resolution including a number of pixels, and the dimensions of the second node viewport define a changeable resolution including a number of virtual pixels in the virtual workspace, and

wherein the mapping is used to determine a zoom factor based on differences in the static resolution and the changeable resolution.

12. The server node of claim 8 , wherein entries in the log include records of events,

and wherein a record of an event includes an identifier of an action, a location in the virtual workspace of a graphical target of the action, a time of the action, and a target identifier of the graphical target.

13. The server node of claim 8 , further including logic to:

send data to allow display of a user interface displaying a list of location markers in the virtual workspace, a location marker having a marked location in the virtual workspace; and

send data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport responsive to an input indicating a selected location marker, to update the location of the second node viewport to the marked location.

14. The server node of claim 8 , further including logic to send messages to other client nodes, the messages identifying locations and changes of locations made in the first mode of the second node viewport, and the messages including a specification of dimensions in the virtual workspace of the second node viewport.

15. A non-transitory computer-readable memory recording medium having computer instructions recorded thereon, the computer instructions, when executed on one or more processors, causing the one or more processors to implement operations including:

establishing communication with one or more nodes;

sending data identifying graphical targets having locations in a virtual workspace, the data including (i) locations in the virtual workspace of the identified graphical targets and (ii) at least a portion of a log of events relating to the graphical targets having locations in the virtual workspace and including entries of a viewport change event comprising a specification of dimensions, of a viewport of a first node to be displayed on a viewport of a second node, wherein the first node viewport and the second node viewport are viewports of different or overlapping areas of the virtual workspace;

sending data to allow computing of a mapping of the second node viewport having a location and dimensions in the virtual workspace to a second node screen space having dimensions in a physical display space, and to allow displaying of graphical targets having locations in the second node viewport to the second node screen space as a function of the mapping;

sending data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport, the determination including:

(i) a first mode in which the second node viewport is changed in response to user input received from the second node; and

(ii) a second mode in which messages are monitored, the messages containing locations and changes of location in the virtual workspace of the first node viewport from the first node, and upon retrieval of a viewport change event the second node viewport is changed using the locations and changes of location contained in the messages, wherein:

the second node screen space and a first node screen space have different dimensions and the changing of the second node viewport using the locations and changes of location contained in the messages defines dimensions of the second node viewport so that the first node viewport falls within the changed second node viewport displayed in the second node screen space; and

entries are recorded in the log of events including the entries of the viewport change event.

16. The non-transitory computer-readable recording medium of claim 15 , wherein the operations further include sending data to allow display of a graphical user interface using the physical display space, the graphical user interface including user input constructs for selection of the first node.

17. The non-transitory computer-readable recording medium of claim 15 , wherein the second node screen space has static dimensions in the physical display space.

18. The non-transitory computer-readable recording medium of claim 15 , wherein the second node screen space has a static resolution including a number of pixels, and the dimensions of the second node viewport define a changeable resolution including a number of virtual pixels in the virtual workspace, and

wherein the mapping is used to determine a zoom factor based on differences in the static resolution and the changeable resolution.

19. The non-transitory computer-readable recording medium of claim 15 , wherein entries in the log include records of events,

and wherein a record of an event includes an identifier of an action, a location in the virtual workspace of a graphical target of the action, a time of the action, and a target identifier of the graphical target.

20. The non-transitory computer-readable recording medium of claim 15 , wherein the operations further include:

sending data to allow display of a user interface displaying a list of location markers in the virtual workspace, a location marker having a marked location in the virtual workspace; and

sending data to allow a determination of the location and dimensions in the virtual workspace of the second node viewport responsive to an input indicating a selected location marker, to update the location of the second node viewport to the marked location.

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 1, 2023
From: SANTHAKUMAR, SATISH; ENTREKIN, DEMIAN
To: HAWORTH, INC.
Reel/Frame 064775/0181 →
Continuity (5)
Continuation 17684354 · Mar 1, 2022
Continuation 17027571 · Sep 21, 2020
Continuation 15147576 · May 5, 2016
Provisional Application 62157911 · May 6, 2015
Related Publication 20230305794A1 · Sep 28, 2023