← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag