WO2002075530A1 - System and method for constructing user-interest based dynamic virtual environment - Google Patents

System and method for constructing user-interest based dynamic virtual environment

Info

Publication number
WO2002075530A1
WO2002075530A1 PCT/SG2001/000032 SG0100032W WO2002075530A1 WO 2002075530 A1 WO2002075530 A1 WO 2002075530A1 SG 0100032 W SG0100032 W SG 0100032W WO 2002075530 A1 WO2002075530 A1 WO 2002075530A1
Authority
WO
Grant status
Application
Patent type
Prior art keywords
user
virtual environment
virtual
interest
objects
Prior art date
Application number
PCT/SG2001/000032
Other languages
French (fr)
Inventor
Qingping Lin
Weihua Wang
Original Assignee
Nanyang Technological University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30Information retrieval; Database structures therefor ; File system structures therefor
    • G06F17/30861Retrieval from the Internet, e.g. browsers
    • G06F17/30873Retrieval from the Internet, e.g. browsers by navigation, e.g. using categorized browsing, portals, synchronized browsing, visual networks of documents, virtual worlds or tours

Abstract

A system for creating a user-interest based virtual environment involves: one or more client computers, a server cluster, one or more databases for storing a plurality of templates for a virtual environment and a plurality of virtual objects which can be added to a virtual environment template, one or more user interest profiles, and database server program. The server cluster includes at least one server computer and can support the simultaneous execution of a plurality of programs. A method for creating the user-interest based virtual environment involves connecting one or more client computers to a server cluster, retrieving virtual object data from the server cluster and sending it to one or more client computers for addition into a template virtual environment, enabling one or more users to manipulate virtual objects in the virtual environment and managing the virtual environment with which one or more users are interacting.

Description

SYSTEM AND METHOD FOR CONSTRUCTING USER-INTEREST BASED DYNAMIC VIRTUAL ENVIRONMENT

Field Of The Invention The present invention relates to networked computer systems which provide a three dimensional interactive virtual environment with which one or more concurrent users may interact. It further relates to the dynamic delivery and construction of a three dimensional virtual environment.

Background Of The Invention

A virtual environment is a three dimensional (3D), computer generated, graphic scene which allows users to navigate through and interact with virtual objects. The virtual environment could be a replica of a real world scenario that follows the physical law, or a purely imaginary scenario similar to those used in science fiction entertainment. An application based virtual environment is created using 3D computer graphics techniques. The virtual environment is stored in a graphical format such as a bit map or vectors and numerical information. To allow a user to remotely interact with a virtual environment over a computer network, the user's computer ("client") normally runs client application software which can communicate with a host computer ("server") which runs a server program. The initial virtual environment data is first transmitted to the Client computer and rendered into 3D graphics using the client program. The user can then interact with the virtual environment using an input device such as a keyboard, joystick, 3D space ball or data glove. The user's interaction/navigation commands are captured by the client program and may be processed locally by the client software, or sent to the server program over the computer network, depending on the level of computing power which is required and whether the application is a single user or multi-user application. The virtual environment will then change according to the user's commands. The application based virtual environment normally requires programmers to model a virtual world and program associated source codes in order to control the process simulating the virtual world. Thus, the application based virtual environment is difficult to maintain and modify. There is also lack of interoperability between virtual environments which are created using different software applications.

VRML(Virtual Reality Modelling Language) was developed in an attempt to overcome the problems associated with the application based virtual environment by using a browser based approach. VRML is an ISO standard file format for describing interactive 3D objects and virtual worlds, which allows the deployment of 3D interactive applications over the Internet. VRML is also intended to be a universal interchange format for integrated 3D graphics and multimedia. With VRML, a 3D virtual environment can be created and delivered over the Internet. The virtual environment is described in a text file using VRML script. A typical VRML file will include nodes, fields, events, and routes to define virtual objects' properties, such as geometry, material or texture of object surfaces, and interaction behaviours. VRML files are downloaded to a user's computer via the Internet and rendered in 3D by a VRML-enabled browser which uses, for example, the Cosmo browser plug-in.

The conventional approach for creating a virtual environment is to build all virtual objects and their surrounding scene in a VRML file. The clients who wish to browse the virtual environment need to download the whole VRML file to the local computer, and use VRML browser plug-in to navigate through the 3D virtual environment and interact with virtual objects. However, a medium size virtual environment with about 100 simple VRML interactive objects could easily exceed several megabytes in size. This leads to lengthy downloading and rendering time. With limited network bandwidth, the downloading delay is obvious even in Local Area Network (LAN) and an even worse download delay is observed with modem connections to the Internet. Furthermore, defining all VRML objects in a single file is also inefficient to maintain and modify.

To support a large VRML based virtual environment, a common approach is to divide the virtual world into small regions (grids), and to dynamically deliver one or a few regions of the virtual world which are stored in a database to the user, based on his field of view, his moving velocity, his perception and priority with which he attends to objects in the virtual world. The perceivable objects may also be hierarchically arranged so that different levels of detail of the objects may be delivered to the user based on user's field of view and distance from the objects. These approaches would reduce the delay caused by downloading large VRML files. However, the delay in delivering/streaming the VRML data of the regions or grids which are to be made visible to the user to the user's computer would lead to pauses during navigation in the virtual world. This is especially true when the user is actively turning or moving at high speed in the virtual environment, if the user has a slow modem connection to the Internet. Furthermore, the VRML data sent to the user is predefined by the creators of the virtual world and some of the objects in the virtual environment may not be of any interest to the user.

For example, there may be a large variety of products in a virtual shopping mall which is being accessed by a user who is only interested in desktop computers. In this case it would be more appropriate for the user to be presented with various computer and related product offerings without delivering and displaying items of other categories. It would be best if the shop could accurately present the user with certain brands of computer at certain price ranges as this would enable efficient usage of network bandwidth by delivering only the objects that are of interest to the user and creating the most appropriate corresponding 3D virtual environment.

There is a need to provide a method for dynamically creating user interest based 3D virtual environment with which users may interact. There is also a need to incorporate the capture and storage user's interest options and interaction path during each visit so that each user's interest profile can be built for efficient caching and delivery of VRML objects which are of most interest to the user when he revisits the virtual environment. Further, there is a need to control the consistency of cached VRML objects to allow multiple users with common interests to share the same virtual environment.

Summary Of The Invention

According to a first aspect of the present invention, there is provided a system for creating a user-interest based virtual environment including: (a) one or more client computers;

(b) a server cluster;

(c) one or more databases for storing:

(i) a plurality of templates for a virtual environment; (ii) a plurality of virtual objects which can be added to a virtual environment template; and (iii) one or more user interest profiles; and (d) a database server program; wherein the server cluster includes at least one server computer and can support the simultaneous execution of a plurality of programs.

A client program is able to insert virtual objects into a template virtual environment according to the level of interest which the user has in each virtual object in the virtual environment. The virtual environment allows multiple users with common interests to interact with each other in a shared virtual environment. Each virtual object is stored in a file in a database. The user interest profiles are stored in a database which is created based on a history of the user's interaction with the objects in the virtual environment. These profiles contain information about the user's level of interest in each virtual object. When a user logs on to the system, the database server generates a list of virtual objects that match the user's interest profile and sends the list to the client computer. The client computer then checks the list against the object data stored in the client's local working directory and retrieves object data which is not available or not up-to-date from the database server. Virtual object data is maintained by caching files with a last modified time stamp, which eliminates the need to synchronize the clocks of each client computer which is connected to the virtual environment.

According to a second aspect of the present invention, there is provided a method for creating a user-interest based virtual environment including: (a) connecting one or more client computers to a server cluster;

(b) retrieving virtual object data based on user-interest from the server cluster and sending it to one or more client computers for addition into a template virtual environment;

(c) enabling one or more users to manipulate virtual objects in a virtual environment; and

(d) managing the virtual environment with which one or more users are interacting.

Connection of the client computers to the server cluster may occur over the Internet or any other computer network. Session Managers are used to manage the virtual environments to which one or more users have connected and to share data between client computers when the virtual environment has been manipulated.

Brief Description Of The Drawings

The invention will now be described in greater detail with reference to the drawings. It is to be understood that the particularity of the drawings does not supersede the generality of the preceding description of the invention.

Figurel is a block diagram depicting an operation environment according to a preferred embodiment of the present invention.

Figure 2 is a flow chart depicting a system interaction process according to a preferred embodiment of the present invention.

Figure 3 is a flow chart depicting an initial user preference capturing process according to a preferred embodiment of the present invention.

Figure 4 is a flow chart depicting a user-interest based client caching process according to a preferred embodiment of the present invention.

Figure 5 is a flow chart depicting a dynamic VRML scene construction process according to a preferred embodiment of the present invention. Figure 6A is a flow chart depicting an initial client connection managing process according to a preferred embodiment of the present invention.

Figure 6B is a flow chart depicting a multi-user session managing process according to a preferred embodiment of the present invention.

Figure 7 is a flow chart depicting a user LOI capturing process according to a preferred embodiment of the present invention.

Detailed Description

The present invention will now be described in detail with reference to the accompanying drawings which depict a preferred embodiment of the invention.

Figure 1 depicts an operation environment according to a preferred embodiment of the present invention. The operation environment consists of client computers 110 connecting to server cluster 100 through Internet 108. It is preferred that client computer 110 has web-browsing capability. In order for the system to manage and support a large number of client computers simultaneously accessing the virtual environment, server cluster 100 should include a web server 102, a database server 104 and a multi-user virtual environment server 106. Web server 102 provides web services, such as the delivery of HTML (Hypertext Markup Language) files to client computers 100 through standard Internet data transfer protocol such as HTTP (Hypertext Transfer Protocol). Database server 104 runs a database application program which is specific to the present invention and which provides data storage, retrieval, and update services to client computers 110. Multi-user virtual environment server 106 executes a multi-user virtual environment server program, which allows a plurality of users to interact with each other in a shared virtual environment. If the workload and network traffic volume exceed the capacity of server cluster 100, multiple web servers 102, database servers 104 and multi-user virtual environment servers 106 can be activated to join server cluster 100. However, if only a limited number of client computers are expected to simultaneously access the virtual environment, server cluster 100 may include only one server computer which is able to execute the database server program, web server program and the multi-user virtual environment simultaneously.

Figure 2 is a flowchart which illustrates a process for implementing the dynamic construction of a user-interest based virtual environment. This begins with step 204 wherein the user logs on to web server 102 via a connection over the Internet using a web browser such as Netscape or Internet Explorer with a VRML browser plug-in. After the user has successfully logged on to the web server, a template virtual environment file is downloaded into the user's local computer and displayed on the user's computer screen, so that the user can start to explore the template virtual environment. The template virtual environment typically contains a simple framework of a virtual environment, for example, an empty building, shop or playground, depending on the services provided by the system. While the user is exploring the template virtual environment the system determines in step 206, whether downloading of the client application program is required, by checking whether the user is a first time user or whether an existing version of the client application program has been installed but is outdated. The client application program includes a client caching program, as depicted in Figure 4, a dynamic VRML scene construction program as illustrated in Figure 5 and a program which captures the user's level of interest as depicted in Figure 7. If the user is found to be a first time user, then the client application program is downloaded to the user's computer and installed in a working directory for future use in step 208. If the user is not a first time user, the client application program will only be downloaded when a new version is detected in database server 104. The user's initial preferences are then captured in step 210 as depicted in Figure 3, these preferences include the user's request for a single user or multi-user virtual environment. The user's initial preferences typically contain information regarding the user's interest in the current session. For example, the user may express interest in desktop PC as a general area of interest which could also include detailed information such as brands and specifications. The user may express more than one area of interest which may be prioritized to allow differentiation between the user's level of interest in each type of object. If the user chooses the multi-user virtual environment option, then the client computer will connect to the multi-user virtual environment server and a multi-user Session Manager in step 214. After the user's initial preference is captured and necessary connection with Multi-user Session Manager is made the client caching program is run in step 216. To improve the system responsiveness, the client caching program is preferably executed to perform background streaming of VRML objects that match the user's preference to the client's cache directory. This can be done by implementing a socket communication thread with appropriate thread priority to stream the VRML object data.

While step 216 is executing, step 218 will start processing in parallel wherein the dynamic VRML scene construction program will loop to insert un- inserted VRML objects that match the user's interest profile (which is stored in the local cache) into the virtual environment until an end of caching signal is received. To improve the system's responsiveness, the dynamic VRML scene construction program is preferably implemented in a separate thread with appropriate priority to perform the VRML object insertion task in the background. While step 218 is executing, it is possible for the user to interact with the virtual environment (step 220). Step 220 may also be performed in parallel with step 218 wherein objects are inserted into the virtual environment. During the user's interaction with the virtual environment in step 220, the user's level of interest in each virtual object is captured in step 222. The process of capturing the user's level of interest is illustrated in further detail in Figure 7. When the user interacts with objects in the virtual environment, it is determined, in step 224, whether the user has entered into a multi-user session, when every new frame of virtual environment is generated. If the user is in a multi-user session, the user's interaction messages are sent to the multi-user Session Manager in step 226. The Session Manager then multicasts the interaction messages to other users in the group. Details of the multi-user application program are illustrated in Figure 6B. In a multi-user session, it is possible for steps 226 and 228 to occur in parallel, after which either or both steps will require the Session Manager to wait for possible incoming messages. When the incoming interaction messages have been received, the virtual environment is updated in step 230 accordingly. Before the process enters into a new loop of user interaction and virtual environment updates, the System Manager in step 232 checks if the user wishes to logout. If the user elects to logout, a logout message will be sent to the multi-user application program to invoke appropriate user logout clean up as described by steps 630 to 642 in Figure 6B; otherwise the system will enter into a new loop of user interaction.

Figure 3 depicts the process of capturing the user's initial preferences. This begins with the user logging on to web server 102 in step 304. The system then determines whether the user preferences have already been defined in the database which is stored in the user's local cache, or remote database server 104, depending on the requirements of the particular virtual environment application. Storing the user's preference data in the client computer's local cache enables faster processing than storing it in the database server. However, this is not useful if the user logs on from a different client computer 110. Storing the user's preference data in database server 104 would overcome this problem as long as the same client ID (Identification Data) is provided. The cached user preference data only indicates the user's interest during their last visit to the virtual environment. The user may use the same preference data in more than one session, for example, a soccer fan who joined a virtual soccer community during his last visit will very likely join the same community again for his next visit. For other cases, such as online shoppers, the user's interests may change for different visits. Thus the user is given an option to change their user preferences in step 308. If the user does not elect to change their preference data, the user's existing preference data will be retrieved in step 310. If there is no existing user preference data found, or if the user elects to change the existing preference, the process will enter into step 312 to prompt the user to choose preferences from a selection. If the user does not choose one, a default user preference profile will be used. The default user preference is defined by the system developer, which could be used to present a generic virtual environment to the user. Once the user's preference data is captured or retrieved, it is passed on to the client caching program in step 318.

Figure 4 depicts a process for the user-interest based client caching program. The process begins with step 404 which is invoked by the capture of the user's initial preference data using a capture module. After the user's preference data is received it is sent to database server 104 in step 406 to query for a VRML object list that matches the received preference data. Once the query result is received from the database server, the caching program enters into step 408 wherein the VRML object list is sorted according to the user's level of interest in each object. In the sorted list, it is preferred that the VRML objects are arranged in decreasing order of the user's level of interest value. The system then checks whether there is an existing local cache directory in step 410. In order to maintain the efficiency of cache searching, it is preferred that the naming convention of the local cache directory consists of the name of the software which is specific to the present invention as the main directory, which contains a subdirectory incorporating the client's identity. The subdirectory may have further subdirectories to differentiate various cached data, for example VRML Objects, and user preference etc. If there is no existing local cache directory in the client computer 110, a local cache directory will be created in step 412. After the local cache directory is successfully created, the program enters into step 414 wherein background fetching of all VRML objects in the sorted list is performed such that the object with highest level of interest value will be fetched first. After all the VRML objects in the list are fetched and stored in the local cache directory, the client caching program issues an end of caching signal to the dynamic VRML scene construction program and then the process terminates.

If there is an existing local cache directory, the VRML object list is compared with the list in the local cache directory in steps 416 to 422, with the object with highest level of interest value being processed first. This comparison is performed to determine whether a particular VRML object already exists in the local cache, and if it is outdated. Only the VRML objects that are outdated or do not exist in the local cache will be downloaded from the database server using background fetching. When all outdated or non-existent objects in the VRML list have been fetched and stored in the local cache directory, the client caching program issues an end of caching signal to the dynamic VRML scene construction program and the process terminates.

Figure 5 illustrates a preferred embodiment for the construction of a dynamic VRML scene. The dynamic scene construction process runs in parallel with the client caching program and begins with step 504 in which the status of the sorted VRML object list generated by the client caching program is checked. Since the dynamic scene construction process runs in parallel with client caching program, it is necessary to synchronize their operations. It is preferred that each VRML object in the list has a flag to indicate that it is in one of three states:

(a) "initial status" indicating that the VRML object version has not been verified or updated, and is not ready for insertion into the VRML scene;

(b) "un-inserted status" indicating that the VRML object version has been verified or updated and is ready for insertion into the VRML scene; and (c) "inserted status" indicating that the object has been inserted into the VRML scene.

It is preferred that the client caching program marks the objects in the sorted list according to their status. The dynamic VRML scene construction program inserts only those objects which have been flagged as un-inserted into the VRML scene, after which the dynamic VRML scene construction program changes the object status to "inserted". In step 506 the client caching program checks whether there are any un-inserted objects in the sorted list. If such un- inserted objects exist, the program further checks, in step 508, if there is a preferred location and orientation for the object. If there is a preferred location and orientation for the object, it will be inserted into the VRML scene according to the predefined location and orientation in step 510, and then loop back to process the following object in the list.

If in step 508 it is found that there is no preferred location/orientation for the object, it will be further checked in step 512 if the user is the first user to join a multi-user session. If the user is the first user in a multi-user session, the object will be inserted in step 514 into the VRML scene at a location and orientation determined by user's viewpoint and level of interest value. The insertion is based on the rule that the object with highest level of interest value should be located at an unoccupied space nearest to the user. This only applies to objects which are brought into the shared virtual environment by the first user. Thus subsequent users that enter into the shared virtual environment will see those objects without preferred location/orientation appearing at a location and orientation which is determined by the first user of the shared virtual environment. After the insertion in step 514, the Multi-user Session Manager will be informed of the location and orientation of the VRML object, in step 516. However, if in step 512 the Multi-user Session Manager finds that a user is not the first user in a multi-user session, it will check further, in step 518, whether the user has chosen a single-user virtual environment, which may be selected from the user logon options.

If a single-user session is chosen, in step 520 the system will insert the object into the virtual environment according to user's viewpoint and level of interest. If, in step 518, the system has determined that the user has chosen a multi-user session but is not the first user of the multi-user session, the object will be inserted into the virtual environment in step 522, according to its location, orientation and status, as determined by the actual first user of the multi-user session. The object's location, orientation and status, as determined by the first user, is recorded by the Multi-user Session Manager. After successful insertion of the un-inserted object into the virtual environment, the remaining objects in the sorted list are inserted into the virtual environment using the dynamic VRML scene construction process, until the end of the list is reached and an end of caching signal is received.

Figure 6A and Figure 6B, describe one embodiment of a method of creating a multi-user virtual environment. The method includes a Client Initial Connection Manager process and Multi-user Session Manager process. The Client Initial Connection Manager process begins with step 604, wherein the Client Initial Connection Manager waits for user connection requests from client computer 110. When a user connection request is received, the Client Initial Connection Manager compares its user interest with that of existing users connected to the multi-user application server, in step 606. If a similar interest group is found, the new user is added into that interest group in step 610. Conversely, if no similar group is found, a new user interest group is created based on the new user's interest areas, in step 612. The Client Initial Connection Manager then informs the client dynamic VRML scene construction program, in step 614, that the user is the first user in the interest group, and loops back to step 604 to wait for other connection requests from client computers 110.

The Multi-user Session Manager process begins with step 618. In step 618, the Multi-user Session Manager waits for incoming messages from client computers 110. When an incoming message arrives, in step 620, the Multi-user Session Manager first determines whether the message is from a new user joining the interest group which is being managed by the Multi-user Session Manager. If this is the case the Multi-user Session Manager, in step 622, checks the number of users in the current interest group. If there are more than two users in the group, the new user will be informed of the start of the multiuser session, in step 626. If there are only two users in the group, both users in the group will be informed of the start of the multi-user session, in step 624. After all coincident users are informed that the current session is a multi-user session, the user's interaction messages are sent to other group members that should be aware of the interaction in step 628 after which the Multi-user Session Manager loops back to step 604 to wait for other incoming messages from client computers 110.

If the Multi-user Session Manager in step 620 determines that the message came from an existing user, it will be further determined in step 630 if the message is a logout request. If it is not a logout request, the message will be multicast to the other group members in its interest group in step 628 and then loop back to step 604 to wait for other incoming messages from client computers 110. If the user's message is a logout request, the Multi-user Session Manager performs the necessary session clean up. It first removes the user from its interest group in step 632, and then checks the number of users remaining in the interest group in step 632. If there is more than one user left in the group, the user's logout request message is multicast to the other users in the group. It should be noted that all users in the multi-user environment are treated the same as any other normal virtual entity that may have interactive behaviours. Thus when a logout message is received by other users in the interest group, the graphical representation of the message sender will be removed from the virtual environment. After the user's logout message is multicast to other users in the interest group, the process loops back to step 604 wherein the Multi-user Session Manager waits for other incoming messages. If the Multi-user Session Manager, in step 632, finds that there is only one user left in the interest group, a logout message is sent to the remaining user together with an end of multi-user session notification message, in step 638. After the Multi-user Session Manager has completed the necessary user logout clean up job, it loops back to step 604 to wait for other incoming messages. If there are no users left in the interest group, the Multi-user Session Manager deletes the current interest group in step 640 and terminates.

Fig. 7 depicts the process of capturing user's level of interest in each object in a virtual environment while the user interacts with the objects. The process is invoked by the user's interaction with an object in the virtual environment and begins with step 704, wherein a level of interest table is prepared for storing the user's level of interest values. The table may include fields such as Object ID, Number of Interactions, Duration of Each Interaction, and a computed level of interest value. The level of interest table may be indexed by an object identifier (object ID). When the user interacts with an object in the virtual environment, the ID of the object being manipulated is retrieved from the cached object list on the client computer in step 708, at the same time invoking step 710, starting the interaction timer. The process then checks if the object ID is already listed in the level of interest table in step 712. If not, the object ID is added to the level of interest table in step 714 and the associated level of interest fields are initialised. The process then proceeds to step 716 wherein the object's Number of Interactions field is incremented. If it is found in step 712 that the object ID is already in the level of interest table, the process advances to step 716, increasing the Number of Interactions field associated with the object ID in the level of interest table by one. At the completion of step 716, the user's interaction status is monitored in step 718 and 720 until the user's interaction with object ends. The end of user's interaction with an object may be determined when the user starts to interact with another object in the virtual environment or the object being manipulated by the user falls out of the view field of the user. Once the user's interaction with the object ends, the interaction timer is stopped and the duration of the interaction is calculated in step 722. The user's level of interest value for that object is then calculated. The level of interest value may be computed as a function of the Number of Interactions and the duration of each interaction with an appropriate weighting. It is preferred that the level of interest value for each object is normalized such that level of interest values for all virtual objects are comparable. After the level of interest value is computed, the level of interest table is updated in step 724, before the program loops back to step 706, to wait for another user interaction. The program terminates when the user logs out.

Claims

Claims
1. A system for creating a user-interest based virtual environment including:
(a) one or more client computers; (b) a server cluster;
(c) one or more databases for storing:
(i) a plurality of templates for a virtual environment;
(ii) a plurality of virtual objects which can be added to a virtual environment template; and (iii) one or more user interest profiles; and
(d) a database server program; wherein the server cluster includes at least one server computer and can support the simultaneous execution of a plurality of programs.
2. A system according to claim 1 wherein the server cluster includes:
(a) one or more database servers;
(b) one or more web servers; and
(c) one or more multi-user virtual environment servers.
3. A system according to claim 1 wherein the user interest profile contains a plurality of values which depend on the user's level of interest in virtual objects and which are indexed according to an identifier for each object, and which are calculated according to interactions which the user has with the objects, the interactions being measured in terms of: (a) the number of interactions that the user has with each object;
(b) the duration of each interaction;
(c) the position of the object, relative to the virtual environment, during the interaction; and
(d) a history of interactions which have taken place between a user and an object.
4. A system according to claim 1 wherein the database server program performs the following steps: (a) stores data relating to virtual environments, virtual objects and user interest profiles;
(b) processes requests from one or more client computers for the delivery of a user's interest profile data and delivers that data; (c) processes requests from one or more client computers for the delivery of virtual environment data and delivers that data;
(d) processes requests from one or more client computers for the generation and delivery of a list of virtual objects which matches the user's interest profile, and delivers the list to the client computer; and ( e) updates the user's interest profile with a newly calculated value for the user's level of interest in one or more virtual objects, the newly calculated value having been captured by an application program which is executed by the client computer.
5. A system according to claim 1 wherein the client computer executes a program which performs the following steps:
(a) captures the user's logon data and user interest profile and sends it to the database server program;
(b) retrieves a list of virtual objects which match the user's interest profile and sorts the list according to each object's level of interest value;
(c) compares the retrieved list of virtual objects with the list of virtual objects which is stored in the client computer and determines which virtual object data in the client computer has been outdated or is unavailable and updates the list where necessary; (d) adds virtual object data in the client computer to a template virtual environment;
(e) captures data related to the user's interaction with virtual objects in a virtual environment, and calculates new level of interest values for virtual objects in the user's interest profile; (f) sends the user's new interest profile values to the database server;
(g) sends the user's location/orientation and interaction data to the server cluster for inclusion in the management of a multi-user virtual environment;
6. A system according to claim 1 wherein the user's interest profile also includes interest options which are input by the user, in addition to the level of interest values for each virtual object which are contained within the user's interest profile.
7. A system according to claim 1 wherein the user's interest profile also includes a level of interest value for categories into which virtual objects may be classified.
8. A system according to claim 1 , wherein a template of a virtual environment is a generic framework of a virtual environment in which virtual objects may be added, removed or manipulated while the user is interacting with the virtual environment.
9. A system according to claim 1 which identifies if the user:
(a) is using the system for the first time, in which case the necessary software is downloaded from the web server to the client computer; and
(b) has used the system previously in which case the system will check if the downloaded software is outdated and update it if necessary.
10. A system according to claim 1 wherein the user can specify whether they wish to interact with a single user or a multi-user virtual environment, wherein if the user selects a multi-user virtual environment, the virtual environment is controlled by a multi-user session manager which: (a) manages the connection of users to the virtual environment;
(b) inserts objects into the virtual environment, depending on the user interest profiles of the users who have connected to that particular virtual environment; and
(c) controls the insertion parameters of objects contained within the virtual environment.
11. A system according to claim 1 wherein the virtual object has programmed behaviours with which it responds to a user's interaction.
12. A system according to claim 1 wherein a user interacts with virtual objects in a virtual environment by manipulating an input device such as a mouse, space ball, wand or keyboard.
13. A method for creating a user-interest based virtual environment including:
(a) connecting one or more client computers to a server cluster;
(b) retrieving virtual object data from the server cluster and sending it to one or more client computers for addition into a template virtual environment; (c) enabling one or more users to manipulate virtual objects in a virtual environment; and
(d) managing the virtual environment with which one or more users are interacting.
14. A method according to claim 13 wherein the connection of one or more client computers to a server cluster is managed by a multi-user virtual environment server program which performs the following steps:
(a) controls the users' connection to the multi-user server cluster;
(b) allocates a new user to an existing virtual environment if that user's interest profile is similar to the interest profile of other users who are already interacting that virtual environment;
(c) creates a new virtual environment if the new user's interest profile is not similar to the interest profile of any other groups of users who are interacting with any other existing virtual environment; (d) spawns a new session manager to maintain the newly created virtual environments;
(e) transmits interaction data between client computers;
(f) synchronises interactions between users and virtual object status in a shared virtual environment.
15. A method according to claim 13, including the additional steps of: (a) retrieving a sorted virtual object list from the client computer; (b) adding virtual objects into the template virtual environment according to each object's order in the sorted list and preferences which have been provided by the user;
(c) adding virtual objects with preferred locations to the template scene according to the preferred locations and orientations.
PCT/SG2001/000032 2001-03-15 2001-03-15 System and method for constructing user-interest based dynamic virtual environment WO2002075530A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SG2001/000032 WO2002075530A1 (en) 2001-03-15 2001-03-15 System and method for constructing user-interest based dynamic virtual environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2001/000032 WO2002075530A1 (en) 2001-03-15 2001-03-15 System and method for constructing user-interest based dynamic virtual environment

Publications (1)

Publication Number Publication Date
WO2002075530A1 true true WO2002075530A1 (en) 2002-09-26

Family

ID=20428910

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2001/000032 WO2002075530A1 (en) 2001-03-15 2001-03-15 System and method for constructing user-interest based dynamic virtual environment

Country Status (1)

Country Link
WO (1) WO2002075530A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100076858A1 (en) * 2008-09-22 2010-03-25 Benco David S Virtual world support for electronic commerce
US9384067B2 (en) 2009-03-31 2016-07-05 International Business Machines Corporation Managing a virtual object

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0902383A2 (en) * 1997-09-10 1999-03-17 Ncr International Inc. Communication network
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
US6097927A (en) * 1998-01-27 2000-08-01 Symbix, Incorporated Active symbolic self design method and apparatus
WO2000059581A1 (en) * 1999-04-01 2000-10-12 Dominic Choy Simulated human interaction systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
EP0902383A2 (en) * 1997-09-10 1999-03-17 Ncr International Inc. Communication network
US6097927A (en) * 1998-01-27 2000-08-01 Symbix, Incorporated Active symbolic self design method and apparatus
WO2000059581A1 (en) * 1999-04-01 2000-10-12 Dominic Choy Simulated human interaction systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100076858A1 (en) * 2008-09-22 2010-03-25 Benco David S Virtual world support for electronic commerce
US8756107B2 (en) * 2008-09-22 2014-06-17 Alcatel Lucent Virtual world support for electronic commerce
US9384067B2 (en) 2009-03-31 2016-07-05 International Business Machines Corporation Managing a virtual object

Similar Documents

Publication Publication Date Title
US6144381A (en) Systems, methods and computer program products for compass navigation of avatars in three dimensional worlds
US5982372A (en) Visual metaphor for shortcut navigation in a virtual world
US6734885B1 (en) Information processing apparatus, method and computer program for virtual reality transparent avatars
US6271843B1 (en) Methods systems and computer program products for transporting users in three dimensional virtual reality worlds using transportation vehicles
US5889951A (en) Systems, methods, and computer program products for accessing, leasing, relocating, constructing and modifying internet sites within a multi-dimensional virtual reality environment
US6370565B1 (en) Method of sharing computation load within a distributed virtual environment system
US6594664B1 (en) System and method for online/offline uninterrupted updating of rooms in collaboration space
Andrews et al. The Hyper-G network information system
Greenhalgh et al. Inside MASSIVE-3: Flexible support for data consistency and world structuring
US6023270A (en) Delivery of objects in a virtual world using a descriptive container
US5878219A (en) System for integrating access to proprietary and internet resources
US6884172B1 (en) Electronic game system
US7035828B2 (en) Method and system for modifying and transmitting data between a portable computer and a network
US20030222901A1 (en) uPrime uClient environment
US5809512A (en) Information provider apparatus enabling selective playing of multimedia information by interactive input based on displayed hypertext information
US6801229B1 (en) System for creation of visual representation of data
US20040117376A1 (en) Method for distributed acquisition of data from computer-based network data sources
US6961755B2 (en) Information processing apparatus and method, and storage medium
US20050149551A1 (en) Systems and methods for co-axial navigation of a user interface
US20040181779A1 (en) Run-time determination of application delivery
US20010019337A1 (en) System for providing clients with a three dimensional virtual reality
US6088515A (en) Method and apparatus for making a hypermedium interactive
US20030120823A1 (en) Client system for implementing 3-dimensional virtual reality and method for implementing virtual reality using same
US20030128205A1 (en) User interface for a three-dimensional browser with simultaneous two-dimensional display
US20080133736A1 (en) System, method, and computer program product for tracking digital media in collaborative environments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP