12
© Springer-Verlag London Ltd Virtual Reality (1998) 3:59-70 Collaborative Configuration in Virtual Environments T. Axling Swedish Institute of Computer Science, k2sta, Sweden Abstract: Most collaborative work in virtual environments involves creating and changing obiects according to some rules which correspond to what is known as configuration tasks in t:he field of knowledge based systems. Also, tasks such as presenting information as 3D obiects in a virtual environment or dynamically changing (reconfiguring) embodiments to adapt to an environment are configuration tasks. These tasks can be supported by a generic too[, a configuration engine. However, collaborative configuration requires a high level of interactivity to be meaningful which hence must be supported by the engine. We are, therefore, utilising our previous experiences in developing configuration engines to develop one, 3dQbelics, that is suited for the highly interactive tasks of collaborative configuration in virtuaI environments. The engine is buitt on the idea of viewing configuration as a pure constraint satisfaction problem and that a well defined modelling languagecan overcome the difficulties that are associated with constraint programming. 3dQbelics uses DIVE, a tool kit for building collaborative virtual environments, and a system for speech control of agents in DIVE tabelled 'Talking Agents'. 3dQbelics is meant to act as a pIatform for building multi-user configuration applications with a minimum of programming. To our knowledge, 3dQbelics is the first general tool for this. Keywords: Collaborative work; Configuration; Constraints; Virtual environments Introduction Configuration Configuration is a design task with the restriction that artefacts can only be assembled from predefined set of components that can onIy be connected together in a certain initial way. Figure 1 illustrates Mittal's [1 ] widely accepted definition of configuration. Configuration is often a routine task, for exampIe, in a large number of industries, products are tailored to the installation site while retain- ing the same structure and general properties. This work tends to be unrewarding work for humans and appears suited for knowledge based techniques. Tools for configuration have been around for a long time, e.g. XCON [2], but as shopping via lntemet is becoming commonplace it is very likely that there will be an explosion in the demand for such applications since they enable sales of more complex customised products. Configuration applications may well become companies' faces toward the public.

Collaborative configuration in virtual environments

Embed Size (px)

Citation preview

Page 1: Collaborative configuration in virtual environments

© Springer-Verlag London Ltd Virtual Reality (1998) 3:59-70

Collaborative Configuration in Virtual Environments T. Axling Swedish Institute of Computer Science, k2sta, Sweden

Abstract: Most collaborative work in virtual environments involves creating and changing obiects according to some rules which correspond to what is known as configuration tasks in t:he field of knowledge based systems. Also, tasks such as presenting information as 3D obiects in a virtual environment or dynamically changing (reconfiguring) embodiments to adapt to an environment are configuration tasks. These tasks can be supported by a generic too[, a configuration engine. However, collaborative configuration requires a high level of interactivity to be meaningful which hence must be supported by the engine. We are, therefore, utilising our previous experiences in developing configuration engines to develop one, 3dQbelics, that is suited for the highly interactive tasks of collaborative configuration in virtuaI environments. The engine is buitt on the idea of viewing configuration as a pure constraint satisfaction problem and that a well defined modelling language can overcome the difficulties that are associated with constraint programming. 3dQbelics uses DIVE, a tool kit for building collaborative virtual environments, and a system for speech control of agents in DIVE tabelled 'Talking Agents'. 3dQbelics is meant to act as a pIatform for building multi-user configuration applications with a minimum of programming. To our knowledge, 3dQbelics is the first general tool for this.

Keywords: Collaborative work; Configuration; Constraints; Virtual environments

Introduction

Configuration

Configuration is a design task with the restriction that ar te fac ts can only be assembled f rom predefined set of components that can onIy be connected together in a certain initial way. Figure 1 illustrates Mittal's [1 ] widely accepted definition of configuration.

Conf igura t ion is o f ten a rout ine task, for

exampIe, in a large number of industries, products

are tailored to the installation site while retain-

ing the same structure and general properties. This work tends to be unreward ing work for

humans and appears suited for knowledge based techniques.

Tools for configuration have been around for a long time, e.g. XCON [2], but as shopping via

lntemet is becoming commonplace it is very likely that there will be an explosion in the demand for such applications since they enable sales of more complex customised products. Conf igurat ion

applications may well become companies' faces toward the public.

Page 2: Collaborative configuration in virtual environments

ID,

Fig. I . Configuration.

Why Configuration in Collaborative Virtual Environments?

Why a Configuration Tool for Collaborative Virtual Environments?

Configuration is often a collaborative task. Very seldom is only one person involved in a config- uration process, usually at least two parties are involved: the provider and the consumer. The 'perfect' expert system for configuration is very far away, human experts are going to remain more creative and flexib[e in the foreseeable future. An expert's feeling for understanding cus- tomers' requirements is also going to remain unmatched. Using CVE technology it is possible to bring expert knowledge to the configuration process without requiring an expert to be phy- sically present. This, however, requires that the configuration system is flexible enough to give the expert the freedom needed for more creative solutions.

Configuration applications need to present their results in a comprehensible way and for interactive systems, users must be able to clearly understand design aIternatives. Virtual reality tech- nology provides completely new opportunities for presenting the result of a configuration when the result is a physical artefact and also for presenting design alternatives as long as they are physical entities. Even for abstract things such as services it may be possible to find 3D representations that improve cognisance compared to regular 2D rep- resentations, ttowever, even if the configuration is presented in 2D the usual arguments for using virtual environments as context for teleconferencing still hold [3].

Most collaborative virtual environments (VEs) are, for the present, conference style applications where the information communicated is essentially two dimensional, i.e. it could as well be done in 2D win- dows. I-o communicate using all three dimensions requires the ability to create and change 3D objects.

There are tools like multi-user object editors [4] which exemplify communicating in 3D but they do not allow one to introduce much domain know- ledge to assist the participants in communicating. To create and change objects in a certain domain, the objects could be given some domain knowledge and the ability to reason about it. In the intelligent CAD community there are examples of single user systems using domain know!edge to assist in design tasks [5-8].

Virtual Shopping

Shopping via the world-wide web is becoming commonplace but there are a number of problems; shopping is often a social activity, there is usually a salesperson around to assist and it is desirable to see the product before buying it. Collaborative virtual environments open completely new oppor- tunities. People aiming at purchasing something can enter a VE and together with an expert/salesperson in the field view and discuss a product even though all are at different physical locations. The viewed products may not exist in reality but are created on

T. Axling

Page 3: Collaborative configuration in virtual environments

demand. Even more interesting is that, the desired product can be configured in real-time in the VE. For example, a car shop does not have to only pre- sent available cars, but can show abstract cars which one can configure by direct manipulation from within the virtual environment. The participants can, by choosing and manipulating an abstract repre- sentation, configure a product that suits their needs. The configuration tool may also assist by allowing the user to add functional constraints (e.g. the car's top speed must be greater than 200 km/h) and optimisation criteria (e.g, as cheap as possible).

User Embodiment - a Configuration Problem?

An example of a less obvious configuration task is providing embodiments that adapt to their environ merit. The motivation for this would be that, for example, a humanoid may be appropriate in some VE while being distracting and/or infeasible in another. It might also be appropriate to alter the embodiment on the fly, A non-active embodiment could fade away, the embodiment could change to express the state of the user or to adjust to changes in the environment (e.g. a new group of people enters the world and gather for a meeting around a table and are all represented by humanoids, you don't want to crash in on the meeting as a blockie). However, this morphing should probably be done with some care so something is kept that identifies the person. This means a finite set of pre-made embodiments is not sufficient but a configurable embodiment might be. There are many examples of configurable embodiments, but they only allow the user to manually change some attributes of the same embodiment. It seems appropriate to view embodiment as a full configuration problem: the embodiment could be automatically configured to fit a VE, or the user could lock some part of it and optimise on some aspect, or the user could add some functional constraint (e.g. animated walk). Hence, the embodiment could be dynamically adjusted to the environment and the state of the user (angry, inactive etc.), This is an example where CVE research may benefit from a tool like 3dObelics.

Con)figuring Knowledge Spaces

Presenting information as 3D objects can also be viewed as a configuration task. For example, an application mapping a Web-browser hot-list to a

town where, for example, the most central buildings are the most visited pages could be implemented using a configuration engine. An existing example of this kind of application is VR>,v'IBE [9].

Configuration Tools

Configuration tools and applications differ vastly in their functionality. Some systems only accept structural descriptions, some try to find optimal configurations while others only guarantee valid configurations, etc.

There are a number of different properties of the tools/applications that are relevant as background to this work.

Requirement Types

• Functional Requirements: The requirements are given as a functional/behav[oural description. The allowed form of description varies from arbitrary descriptions formulated in some description language to simple parameters in a predefined description.

• Structural Requirements: The requirements are given as a structural description, e.g. a parts list.

Session Types

Batch-mode: [;akes a set of requirements as input and produces a design directly from it.

interactive: The requirements are specified during an interactive session.

Freely interactive: Any requirement can be added or retracted at any time and the cor- respQnding change in the state of the con- figuration is immediately presented, i.e. the user can instantly see the effects of adding or retracting a requirement.

Result Requirements

• Optimal: lhe resulting configuration must be optimal according to some optimality criteria that differentiate among valid configurations that satisfy the users requirements.

• Valid: The resulting configuration need only be a valid configuration that satisfies the users requirements.

Collaborative Configuration in Virtual Environmen:s

Page 4: Collaborative configuration in virtual environments

IP

Existing Tools

The goal of existing tools is in general to develop 'black box' configuration systems, i,e. batch-mode systems that take either part lists or higher level functional descriptions as input and produce con- figurations as output, These systems may interact with the user while creating configurations by query- ing the user for design decisions, This is generally done in a program driven fashion, forcing the user to respond to the program. These application have very limited use in collaborative virtual environments since the input normally is a textual description, As exemplified in the following sections it seems that for configuration in collaborative virtual environ- ments to be interesting requires freely interactive, user centred configurators that react to actions rather than simply prompt for input at well-defined places in the program.

3dObelics

Solving the tasks previously described puts an enormous strain on the underlying configuration engine, it must be able to at any time:

• Add and remove constraints (functional and structural) and optimisation criteria.

• Find optimal solutions considering all current constraints for any optimisation criteria in real time.

• Find the possible alternatives for a component considering all current constraints,

Using our previous experience [10] we have implemented a new configuration engine, based on a finite domain constraint solver, to handle these requirements. The basic idea with the new engine is to view configuration as a pure constraint satisfaction problem,

Viewing Configuration as a Constraint Satisfaction Problem

Configuration problems are by nature NP~com- plete. Traditional configuration systems deal with this problem in several ways. For rule based systems, heuristic rules are added to reduce the

problem to a simple linear/polynomial prob- lem. Adding these rules is very bad for main- tainability since they are not founded in the problem contents but only in the context. These rules often prune valid solutions from the search space. In general, these systems are restricted to find acceptable solutions according to fixed cri- teria, This is often reflected in the domain model where local optimisation rules are modelled as hard constraints,

Viewing configuration as a pure constraint satisfaction problem allows one to deal with prob- lem contents only. The idea is not new, especially for quantification problems finite domain constraint solvers have been applied with good results. Con- figuration usually also includes finding connections, but the problems of quantification and configuration are isomorphic: In quantification, only quantities of objects are of interest, In configuration, both quantities of objects and connections between them are of interest. But a configuration problem with the set of possible obiects, PQ, and possible connections, PC, can be mapped to a quantifica- tion problem by mapping each possible con- nection to a possible object. So if PO=,~a,b} and PC=~con(a,b)) then the equivalent quantifica- tion problem is PO={a,b,ab~ where ab represents a a and a b object which are connected. It is hence possible to allow connections in the prob- lem model and still solve it as a quantification problem. For example, we may want to differen- tiate the wheels of a car, which are front wheels and which are rear wheels. To do this we replace each wheel component, Wi, with FrontWi and RearWi. However, for a modelling language, this is not appropriate, it is a lot more convenient to be able to talk about possible connections. But the prob[em can sti[I be solved as a quantification problem since it is possible to translate as above. Hence, FD constraint so!vers can be applied to configuration problems in general [1 1 ].

However, the configuration problems considered as suited to be viewed as constraint satisfaction problems have usually been small but complex.

Two reasons for this is that:

1. The technique is quite new and not fully developed.

2. Modelling the problem as a pure FD satisfaction problem can be very difficult when the problem is large. The problem itself may not be very difficult to model but to make the search space feasibly small one usually needs to add redundant constraints and constraints

T/~ling

Page 5: Collaborative configuration in virtual environments

to remove symmetries, which can be difficult when the number of variables becomes large.

The New Engine The idea that we are pursuing is that by using a state of the art finite domain constraint solver and making a modelling language for configura- tion problems based on a well defined model of what configuration is, resource balancing, we can overcome these problem. A configuration is created to fulfil some function and the idea with resources is to quantify the functions. Hence, the function of a configuration is expressed as resource values, e.g. memory=2000, CAD=l, price=20000. Including a component in a configuration is done to provide some function, maybe not directly contributing to resources of the complete configuration but pro- viding the function needed by other components that do. Each component can be said to provide some functionality but may also require some. This can be translated to resources by saying that a component provides some amounts of resources and consumes some amounts of other resources, It may also require that some resources are available of some amount but is sharable, i.e. some functions are required but may be shared with other com- ponents. A solution is then a set of components where resources are balanced, i,e. there are at least as much provided as consumed of every resource. The configuration engine compiles models into FD representations of the resource balancing problems described in the models. Using the FD representa- tion the engine can then accommodate the different types of request needed by a freely interactive con- figuration application. The assumption is that most constraints of a configuration problem are linear and many of these can be found in the model without being explicit, For example, each memory chip will contribute a fixed amount of memory resource not a value calculated with some arbitrary function. So the constraint will be

MemRes=MemChip 1 .qty*MemChlp / .s/2e+ ... +MemChipN. qty*MemChipN, sJ2e

where the size is not a variable. 7his constraint is not declared explicitly in the model but as mem res:sum_attr(size), hiding all intermediate variables. The engine also adds redundant constraints to the FD representation to remove symmetries.

The Modelling Language In an attempt to keep the different types of knowledge separate there are three models.

1. The Component Model describes the components. The model consists of component classes of the following form,

component: attributes: The attributes of the component.

subclasses: The possible specialisations of the component.

2. The Functional ModeI describes the possible arrangements of components and maps arrangements to resources, The model consists of part classes of the following form.

part: attributes: List of the part's attributes. These attributes are, in general, resource declara- tions. In these declarations basic resource constraints (Heinrich 1991 ) may be included. They are of the type Type(Resource: Constraint) where Type is provides, consumes or uses, and Resource is the name of resource attribute and Constraint specifies the mapping e.g. sum of the values of a particular attribute of a group of parts.

constraints: None basic constraints that must hold for an instance of the part.

component: List of component classes, stating what components the part can be realised with.

view: The graphical representation of the part, i.e. an object in a VE

subparts: List of part-of relations of the form Part(QtySpec) where QtySpec specifies the number of Part instances that will be created as subparts to the part and constrains the number of those that can included in the configuration. It is also specified how many components each instance may represent, default being 0 or 1.

3, The Control Model states control knowledge for the actual configuration process (Gunter 90). This model is optional and is only to increase performance. The model is a list of tasks in the form Task(PartSpec) where Task is one of specialisation, decomposition, aggrega- tion and parameterisation, and PartSpec specifies the group of parts it applies to.

Collaborative Configuration in Virtual Environments

Page 6: Collaborative configuration in virtual environments

IP

Advantages

The main advantages of the pure constraint satisfaction approach are still there:

• Efficient search for optimal solution according to any criteria using for example "branch and bound" or "binary search".

• Any user defined constraints can be added to restrict the solution space, This also soIves problems like extensions (by adding constraints stating that a set of components are chosen).

• The system is not restricted to a single use; one can, for example, ask what the possible engines are for this car if it is a coupe. This is vital for a freely interactive system.

The Connection between the Engine and VEs

The mappings to visual objects are specified in the functional model. The dif ferent specialisa- tions are represented as sub-obiects of a DIVE object containing all the possible alternatives, The sub-object in turn has sub-objects for each component alternative, and so forth, reflecting the structure of the functional model. The way the alternatives are displayed is specified in the functional model. If there is only one alternative it is displayed as solid otherwise the approach specified in the model is used to present the alternatives to the users. If an alternative is selected and the remaining alternatives are removed and the possible alternatives for all other components are recomputed. If a user clicks on a previously selected alternative, that selection is considered undone and the possible alternatives for all components are recomputed,

How the Current State o I the Configuration is P~esented to the Use~

The problem here is to find abstract representations of what we want to configure. In the case of physical artefact, the problem is how to present the state while very little is decided about it. When the solu- tion is determined the resulting object should obviously resemble the physical artefacts as much as possible. How is, for example, a car represented before we know if it is a sedan or a coupe? For things that do not correspond to a physical artefact,

such as services, there is an additional problem of finding an understandable 3D representation, e.g. if the task is to configure a trip, an abstract 3D representation of the trip is desirable to allow the users to interact and hopefully get a better overview of the state than a textual representation would provide. There are three different types of know- ledge that are involved in a configuration task. Fhey are currentIy supported by 3dQbelics in the following ways:

• Quantities of instances of component classes. The chicken-egg metaphor [1 3] allows the user to create new instances by having a chicken lay eggs that then can be specialised (hatched). The eggs may take into account spatial in fo rmat ion and in fo rmat ion about the interact ing user when determin ing what specialisations are possible.

• Specialisations of component c/asses i,e. the alternatives of an instance.

Wireframe: The possible alternatives are shown in wireframe. Clicking on such an object selects it. The object is then dis- played as solid and the other alternatives become invisible. This approach works if the alternatives may be situated at different locations.

Switching: Switching between the alter- natives, i.e. only one alternative at a time is visible. This can be done in two different ways: cont inuous changing between aIternatives two times per second or controlled by the user, the user drags the mouse upwards over the object to see the next alternatives and downwards to see the previous alternatives,

Visor: The possible specialisations for an object are displayed on the user's visor when clicking on it and he may then select one of the alternatives.

• Attributes of the instances including resource attributes.

A special slider, exemplified in Fig. 2 that allows a user to change the interval of an FD variable. The upper bar represents the upper bound of the variable and the lower bar the lower bound. The bounds may be changed by dragging the mouse up and down the bars. The example shows such a slider for the variable comfort where the upper bound is set to 1 0 and the lower to 5. The dragging is not controlled, i.e. there

T. Axling

Page 7: Collaborative configuration in virtual environments

related applications developed within the scope of the ACTS96 COVEN Collaborative Virtual EnvirQnments proiect. The sample applications are the following:

Fig. 2. and Fig. 3. Variable representations.

is no checking if there is any solutions for all values in the interval. But the effects on component alternatives are immedi- ately shown when the interval is changed and if there is no solution for any value in the interval that is reported to the user.

An object which can be resized and the size is related to an attribute value. This can be used in pairs to represent the upper and lower bound as in Fig. 3 where the small chair represents the lower bound of a variable labelled comfort and the large chair the upper bound; similar to the slider in Fig. 2.

Ways o~ Interacting

Currently there are three ways of interacting that are supported in 3dObelics:

1. Through a regular input window. From this window the configuration can be controlled and resource constraints can be specified.

2. Through speech using a Talking Agent. The Talking Agent system [14] is a generic frame- work for speech interaction in virtual envir- onments, The central innovation is that by c o m b i n i n g intelligent agent and spoken dialogue techniques, users talk directly to agents in the virtual world which carry out specialised functions, in this case controlling the configuration.

3. Through direct manipulation as described previously.

A Car Configuration Agent

As an example of configuring a physical artefact we have made a simple car configuration agent. The only parts modelled are the chassis, compart ment, engine and wheels and the graphical repre- sentation is extremely simple. The car configuration agent is usually placed on a conference table and although this is iust a toy example it illustrates the basic features of 3dObelics. The participants can use direct manipulation to select the desired parts, e,g. the engine. They can enter functional requirements, e.g. specifying the maximum weight of the car, and specifying optimisation criteria in a spoken dialogue with the agent.

A Travel Configuration Agent

A Travel Configuration Agent is a concrete example of an application where this technology could be useful since setting up a group trip is actually a configuration problem. It includes choosing trans- portation, hotels, locations, rooms etc, The choices are often subjective so 'black-box' configuration is not sufficient The idea here is to represent the trip in a Vf~ and allow entering functional constraints (e.g. travel with high comfort), optimisation criteria (e.g. as cheap as possible) and structural constraints

Applications So far, only a few sample applications have been done using 3dObelics. Two of these are travel Fig. 4. Configuring a trip.

ColJaborative Configuration in Virtual Environments

Page 8: Collaborative configuration in virtual environments

(e.g. deciding on a certain hotel). The trip is rep- resented in 3D, as shown in Fig, 4. The left part is a map of Europe, the boxes on the ground are hotels and the boxes above are just buttons to click on to get a web-page describing the hotel. ]he wireframe paths are possible flights. The large box to the right is an abstract representation of the hotel room to be used, The options for bed, TV, minibar etc. are visible using the switching approach (the picture does not show this switching but e.g, the bed is constantIy changing between the currently possible alternatives, a single bed, a double bed and a luxurious double bed). The users can see and interact with it, being able to add or change struc- tural constraints such as what country they prefer. The cartoonish figure in the room is a talking agent that can assist the users in the configuration task. He can, for example, be used for specifying functional constraints. Actually only structural constraints can be specified with direct manipulation so far in this application. But functional constraints and optimisation criteria can also be represented as 3D objects using the slider or resizeable objects described earlier, For example, the maximum cost of the travel could be represented by a resizeabte pile of money. The current model is by no means a good representation of a trip, merely an attempt to illustrate the basic ideas. Neither is the data used in the configuration real.

A Scenario ]~'or the Virtual T~avel Agency

A group of people want to go on a trip so they meet in a VE and gather around the travel configuration agent. Knowing this is going to be a conference trip they enter the constraint 'conference ability high' by using the keyboard, speech, or by manipulating 3D objects. One person sneaks in the constraint 'leisure ability high' while the others decide to add the constraint 'duration 1 week' in July or August', Then some of them add constraints like 'not July 10-15" due to previous commitments. They tell the agent to show the cheapest solution and look at the 3D representation, Fig, 5, of the suggested trip, They also get a 2D window with travel information and some spoken information from the agent. The travel path is marked and an SAS plane with some fl ight information rep- resents the travel means, The path leads to a country, Two of the people click on the country and get teleported to a VE where they can see some more of the country. A third person clicks on the object representing the reserved

Fig. 5. A configured trip.

hotel to get a web-page describing it. Not liking what he sees, he selects a different hotel by direct manipulation. The others notice the change (especially the price change) and ask why. Agree- ing on the other hotel being sleazy and that they should have a different hotel but not necessarily the one now selected they release that selection, lock the country selection and tell the agent that the comfort rating must be high. This changed the hotel and the airline,

This continues until they reach a solution that all parties are satisfied with,

Configuring Information Spaces Another travel application we have been working on is one that acts as a tourist guide to Stockholm; this one uses real information gathered by a search agent that searches the web for relevant information. Since this is a time consuming pro- cess, it is done off-line. As shown in Fig. 6, the environment is mainly a map of Stockholm with markers representing important locations. The idea is to reduce the redundant information by configuring the markers according to the user's interest. This can be done incrementally by adding constraints, e.g. 'hotels must cost less than 1000 SEK per night, there must be a gym in the hotel', Finding optimal solutions for different criteria can be done repeatedly, e.g. 'show the most com- fortable hotel given these constraints' will leave only the marker for the hotel with the highest comfort rating given that it costs less than 1000 SEK per night and that there is a gym in it. The

]] Axling

Page 9: Collaborative configuration in virtual environments

Fig. 6. Configuring information spaces.

constraints are posted through speaking with the talking agent in the figure or via textual input, Currently, the task is not really a configuration task (it is iust the question of selecting hotels etc., the combinations are irrelevant). In the future, the task will be a configuration task that assembles trips, e.g, a day-trip in Stockholm, with sights, restaur- ants etc., from some requirements. Then the task will be a real configuration task since the selection of the different items are dependent on each other, e.g. selecting a hotel in one part of the town makes nearby sights more attractive since they will be easier to access. Also eating at a sea- food restaurant at lunch makes similar restaurants less attractive for supper. This application can also be used through a regular web-browser. The application then works as a 'black box' configur,- ator where the requirements are specified in an entry form and a VRML world is generated as

result. It is the same application running but acting as a server taking input from the web and exporting a selected part of the environment in VRML, The application can be accessed from h t tp://www.sics.se/-axling/vrmldive, h tml.

Configuring a Village

Figure 7 is from an application that uses con- figuration to support a village-planning con- ference, The participants configure a village using chicken-egg metaphor, i.e. new instances are created with the chicken and the instances are displayed as eggs untit they are speciatised, tn this scenario the eggs can be specialised into different buildings depending on the ground and available space. The chicken is deliberately very strange looking to point out that she is a meta-object and is not part of the rest of the environment, The idea is that she should stand-out but still be a natural metaphor. This application is only doing structural configuration, There is only a rudimentary functional model of the village stating the spatial relations that must hold. Hence this application does not accept functional requirements such as 'population greater than 200'~

Fig. 7. Creating a village.

Implementation

3dObelics was implemented using the follow- ing tools:

ColJaborative Configuration in Virtual Environments

Page 10: Collaborative configuration in virtual environments

D

DIVE

DIVE (Distributed Interactive Virtual Environment) is a tool kit for building distributed VR applications in a heterogeneous netwQrk environment [1 5]. DIVE allows a number of users and applications to share a Virtual Environment where they can inter- act and communicate in real-time. This virtual environment is a database of entities: graphical obiects (views) and hierarchically organised abstract objects (DIVE obiects). The database is actively replicated among all sites participating in a DIVE world. Each replica is controlled by an Application Process that manages the movement and inter- relationship between the objects component parts and responds to interrupts generated by changes in the objects' environment.

The Talking Agents System

The Talking Agents system [1 4] is built upon the DIVE system and adds components for speech pro- cessing and language understanding as shown in Fig. 8. Input from a microphone is analysed by a speech recogniser which outputs a semantic template specifying an obiect and the action to be applied to it. Reference resolution identifies which object in the virtual world the user is referring to, and then executes the appropriate actiom In addition to feedback via the graphical interface, the system also provides spoken feedback via a speech synthesiser,

We use a commercial recognition system (Nuance) which employs finite-state grammars for

Fig. 8. Talking agents architecture,

recognition. Semantic representations are directly assigned in the grammar, thus obviating the need for separate syntax and semantic components. Each agent [1 6] has one or more grammars which specify the range of commands it can understand and execute, At runtime, multiple grammars are loaded into the recogniser and, when a dialogue is initiated with an agent, the appropriate grammar is activated.

Implementation Language

To implement 3dQbelics we needed a language for constraint programming but we also wanted it to support concurrency, reactivity and real-time control which are vital for building interactive VE applications. The new concurrent constraint pro- gramming paradigm in general, and ©z in particular support these requirements [l 7]. Oz is designed to support multiple concurrent agents, which makes it well-suited for our purposes. It is based on a new computation model for higher order concur- rent constraint programming (CCP) which provides a uniform foundation for functional program- ming, constraint and logic programming, and concurrent objects with multiple inheritance. We therefore chose Qz for the implementation and ODI, an existing interface between Oz and DIVE including an object layer for supporting agent abstractions [1 8].

Problems and Continued Word

Interaction Metaphors

One of the main issues of this work is to find ways of interacting with the engine. The metaphors must be natural and applicable to vastly differ- ent domains, As an alternative to the chicken- egg metaphor we will use a 'Clay-metaphor', i.e. chickens are replaced by tubes and eggs with clay chunks. The clay chunks take the shape of a morphing of all the specialisations that are possible at the moment. One advantage over the chicken- egg metaphor is that the clay chunks tell some- thing about the possible specialisations while the eggs themselves do not (until they are asked to present them). For example, a car instance with only two remaining specialisations will appear as a

T. Axling

Page 11: Collaborative configuration in virtual environments

car shaped chunk of clay using the Clay-metaphor, as compared to just another egg using the chicken- egg metaphol:

Multi-user Issues

Calculating possible component alternatives is a very expensive task. To guarantee that an alter- native is possible, it must be proven that there is a solution including that alternative. A naive solution does this by trying to find a solution for each alterna- tive, i~he implemented algorithm, which is a lot more efficient, checks found solutions and adds the chosen component alternatives to the set of valid alternatives and then changes the enumeration strategy to avoid finding similar solutions.

It is, however, not feasible to check all possible alternatives for more complex problems under the time constraints that are imposed by being an interactive system. But that should not be necessary either; since, e.g. only components that are of interest to the user need to be displayed. In a VE this changes dynamically, e.g. if a user from his current position only can see a small subset of the components then only things regarding theme need to be recalculated immediately on an interaction. Other things can be recalculated later in the background. Level of detail can also be used beyond simplifying the graphics; being far away from the objects involved in the configuration it is not necessary to recalculate all details. It may also be appropriate to present completely different alter- natives depending on the user's view point. Hence a focus model can be used to determine the order of recalculations and what should be visible.

The calculations can also be distributed among the involved sites which will be easily accomplished with distributed Qz [19]. One way of doing this is that each site only calculates the possible alter- natives within the focus of the user on the site except for one site that acts as a server and makes sure the setting of possible values is eventually updated.

It is possible that for some applications it is advantageous to present the current state differently to different users. Authority issues such as who can decide what is a problem that needs to be address and may use the idea of presenting the current state differently to different users. For example, some alternatives may only be selectable for some users and should therefore only be visible to the user who can select them.

Conclusions

Configuration tasks are common in CVEs making a configuration tool desirable for CVE application development and research. At the same time, configuration is often a coIlaborative task and in many cases alternatives and result are better pre~ sented in 3D than in 2D, making CVE a desirabIe context for configuration applications. The high level of interactivity needed suggests a constraint solving approach. The disadvantage with the approach is scaling; when the search space becomes large the problem must be structured carefulIy and redundant constraints must be added to make performance acceptable. This may be overwhelmingly difficult. The solution suggested in this paper is a modelling language specialised for configuration that guides the develope~

References

7, Mittal S, Frayman E Towards a generic model of configuration tasks. Proceedings of the 17 ~h IJCAI. 1989.

2. McDermott J. RI:A Rule-Based Configurer of Computer Systems. Artificial Intelligence 1982; ] 9:39-88.

3, FahIen LE, Brown CG, Stah[ Q, Carlsson C. A Space Based Model for User Interaction in Shared Syn- thetic Environments. In proceedings of SIGCtlI'93. 1993.

4, St~hl Q. Mdraw - A Tool for Cooperative Work in the Telepresence Environment. Technical report SICS- T92:05. 1992.

5, Dong Z. Design for Automated Manufacturing, Chapter 9 In: Concurrent Engineering: Automation, Tools, and Techniques, A. Kusiak (Ed.), John Wileyand Sons, 1992; 701-724.

6. Utpal R. An Intelligent CAD System in Concurrent Engineering Environment: A Knowledge-Based Approach. Cybernetics and Systems, An international Journal 1994; 25:611-628.

7. Lin AC, Chang TC. An Integrated Approach to Automated Assembly Planning for Three- Dimensional MechanicaI Products. International Journal of Production Research 1993; 31: 1201-1227.

8, Lin AC, Chang TC. 3D MAPS: A Three-Dimensional Mechanical Assembly Planning System. Journal of Manufacturing Systems 1994; 12:437-456.

9. Benford Set aI. VR-VIBE: A Virtual Environment for Co-operative In forma tion Retrival. Com pu ter Graphics Forum 1995; 74.

10. Axling T, Fahlen L, Haridi S. Virtual Reality Program. ming in Qz. In Proceedings of the 3 rd Eurographics Workshop on Virtual Environments, 1995,

t t~ Sabine D, Fmuder E. Configuration as Composite Constraint Satisfaction. tn proceedings of the Artificial

Collaborative Configuration in VirtuaI Environments

Page 12: Collaborative configuration in virtual environments

D

Intelligence and Manufacturing Research Planning Workshop, 1996; 153-163.

12. Heinrich M, Jungst E. A Resource~based paradigm for the configuring of technical systems from modular components. In proceedings of the 7 :h IEEE Conferenece on Artificial Intelligence Applications, 1991; 257-264.

13. Axling T, Fahlen L, Haridi S. Concurrent Constrain Programming Virtual Reality Applications. Second Internation Conference on Military Applications of Synthetic Environments and Virtual Reality. 1995.

14. McGIashan S, Axling T. Talking Agents in Virtual Worlds. In proceedings of The Third UK VR-SIG Conference. t996.

15. Hagsand Q. DIVE - A Platform for Multi-User Virtual Environments. In IEEE Multimedia.1996.

16. $hoham Y. Agent-oriented programming. Artificial Intelligence 1993; 60:51-92.

17, Smolka G. The definition of kernel oz. Technical report, German Research Center for artificial Intelligence (DFKI), 1995.

18, Axling T, Haridi S. A Tool for DeveIoping Interactive Configuration Applications. Journal of Logic Programming 1996; 26:147-168.

19. Haridi S, Roy P. An Overview of the Design of Distributed Oz, ACM International Symposium of Parallel Symbolic Computation. 1997.

Correspondence and of fpr in t requests to: Tomas Axling, Swedish Institute of Computer Science, Box 1263, 5-16428 Kisto, Sweden. Email: [email protected]

11 Axling