|
Interact/ND --
Goal and ObjectiveThe goal of the Interact/ND Browser project is to provide a set of tools to facilitate 3D-immersive, multi-user environments across the Internet. Such environments will serve a variety of purposes, ranging from effective and intuitive net browsing to communications to powerful collaborative design applications and top-notch entertainment interfaces. We are interested in creating not just "another browser", but rather an environment by which people can more completely interface with both their own computers and with data from the network. This includes supporting a variety of user peripherals for high interactivity and providing a system by which client applications can utilize all the graphics capabilities and interactivity that the browser provides. Our particular interest is in electronic system design as we believe that networked, collaborative, immersive CAD software is an unexplored area of research with great potential to enhance the productivity of design engineers.
Overview
Figure 1: High level diagram of Interact/ND At the user level, Interact/ND allows the browsing and retrieving of VRML files, objects and associated links located across the Network. Within the user interface (UI), users can explore and view 3D models using immersive VR devices as well as perform a variety of scene manipulation and editing functions. A Multi-User environment is also supported where collaborative work can be performed. To extend the multi-user, immersive environment of Interact/ND to a distributed design system, more system-level support and plug-in applications are to be developed. The system will include a Simulation Engine which allows objects to have properties, behaviors and animation. there will also be a Decision Support system which helps the user to intelligently find information and components across the network and represents data in an intuitive and useful manner. There will be provisions for Customer Tracking which allows the management of operations and transactions by a central server. Finally there will be CAD Software and an associated Component Library (which will be developed by a number of parties) which takes advantage of all the seamless underlying capabilities (3D, immersiveness, multi-user interaction) which Interact/ND provides.
Functional SpecificationThe Interact/ND Environment combines some of the key elements in providing an infrastructure for the development of a distributed design system which includes 3D rendering, browser interface, immersive hardware support, multi-user environment and multiple platform support.
VRML OverviewThe vehicle by which we hope to accomplish our goal is VRML, the Virtual Reality Modeling Language. We chose this because it is an open standard and that it provides a very general syntax for scene description. However, the current version of VRML (VRML v1.1) is a minimal specification -- it provides a basic language for describing hyperlinked, static, 3D scenes. We are working to expand this specification to give network objects properties and behaviors which will allow them to interact with each other for simulations, and will also allow them to interface with existing CAD programs running on local machines. We are actively participating in various forums (SIGGRAPH 95, VRML95, VRML Consortium), newsgroups (alt.lang.vrml, comp.graphics.api.inventor) and mailing lists (vrml-behaviors@sdsc.edu, vrml-modeling@sdsc.edu, www-vrml@wired.com) and watching closely the academic and industrial efforts to develop and extend the VRML specification. Using SGI as our main development platform, we have utilized Inventor, SGI's object oriented 3D graphics and visualization toolkit, into the Interact/ND browser as it provides sophisticated 3D graphics primitives and a structure for adding our own elements to its simple database. Its simulation characteristics also make it a desirable software to use. At the same time, OpenInventor, a development of Inventor which is available on a wider range of platforms, is emerging as a de facto standard for the management and interchange of 3D scene information and has been used as the basis for the VRML extension to the World Wide Web. These are encouraging signs of increasing support of VRML as the future 3D modeling language.
Browser Organization
Figure: Organization of the Interact/ND modules This figure shows a high level overview of the software organization. The scene is the abstract body of data structures and programs which represent the state of the world at any given time. The inputs modify the scene, and the scene managers are responsible for arbitrating these modifications. As shown in the diagram, the inputs can be roughly classified into two types: real-time peripherals and World Wide Web. The WWW will replace the entire scene when a user traverses a hyperlink. In contrast, the peripherals are constantly changing, so performance is a much bigger issue for these modules.
Figure 3: A snapshot of Interact/ND
|
Currently, the user interface is inherited from a scene viewing demonstration software which we used as part of our code base. For future development and usage purposes, we find that it is not well-suited to our needs and plan to re-write a tailored interface using more sophisticated tools (Java) in the coming quarter.
Immersive Hardware SupportThe support of immersive hardware devices is essential to an effective 3D design environment. We support several commercial and internally developed immersive devices, and have used our software to evaluate the usefulness of these devices. We will continue to broaden our device support as new we hear of or develop new devices which will enhance interaction with 3D environments.
|
Multi-User Environment
Unique Event ModelThe Interact/ND environment possesses a unique event model which handles the network like any other peripheral, meaning that messages which are passed from other Interact/ND clients are treated in a similar manner to events from input devices. This allows us a great deal of code reuse, and enables easy incorporation of new input devices as necessary, with minimal modifications to the core code. It also has the inherent capability of supporting input devices across the network.
Multi-User Collaborative Virtual Environments on the InternetOn top of the event handling mechanism, Interact/ND has provisions for multi-user interaction. At this time, there is only support for motion updates through rudimentary UDP client-to-client communication, but a more sophisticated messaging system using MBONE multicast is under development. In the long run, we hope to add full voice communications so that multiple engineers can easily collaborate on design despite geographic separation.
Multiple Platform SupportInteract/ND was developed entirely on an SGI running IRIX5.3. It currently runs on SGI and is in the process of being ported to Windows NT and Windows 95. Once we have released a prototype (running on IRIX, Windows NT and Windows 95), and if there is sufficient demand, we may port the software to other popular platforms (SunOS, Solaris, DEC Alpha). The current user interface is implemented using Xt; we plan to rewrite it in Java for true platform-independence over the coming quarter.
Ongoing and Future Possible ExtensionsIn the ever-increasing complexity of electronic design, especially when tools, components and services are distributed throughout the world, the need for an understanding of the nature of the relationships between components and their use in particular designs, related services, and various users or user groups, is essential. Therefore, we plan to develop a decision support application using the browser, with the capabilities of identifying and classifying various forms of dynamic and static information about the design and its environment, as well as display the information in a way of most use to the engineer. On the system (database) level, issues and products regarding data browsing, data mining, "network makefile" will be investigated. On the user (graphics) level, data representation, or scientific visualization approaches will be explored to find an effective and intuitive way of presenting data and dependencies.
Customer TrackingTraditionally, the "purchase-maintenance" model has been used in the EDA business. In this model, EDA firms sell licenses for proprietary design automation software to their customers and then charge annual maintenance fees. With the emergence of the Internet and a new mode of distributed design system, new charging methods should be adopted. This may be on a per-use basis (i.e. a customer gets charged every time he downloads an executable), per-transaction or time-usage basis, etc.. and thus the need for customer tracking arises. This will entail developing a client-server architecture where a central server logs clients transactions and performs necessary data processing and calculations. It will also require the development of a subsystem to enforce the security of this model.
Simulation SoftwareIn order to be useful to CAD, Interact/ND must have provisions for simulation software. Initially we hoped to adopt some large simulation engine and place this beneath our browser to drive its simulations. With the incorporation of a Java interpreter into our core we can now afford to be more flexible. We define two types of simulation software: heavyweight and lightweight engines. Heavyweight engines are computationally intensive or anything that must be native-code compiled to be effective. This software will be compiled into Java extensions and dynamically loaded by the Java interpreter when a lightweight engine calls for it. Lightweight engines are anything else, ranging from small code that acts as a wrapper for data (as in the case of a CAD component) to a simulation engine that is small enough that it can be written entirely in Java. Both types of simulation engines can co-inhabit the browser and are expected to work together. There are numerous significant reasons why we choose Java over other languages. First of all, Java supports programming for the Internet in the form of platform-independent applets. Its simplicity makes the development of user interfaces an easy task, thus we anticipate its increasing gain in popularity and support of developers. It has a secure architecture and structured support for simulation which also make it fit nicely into the model of distributed design systems.
CAD Software and Component LibraryOur target prototype application is a tool for MEMS CAD. We see this as a very positive first step for several reasons:
In the long run we plan to develop a suite of CAD programs that take advantage of 3D capability of our environment and will heavily leverage existing CAD systems. If necessary, we will initially develop a component library for our CAD tools. These components/objects will have dynamic properties and behaviors and will respond graphically and propagate back to the simulation environment. We look to set open standards in cooperation with other academic and commercial CAD organizations. By defining open standards, we hope to gain popularity, adoption and support by these organizations in not only using Interact/ND as a design platform, but also in developing proprietary or shared components to be retrieved across the net.
User Interface
Device SupportWe will continue to investigate and perform research in new popular hardware devices to provide a more immersive and intuitive environment for engineers, in terms of better scene manipulation and more efficient data entry. We will also expand our device support to new and popular devices as we see the demand.
GraphicsThere will be on-going work with UC Berkeley computer graphics groups to improve the user interface and graphics capabilities and to incorporate more sophisticated presentation techniques including collision detection in the scene.
Plans and Projected Milestones
|
Future OutlookAlthough significant development efforts and progress have been made in the fields of 3D rendering, immersive devices, network browsers and multi-user environment separately, we believe that Interact/ND provides a unique environment for the development of 3D, immersive, multi-user applications. These range from network games, to sophisticated design tools. With the security and platform-independency of Java, we will be ready to provide and develop an environment for a distributed, immersive design system that we see as the mode of design for the future.
|
Contact |
©2002-2018 U.C. Regents |