US6160553A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Methods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objects and in which object occlusion is avoided
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-09-14
•
Granted: 2000-12-12
•
Expires: 2018-09-14
Abstract
Abstract A graphical user interface in which object thumbnails are rendered on a simulated three-dimensional surface which (i) exploits spatial memory and (ii) allows more objects to be rendered on a given screen. The objects may be moved, continuously, on the surface with a two-dimensional input device.
Inventors
- 👤 George G. Robertson
- 👤 Daniel C. Robbins
- 👤 Maarten Roderik Van Dantzich
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 16:02
CPC Classifications
G; G09; G09G; G09G5/00; G09G5/14; G06; G06F; G06F16/00; G06F16/90; G06F16/904; G06F16/907; G06F3/00; G06F3/01; G06F3/048; G06F3/0481; G06F3/04815
Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
238 words
A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 2
Dependent Claim
238 words
A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 3
Dependent Claim
36 words
The man-machine interface method of claim 1 wherein, if the updated location of the active object is within a predetermined distance of another object, then further iii) generating an audio cue associated with object occlusion avoidance.
Claim 4
Dependent Claim
70 words
The man-machine interface method of claim 1 wherein, if the updated location of the pushed object is within the predetermined distance of yet another object, then further i) defining the yet other object as a pushed object, and ii) updating a location of the yet other object to maintain the predetermined distance between it and the other pushed object to prevent total occlusion of the visual representation of either object.
Claim 5
Dependent Claim
32 words
The man-machine interface method of claim 1 further comprising a step of: j) generating a bumper shadow, having a location beneath the active object, to be rendered on the video display device.
Claim 6
Dependent Claim
19 words
The man-machine interface method of claim 4 wherein the bumper shadow has a size corresponding to the predetermined distance.
Claim 7
Dependent Claim
14 words
The man-machine interface method of claim 5 wherein the bumper shadow is an oval.
Claim 8
Dependent Claim
255 words
A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 9
Dependent Claim
255 words
A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 10
Dependent Claim
36 words
The man-machine interface method of claim 7 wherein, if the updated location of the active object is within a predetermined distance of another object, then further iv) generating an audio cue associated with object occlusion avoidance.
Claim 11
Dependent Claim
84 words
The man-machine interface method of claim 7 wherein, if the updated location of the pushed object is within the predetermined distance of yet another object, then further i) defining the yet other object as another pushed object, ii) storing the location of the other pushed object as a pre-push location, and and iii) updating a location of the yet other object to maintain the predetermined distance between it and the other pushed object to prevent total occlusion of the visual representation of either object.
Claim 12
Dependent Claim
32 words
The man-machine interface method of claim 7 further comprising a step of: j) generating a bumper shadow, having a location beneath the active object, to be rendered on the video display device.
Claim 13
Dependent Claim
19 words
The man-machine interface method of claim 10 wherein the bumper shadow has a size corresponding to the predetermined distance.
Claim 14
Dependent Claim
14 words
The man-machine interface method of claim 11 wherein the bumper shadow is an oval.
Claim 15
Dependent Claim
64 words
The man-machine interface method of claim 7 further comprising steps of: j) if the active object is released by the user, then, i) determining whether the location of the active object is within the predetermined distance of the pre-push location, and if not, setting the location of the pushed object to the pre-push location, and ii) defining the pushed object as a non-pushed object.
Claim 16
Independent Claim
348 words
A system which permits a user to interact with objects, the system comprising: a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor updates the location of the other object to avoid total occlusion of either the active object or the other object.
Claim 17
Independent Claim
348 words
A system which permits a user to interact with objects, the system comprising: a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor updates the location of the other object to avoid total occlusion of either the active object or the other object.
Claim 18
Independent Claim
384 words
A system which permits a user to interact with objects, the system comprising: a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor i) defines the other object as a pushed object, ii) stores, in the storage facility, the location of the pushed object as a pre-push location, and iii) updates a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 19
Independent Claim
384 words
A system which permits a user to interact with objects, the system comprising: a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor i) defines the other object as a pushed object, ii) stores, in the storage facility, the location of the pushed object as a pre-push location, and iii) updates a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 20
Dependent Claim
63 words
The system claim 15 wherein if the processor determines that the active object is released by the user, then the processor, i) determines whether the location of the active object is within the predetermined distance of the pre-push location, and if not, sets the location of the pushed object to the pre-push location, and ii) defines the pushed object as a non-pushed object.
Claim 21
Dependent Claim
233 words
A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 22
Dependent Claim
233 words
A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 23
Dependent Claim
250 words
A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 24
Dependent Claim
250 words
A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising: a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
Claim 25
Dependent Claim
86 words
The machine readable medium of claim 18 wherein when the machine executable instructions are executed by a machine having a video display device and a user input device, perform a further step of: j) if the active object is released by the user, then, i) determining whether the location of the active object is within the predetermined distance of the pre-push location, and if not, setting the location of the pushed object to the pre-push location, and ii) defining the pushed object as a non-pushed object.
References Cited (Backward Citations)
US5237653A
Cited
US5295243A
Cited
US5339390A
Cited
US5276785A
Cited
US5359703A
Cited
US5513303A
Cited
US5333254A
Cited
US5384908A
Cited
US5670984A
Cited
US5689287A
Cited
US5459825A
Cited
US5608850A
Cited
US5689628A
Cited
US5642490A
Cited
US5530235A
Cited
US5767826A
Cited
US5883625A
Cited
US5838326A
Cited
US5812128A
Cited
US6047233A
Cited
US6025841A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-12-12 | 2004-06-12 | 2004-12-12 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-12-12 | 2008-06-12 | 2008-12-12 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-12-12 | 2012-06-12 | 2012-12-12 | $7700.00 | Window Closed / Lapsed |