# US 2018/0321818 A1 · Method, apparatus and system for a graphical user interface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0321818 A1
- Document ID: US20180321818A1
- Status: Published application
- Kind: A1
- Application number: 16/033,455
- Filed: 2018-07-12
- Published: 2018-11-08
- Earliest claimed: 2010-06-01
- Assignees: Sphere Technology Limited
- Applicants: Sphere Technology Limited
- Inventors: Oliver TREADWAY; Michael KRUGER
- Web page: https://patentgrep.com/patent/US20180321818A1

## CPC

- G06F 3/04815: Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 9/451: Execution arrangements for user interfaces
- G06T 11/26: Drawing of charts or graphs
- G06F 2203/04802: 3D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
- G06T 2210/12: Bounding box
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Computer-implemented method of positioning a set of objects on a user interface on a surface of a three-dimensional structure, each member of the set of the objects having a size in two dimensions. Objects are assigned to a respective one of a plurality of subsets of objects based on object characteristics. Each subset is assigned to a respective two-dimensional portion of predetermined size. For each subset having an unpositioned object, object occupancy in the portion is identified and unpositioned objects are allocated to a position within the portion on the basis of object dimension and unoccupied space. The two-dimensional portions are positioned based on a specification and each object position is mapped within the portions to a three-dimensional coordinate. Responsive to input, positioning of the plurality of two-dimensional portions is modified, and each allocated object position is mapped to a new three-dimensional coordinate within the modified portion positions.

## Claims

### Claim 1

A computer-implemented method of positioning a set of objects for display on a user interface, the user interface being generated on a user terminal that is configured to present the objects on a surface of a three-dimensional structure, each member of the set of the objects having a size in at least two dimensions, at least some of which dimensions vary between the objects, the method comprising:
assigning each of the objects to a respective one of a plurality of subsets of objects on the basis of a characteristic of the objects;
assigning each subset of objects to a respective two-dimensional portion of a plurality of two-dimensional portions, each having a predetermined size;
for each two-dimensional portion, performing a positioning process, the positioning process comprising:
for each subset of objects having at least one as yet unpositioned object therein:
identifying object occupancy in the portion; and
allocating the as yet unpositioned object or objects to a position within the portion on the basis of a dimension of a largest object of the as yet unpositioned object or objects and unoccupied space in the portion;
positioning the plurality of two-dimensional portions in relation to one another on the basis of a predetermined specification; and
mapping each allocated object position within the positioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure,
wherein, in response to input received via the user interface, the method further comprises:
modifying the positioning of the plurality of two-dimensional portions, whereby to reposition the plurality of two-dimensional portions; and
mapping each allocated object position within the repositioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure.

### Claim 2 (depends on 1)

A method according to claim 1, in which, in the event that the cumulative dimensions of the positioned objects exceed a predetermined threshold value corresponding to a dimension of the portion, the method comprises allocating as yet unpositioned objects to a different said portion.

### Claim 3 (depends on 1)

A method according to claim 1, further comprising, for each subset of objects, scaling the size of each object in relation to a first object and a second object in the subset of objects, the first object having a largest value of a selected object characteristic and the second object having a smallest value of said selected object characteristic.

### Claim 4 (depends on 1)

A method according to claim 1, comprising ordering the as yet unpositioned subsets of objects on the basis of an extrinsic or an intrinsic characteristic associated with the subsets of objects, said ordering being used to control the order in which the subsets of objects are positioned by the positioning process.

### Claim 5 (depends on 1)

A method according to claim 1, in which the portions are of varying sizes.

### Claim 6 (depends on 1)

A method according to claim 1, in which the portions are positioned adjacent one another on the basis of a specified relationship between categories of objects.

### Claim 7 (depends on 1)

A method according to claim 1, in which at least some of the coordinates in three-dimensional space extend beyond a facet of a display on which the user interface is displayed.

### Claim 8 (depends on 1)

A method according to claim 1, in which at least some said objects represent an item for selection via the user interface.

### Claim 9 (depends on 1)

A method according to claim 1, further comprising transmitting data indicative of the allocated positions in three-dimensional coordinates to a user terminal, for use in generating said user interface.

### Claim 10 (depends on 1)

A method according to claim 1, in which the user interface is generated on an internal surface of a three-dimensional structure.

### Claim 11 (depends on 10)

A method according to claim 10, including displaying a portion of the user interface on the display of the user terminal from the perspective of a virtual camera located within the three-dimensional structure, the virtual camera being located between half a radii and one radii from the centre of the three-dimensional structure, pointing directly through the centre point of the three-dimensional structure such that a target of the camera is one-and-a-half to two radii away from the camera.

### Claim 12 (depends on 11)

A method according to claim 11, in which the virtual camera is located one radii from the centre of the three-dimensional structure, such that a target of the camera is two radii away from the camera.

### Claim 13

A system for positioning a set of objects for display on a user interface of a user terminal, the user interface being generated on a surface of a three-dimensional structure, each member of the set of the objects having a size in at least two dimensions, at least some of which dimensions vary between the objects, the system comprising:
a storage system arranged to store data identifying each object in the set of objects, the data including data identifying said size of the objects;
a data processing engine arranged to:
assign each of the objects to a respective one of a plurality of subsets of objects on the basis of a characteristic of the objects; and
assign each subset of objects to a respective two-dimensional portion of
a plurality of two-dimensional portions, each having a predetermined size;
an object positioning engine arranged to perform a positioning process for each two-dimensional portion, the positioning process comprising:
for each subset of objects having at least one as yet unpositioned object therein:
identifying object occupancy in the portion; and
allocating the as yet unpositioned object or objects to a position within the portion on the basis of a dimension of a largest object of the as yet unpositioned object or objects and unoccupied space in the portion,
the object positioning engine being arranged to position the plurality of two-dimensional portions in relation to one another on the basis of a predetermined specification, and
the data processing engine being arranged to map each allocated position within the positioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure, and wherein, in response to input received via the user interface:
the object positioning engine is further arranged to modify the positioning of the plurality of two-dimensional portions, whereby to reposition the plurality of two-dimensional portions, and
the data processing engine is further arranged to map each allocated object position within the repositioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure.

### Claim 14 (depends on 13)

A system according to claim 13, further arranged to transmit data indicative of the allocated positions in three-dimensional coordinates to the user terminal, for use in generating said user interface.

### Claim 15 (depends on 13)

A system according to claim 13, in which the data processing engine and the object positioning engine are configured on a server system remote from the user terminal.

### Claim 16 (depends on 15)

A system according to claim 15, in which the data processing engine and the object positioning engine communicate via a network communications channel.

### Claim 17 (depends on 13)

A system according to claim 13, the system further comprising a rendering engine arranged to render said allocated object positions in three-dimensional coordinates onto an internal surface of a three-dimensional structure on the basis of the curvature of the surface, whereby to generate said user interface.

### Claim 18 (depends on 17)

A system according to claim 17, wherein the rendering engine is configured on the terminal device.

### Claim 19 (depends on 17)

A system according to claim 17, in which the data processing engine, the object positioning engine and the rendering engine are configured on the terminal device.

### Claim 20 (depends on 17)

A system according to claim 17, wherein the rendering engine is configured on a server separate from said server system.

### Claim 21

A computer program, or a suite of computer programs, comprising a computer-readable set of instructions for execution on a computing system, which, when executed by the computer system, causes the computer system to perform a method of positioning a set of objects for display on a user interface, the user interface being generated on a user terminal that is configured to present the objects on a surface of a three-dimensional structure, each member of the set of the objects having a size in at least two dimensions, at least some of which dimensions vary between the objects, the method comprising:
assigning each of the objects to a respective one of a plurality of subsets of objects on the basis of a characteristic of the objects;
assigning each subset of objects to a respective two-dimensional portion of a plurality of two-dimensional portions, each having a predetermined size;
for each two-dimensional portion, performing a positioning process, the positioning process comprising:
for each subset of objects having at least one as yet unpositioned object therein:
identifying object occupancy in the portion; and
allocating the as yet unpositioned object or objects to a position within the portion on the basis of a dimension of a largest object of the as yet unpositioned object or objects and unoccupied space in the portion;
positioning the plurality of two-dimensional portions in relation to one another on the basis of a predetermined specification; and
mapping each allocated object position within the positioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure,
wherein, in response to input received via the user interface, the method further comprises:
modifying the positioning of the plurality of two-dimensional portions, whereby to reposition the plurality of two-dimensional portions; and
mapping each allocated object position within the repositioned plurality of two-dimensional portions to a corresponding three-dimensional coordinate on the surface of the three-dimensional structure.
