From john@presence.demon.co.uk Fri Mar 25 07:38:55 PST 1994
Article: 11280 of sci.virtual-worlds
Path: news.u.washington.edu!scivw
From: John Hough <john@presence.demon.co.uk>
Newsgroups: sci.virtual-worlds
Subject: NEW-PROD: Prototype Tool for WorldToolKit
Date: 23 Mar 1994 15:53:54 GMT
Organization: Virtual Presence
Lines: 291
Approved: scivw@u.washington.edu
Distribution: world
Message-ID: <2mpomi$ll5@news.u.washington.edu>
Reply-To: john@presence.demon.co.uk
NNTP-Posting-Host: stein.u.washington.edu
Originator: scivw@stein2.u.washington.edu



****************************************************************
*                                                              *
*                                                              *
*             Virtual Presence Ltd Presents :                  *
*                                                              *
*                                                              *
*                  GENESIS World Builder                       *
*                                                              *
*                                                              *
*     Interactive Environment Prototyping For WorldToolKit     *
*                                                              *
*                                                              *
****************************************************************

**
**    Realtime manipulation of Objects, Polygons, Lights, Sensors,
**    Paths and much more.

**
**    Available now on all platforms supported by Sense8's WorldToolKit.
**

**
**    Menu driven user interface.
**

**
**    Sophisticated environment loading and saving.
**

**
**    Full environment import for WorldToolKit applications.
**



Interactive Environment Prototyping from Virtual Presence

 If you're planning to develop VR software using the power and flexibility
 of WorldToolKit, then you'll be pleased to hear that WTK now has a
 'friendly front end'. Genesis allows you to create and then integrate
 sophisticated virtual environments into your WTK applications.
 This reduces development time and allows effort to be cut by up to 80%.

 Genesis is an interactive prototyping tool. It gives you precise control
 over the labour intensive, and often complex, tasks involved in building
 virtual worlds. Environments can be easily saved, allowing you to either
 continue working at a later date, or import them into your WTK applications.



Environments

  Genesis is unique: it allows the user to create and save virtual
  environments. The editor's own file format, '.gen', contains all the
  information required to reconstruct it. For example, if an environment
  is saved whilst a path is playing with constraints turned on, it will be
  reloaded with the path playing just as it was when saved.

  The environment can be saved at any time during the development process.
  Several '.gen' files can be merged together; for example, it is  possible
  to overlay a previously created lighting model on top of the environment
  being constructed.


Sensors

 Genesis supports the full range of sensor drivers provided by WTK. These
 can either be used for manipulating the viewpoint or graphical entities
 within the Genesis editor. Objects and icons can be selected using a mouse,
 allowing them to be manipulated using a specified sensor. Sensor sensitivity
 can be rescaled and constrained.


Graphical objects

 Genesis allows both the importation of 3D objects (file formats supported
 include .dxf, .nff, .obj, .3ds and more)  and the creation of new primitive
 objects. There is full support for the standard WTK attribute functions,
 which allow the user to interactively control an object's colour, texture,
 scale, position and orientation. The editor also provides advanced functins
 such as merging graphical objects together and interactively  setting
 pivot points and local axes, and building complex hierarchies. Selective
 copying allows the user to create reduced level-of-detail and trimesh
 models. Manipulation of objects may be done with a standard sensor;
 alternatively users may specify a translation or rotational constant to
 be applied in X,Y or Z co-ordinates in any WTK Frame.


Polygons

 Individual polygon and group selection is supported by Genesis allowing
 complete control over specific polygon attributes. Polygon colour and
 textures can be interactively controlled via the editor. Advanced features
 such as individual polygon deletion from objects, flat/gouraud shading,
 single/double sided and inside out may also be applied to single or
 grouped polygons, giving the developer a high degree of control over
 imported geometry.


 Lights

 The Genesis editor provides the developer full control over the lighting
 of their virtual environment. The number, intensity, position and
 orientation of WTK lights can be manipulated in real time from within
 Genesis. Lights are represented as icons and can be selected and
 manipulated in the same way as other genesis objects and icons.


Pathing

 Genesis supports the complete WTK path functionality. Multiple paths can be
 created and manipulated. Path nodes are represented as node icons and their
 position and orientation can be adjusted in the same way as graphical
 objects. All the WTK supported forms of interpolation between node points
 are provided, along with extensive node editing and path play facilities.
 These include control over the visibility of the path, play direction
 and speed, plus sequential stepping through the path nodes.


Viewpoints

 Genesis gives the user access to all the WTK supported rendering modes
 such as wireframe, gouraud shading and texture options. The viewpoint can
 be manipulated via any of the available sensor drivers, and the viewing
 angle and aspect ratio altered from within the editor. Selected objects
 can be 'zoomed' into view and the interface also includes a 'zoomall'
 function. Viewpoint constraints are also supported.


Information

 Genesis provides extensive information and environment data. Details of all
 entities supported by Genesis are available from within the editor. For
 example, information on the extents, filename, number of polygons and
 vertices, position and orientation of a graphical object are all easily
 obtained from the Genesis help systems.


Application interfacing

 To create an application which integrates an environment built using
 Genesis, simply compile the GENiface library with the application code and
 call the function GENiface_load.

Example code illustrating the use of the Genesis interface calls:


/* Standard WTK header files */
#include "wt.h"
#include "geniface.h"

int main()
{
 WTobject *object;

 /* Intialise universe */
 WTuniverse_new(WTDISPLAY_DEFAULT,
    WTWINDOW_DEFAULT);

 /* load test universe */
 GENiface_load("uni2.gen", TRUE);

 /* display helpfull information */
 GENiface_printnames();

 /* simple example of finding an object */
 object = GENiface_getobject("meguro");

 /*more complex example */
 WTviewpoint_addsensor(WTuniverse_getviewpoint(),
    GENiface_getsensor("spaceball1");

 /* Start universe */
 WTuniverse_go();

 /* Exit WTK */
 WTuniverse_delete();
 return 0;
}


 Pointers are available to all entities within the environment via the
 object's name defined within Genesis. The GENiface library provides the
 user with many useful routines for controlling the entities loaded via
 the Genesis interface.

Example enviroment file created by Genesis:

Genesis Version 2.01;

// ENVIRONMENT;
enviro bgcolour 0x000;
enviro vposition -97.381714 -22.039515 -48.751019;
enviro vorientation -0.061032 0.196205 0.122790 0.970928;


// SENSORS;
sensor new mouse1 mvm;
sensor sensitivity mouse1 26.352421;
sensor angularrate mouse1 0.400000;
sensor constrain mouse1 off;

sensor new spaceball1 s1vm;
sensor sensitivity spaceball1 26.352421;
sensor angularrate spaceball1 0.400000;
sensor constrain spaceball1 xtrans ytrans zrot


// OBJECTS;
object load rightarm righta.nff 1.000000;
object position rightarm -189.220718 -26.715002 295.885590;
object orientation rightarm 0.026833 0.516167 0.128153 0.846421;
object pivot rightarm -189.220718 -26.715002 295.885590;
object shading rightarm on;
object visibility rightarm on;

object load righthand righth.nff 1.000000;
object position righthand -253.929398 13.254949 183.522705;
object orientation righthand 0.038822 0.495906 0.100072 0.861717;
object pivot righthand -253.929398 13.254949 183.522705;
object shading righthand on;
object visibility righthand on;

// HIERARCHYS;
object attach rightarm righthand;


// LIGHTS;
light ambient 0.200000;

light new light1 0.900000 8.185075;
light position light1 -150.639282 -22.241173 -66.450226;
light direction light1 0.000000 0.000000 1.000000;


// PATHS;
path load path1 path1.pth node.nff f00 0.536656;
path visibility path1 on;
path direction path1 forwards;
path mode path1 toend;
path constraints path1 off;
path speed path1 1;
path play path1 off;

end;

// Simple text format allows enviroment files to be viewed
   and edited by hand.



The Future

 Genesis was originally developed by Virtual Presence Ltd as an in-house
 tool for prototyping client applications. Drawing on over three years'
 experience working with WTK, it embraces the functionality required to
 prepare virtual environments in minimum time - leaving the developer free
 to spend more time on internal simulation functionality. For users whose
 requirement is for visualisation only, it completely removes the need for
 programming skills to produce finished walk- and fly-thoughs

 Representing more than two man years' development time Genesis will be
 expanded and updated in response to user feedback.


For further information and pricing on Genesis please contact
Virtual Presence at:

Virtual Presence Ltd.
25 Corsham St.
London.
N1 6DR.
Tel: +44 (0)71 253 9699
Fax: +44 (0)71 490 8968
e-mail: genesis@presence.demon.co.uk

John Hough CEO
Virtual Presence Ltd
25 Corsham Street
London N1 6DR UK
Tel: +44 (0)71-253-9699
Fax: +44 (0)71-490-8968
e-mail john@presence.demon.co.uk
'Virtually all ther...'

[MODERATOR'S NOTE: Commercial postings are offered on this newsgroup
as a public service.  Their appearance here does not indicate
endorsement by the moderators or by the USENET or its administrators.]


