home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / TEXT / MISC / CYBRTERM.TXT < prev    next >
Text File  |  1992-05-31  |  33KB  |  685 lines

  1. Article 4177 of sci.virtual-worlds:
  2. Path: watserv1!torn.onet.on.ca!utgpu!news-server.csri.toronto.edu!rpi!uwm.edu!ogicse!plains!news.u.washington.edu!milton.u.washington.edu!hlab
  3. From: snoswell@ucs.adelaide.edu.au (Michael Snoswell)
  4. Newsgroups: sci.virtual-worlds
  5. Subject: TECH: Info on CYBERTERM Open System (long)
  6. Message-ID: <1992May31.221443.12742@u.washington.edu>
  7. Date: 31 May 92 16:24:54 GMT
  8. Article-I.D.: u.1992May31.221443.12742
  9. Sender: news@u.washington.edu (USENET News System)
  10. Organization: Information Technology Division, The University of Adelaide, AUSTR
  11. Lines: 668
  12. Approved: cyberoid@milton.u.washington.edu
  13. Originator: hlab@milton.u.washington.edu
  14.  
  15.  
  16.  
  17. Following is the document I promised a while back on the system I am
  18. developing. I have received many requests for this data so here it is
  19. (a little incomplete or it never would have been posted). I'm emailing
  20. copies to those who requested it and will be in touch with programmers
  21. who said they were interested (see later).
  22.  
  23. ---------------------------------------------------------------------------
  24.                                   
  25.                                   OSC
  26.                          Open System Cyberterm
  27.  
  28. THIS DOCUMENT
  29.  
  30. This document is an overview of ideas and concepts that have evolved
  31. over the last year or so. It is not meant to comprehensive, exhaustive,
  32. complete or fixed. Any items mentioned herein are open for discussion
  33. and modification through arbitration (ie if you've got a good idea, tell
  34. me and we'll use it!). Criticism is most wellcome as this has chiefly
  35. been only a two person project with various input from 1/2 dozen others.
  36. Arguments and pointers from others would be gratefully received.
  37.  
  38. The first part of this document discusses some broad ideas and then
  39. gives a brief description of the terms used. Following this is a 1/2
  40. technical discussion on a walk though of some aspects of the system.
  41. After that a more detailed examination is made of the various terms
  42. described briefly earlier and finally a look at other, less related
  43. topics is covered in cursory fashion.
  44.  
  45. After all that a brief description of the software as it stands is
  46. given, along with projected milestones and pleas for
  47. technical/programming assistance.
  48.  
  49. This document mentions many ideas and concepts that stem from the use
  50. and implementation of the underlying protocols. This paper discusses
  51. broad uses of the protocols and the resulting system rather than
  52. focusing on the protocol itself. The reason for this is two-fold:
  53.  
  54.   1) The protocol by itself would seem pretty meaningless without 
  55.      describing how it works and how its resulting use affects the 
  56.      dynamics of a system, and 
  57.      
  58.   2) The protocol isn't firmly set. As the system is developed, more 
  59.      holes are found and things change. There are 1 dozen or so basic 
  60.      messages and a dozen or so rules that are followed, but these are in flux.
  61.  
  62. It is hoped that this paper will give readers some familiarity with the
  63. type of system that is beeing aimed for. A later paper, covering the
  64. nitty gritty may be produced, but the detailed explanations may be left
  65. to the source code itself when it is released. 
  66.  
  67. Having read this discussion first, users and programmers will be in a 
  68. better position to criticise and aid in the systems development (by 
  69. discussion and programming support).
  70.  
  71. Note: Where possible I have put terms in capitals which refer to 
  72. concepts/objects whichare peculiar to this system. This is to try to 
  73. differentiate items when using English to describe some ideas etc, to 
  74. make things a bit clearer.
  75.  
  76.  
  77.  
  78. SYSTEM OVERVIEW
  79.  
  80. The need for a low cost, low bandwidth cyberterminal (CYBERTERM) has 
  81. arisen due to the increasing need to communicate over existing data 
  82. channels with existing hardware. The system is aimed for widespread use 
  83. over a number of platforms and data connections. Initial release is planned 
  84. for late '92 in a shareware format with full source code for all available 
  85. systems.
  86.  
  87.  
  88.  
  89. INTERFACE
  90.  
  91. The interface is simply using the screen with the keyboard and mouse to 
  92. provide a window view into a cyberspace area. As source code will become 
  93. available. 
  94.  
  95. The addition of Power Glove, HMD and other devices will be 
  96. encouraged but not initally supported and will not be required. 
  97.  
  98. The nature of the system will be such that if you have a PC XT with 
  99. hercules graphics then you can display only wire frame at 1 frame per 
  100. second (or whatever the software can manage). If you have an Indigo or 
  101. similar then you are lucky enough to be able to display 30 frames a second,
  102. solid or rendered. The idea is that all the different systems will be able to be
  103. functionally connected together in a meaningful manner. If you have a full 
  104. body suit, lucky you and you get better integration into the cyberspace etc etc 
  105. etc.
  106.  
  107. What this all means is that the code has a central communications core that is 
  108. common to all modules on all systems. The interface business is merely a 
  109. variable front end. All systems will use the same messages etc to 
  110. communicate, but the low end users' systems will not request the extra data and 
  111. will not be capable of producing some messages. 
  112. (eg if you don't have a mouse then movenment is via keyboard. If you have a 
  113. Data Glove then movement can be via gestures).
  114.  
  115.  
  116.  
  117. INITIAL SYSTEM
  118.  
  119. The system will initially be designed around a PC, with Amiga and X11 (on a 
  120. Sun IPC) mods being made as we go, but with no special provisos for these 
  121. machines at this point. Software is currently being written and a beta version 
  122. will be available in a few months (now is May '92). Release will be via 
  123. request to selected users for immediate feedback, followed by general 
  124. shareware release.
  125.  
  126.  
  127.  
  128. SYSTEM ARCHITECHETURE
  129.  
  130. The whole nature of the cyberspace is controlled by the messages that are 
  131. sent, which abstractly define the rules for objects, clients etc within the 
  132. cyberspace. To more clearly describe the nature of these rules and 
  133. messages, a number of terms have been borrowed and coined to describe 
  134. new/borrowed concepts. Once these terms are defined, then it becomes 
  135. much clearer as to how the whole thing fits together and the interaction of 
  136. objects and the nature of this interaction will become evident as you 
  137. understand the rules and contraints which define the behaviour of the 
  138. cyberspace.
  139.  
  140.  
  141.  
  142. DEFINITIONS
  143.  
  144. These definitions are brief and are given to allow a fuller understanding of
  145. the descriptions to follow. A more detailed discussion of these terms
  146. will follow later.
  147.  
  148. CLIENT
  149.  
  150. A CLIENT is the term to describe a person (USER) who is connected to a
  151. system. The CLIENT may be automated (an AGENT).
  152.  
  153. SERVER
  154.  
  155. A SERVER is the central message handling facility which handles the data
  156. flow between CLIENTS. (A bit like a BBS)
  157.  
  158. LOCAL SERVER (LS)
  159.  
  160. A LOCAL SERVER is a SERVER that resides on the same machine as the
  161. CLIENT.
  162.  
  163. REMOTE SERVER (RS)
  164.  
  165. A REMOTE SERVER is not at the same physical machine as the CLIENT in
  166. question.
  167.  
  168. CYBERTERM (CT)
  169.  
  170. This is the term to define the CLIENT and the LOCAL SERVER together which a USER
  171. interfaces to. This all resides on his local machine.
  172.  
  173. SECTOR
  174.  
  175. A SECTOR is a region of CYBERSPACE which is controlled by a single
  176. SERVER.
  177.  
  178. SECTOR CONTROLLER (SC)
  179.  
  180. This is another term for the SERVER, but which covers the CLIENT that is
  181. local to that SERVER (akin to a News conference moderator or a BBS
  182. sysop).
  183.  
  184. PERMASPACE (PS)
  185.  
  186. PERMASPACE is an area of the SECTOR which has been allocated to a
  187. specific purpose. The data defining this region resides in the SC which
  188. controls the SECTOR.
  189.  
  190. PRIVATE PERMASPACE (PPS)
  191.  
  192. PERMASPACE can belong to a single CLIENT (or else it belongs to the SC). If a
  193. USER acquires a region of a SECTOR for their own use, that region is
  194. called PRIVATE PERMASPACE and is controlled by the owner CLIENT's LOCAL
  195. SECTOR CONTROLLER (ie the SERVER which resides on their own machine).
  196.  
  197. LINE
  198.  
  199. A LINE is the connection from the SERVERs to the CLIENTS, LINEs can be
  200. virtual or real.
  201.  
  202. AGENTS
  203.  
  204. AGENTS are macros that use the messages and protocols of the system to
  205. perform tasks as the USER himself would. There are 3 types of AGENTS
  206. defined so far. PRIVATE AGENTS, SC AGENTS and INDEPENDENT AGENTS.
  207.  
  208. ASPECT
  209.  
  210. ASPECT is the description of an OBJECT and covers visual and audio
  211. definitions in an extensible hierarchy of increasing complexity. All
  212. objects have default ASPECTs.
  213.  
  214. CYBERSPACE CONFERENCING (CBC)
  215.  
  216. This is the initial "let's get together and have a chat" aim of the
  217. system and is useful when people ask "So what are you working on?". You
  218. say, "I'm working on a Cyberspace Conferencing system", or something
  219. like that.
  220.  
  221. GUEST
  222.  
  223. A GUEST is a CLIENT who is remote to your location who is connected to
  224. your LOCAL SERVER.
  225.  
  226. BBS
  227.  
  228. A bulletin board system, which when in "chat" or "conference" mode is a
  229. good analogy for what this system will build upon (ie a graphical
  230. version of a BBS CB channel.)
  231.  
  232. OBJECTS
  233.  
  234. OBJECTs are any things which exist within a SECTOR and and listed in a
  235. SERVER database. This includes CLIENTS, AGENTS, PERMASPACE etc.
  236.  
  237. ID
  238.  
  239. ID applies to AGENTS, CLIENTS and SERVERS. It is a unique 4 byte number
  240. where the top 4 bits define what type of object the ID belongs to.
  241.  
  242. FAR - 1,000 units
  243. NEAR - 100 units
  244. CLOSE - 10 units
  245. VERY_CLOSE - 1 unit (ie 26 adjacent units)
  246.  
  247.  
  248.  
  249. A DEMONSTRATION RUN THROUGH
  250.  
  251. Perhaps the best way to show how the various features of the system interact
  252. is to give a description of a typical session. This description will not
  253. be exhaustive and will give some technical details of the message
  254. passing that will take place during such a session. A complete
  255. description of all the features will not be given here as that would
  256. take too long and this is only meant to be an overview. However, what I
  257. hope is to be able to give some insight into what the working system
  258. will be like.
  259.  
  260. So here we go.
  261. (by the way this description is of a screen and keyboard system, but as
  262. stated above, you can use whatever hardware/imagination you have
  263. available)
  264.  
  265. First off when you start up the CYBERTERM you have a blank screen with maybe 
  266. a few control buttons around the edges. 
  267.  
  268. The first step is to log into the LOCAL SERVER. Now this is a SECTOR 
  269. CONTROLLER that resides on the same machine and in the first incarnation of 
  270. the software is all in the same executable. 
  271.  
  272. This connection is done by hitting the 'connect' key
  273. (or mouse button etc). This will send a REQUEST_TO_ENTER message to your
  274. LOCAL SERVER, but first the interface will require that you enter some
  275. parameters. These are:
  276.  
  277.   1) your proposed entry point into the LOCAL SECTOR, and 
  278.   
  279.   2) the proposed viewing direction. 
  280.   
  281. In a more advanced system these parameters will probably be pre-set in 
  282. an option menu so you don't have to enter these details each time, but 
  283. that's the way it is now 
  284.  
  285. (Note: There are quite a few places where things can be pre-set like 
  286. this, as you'll see).
  287.  
  288. Once the CLIENT software has assembled this data it sends the message to
  289. the LOCAL SERVER prepended by your ID, a unique identifying code (4
  290. bytes) that defines you as a human CLIENT as well as giving you a unique
  291. handle for reference purposes. An additional parameter, velocity, is set 
  292. to zero and is the final part of the message. 
  293.  
  294. The connection between the CLIENT and the LOCAL SERVER is a buffer 
  295. that emulates a LINE. 
  296.  
  297. A daemon type function transfers the message across to the SERVER's input 
  298. (and visa versa). 
  299.  
  300. The reason this is done is so that the software for a REMOTE SERVER and 
  301. the LOCAL SERVER will be the same, except that the daemon will be 
  302. different (ie transfering data to and from a modem, serial line, socket, 
  303. or whatever). So as far as the SERVER is concerned it is running 
  304. autonimously from the CLIENT and the human interface handling software.
  305.  
  306. The SERVER checks its internal database of objects to see if you are
  307. allowed to enter at the specified point (more on that in a moment) then
  308. sends a MOVE_TO message back to the CLIENT. This includes the CLIENT's
  309. ID to make sure the right person gets the message (not necessary
  310. obviously as you're the only one logged into your machine), a location
  311. tuple, a direction tuple and a velocity tuple (which is zero in this
  312. case). Now it looks like we're already sending redundant information, but
  313. these are generic commands that can apply to many situations.
  314.  
  315. You CLIENT software now gets this MOVE_TO message and can throw up
  316. an image on the screen which shows what the SECTOR looks like from this
  317. point.
  318.  
  319. What's there to display? Well by default the 'floor' of the sctor is
  320. blue and can be displayed as a grid. The range of co-ords is 2**16
  321. (32768) only positive, as a 32 bit fixed decimal number. This
  322. effectively gives a cube 32768 units on a side. That seems small but
  323. think of each unit as one metre. This means the SECTOR is about 32kms
  324. cubed, with increments down to 1/30 mm. I really think this will cator
  325. for system (and user) requirements for a long time to come. There is
  326. room for much more detail than this actually (2**32 time more) as is 
  327. shown later under PRIVATE PERMASPACE.
  328.  
  329. Okay, so we see a blue grid below us. Our CLIENT software is keeping
  330. track of our velocity and co-ords at the last vector change (ie time
  331. stamped) in its internal object database (this is separate from the 
  332. SERVER's  object database). So a simple look at the time and a scan of 
  333. the database will give the current location of all objects and the 
  334. screen can be updated accordingly. If your machine is slow this screen 
  335. update is slow etc.
  336.  
  337. Now that you're logged into the LOCAL SERVER things get a bit more
  338. interesting. To make things a bit clearer I'll skip over the details a
  339. bit here and get to a remote connection.
  340.  
  341. Suffice to say that the objects contained in the LOCAL SERVER all belong
  342. to your PRIVATE PERMASPACE. There may be objects here, for instance that
  343. represent your hard disk and so you may have a graphical operating system
  344. where you can move files, launch applications etc. You can construct
  345. objects and store them for later use. Certain areas may be defined as
  346. dorrways to the control of real-world apparatus by telepresence etc. So
  347. you now have your own SECTOR, a whole world really, in which to create
  348. and move. Now all this on your own machine is nice but dull.
  349.  
  350. The next step is to send a TRANSFER_SECTOR command. This will move you
  351. to another SECTOR. This will obviously be a REMOTE SECTOR. It's up to
  352. you to specify a legal SECTOR you wish to transfer to and it's up to
  353. your LOCAL SECTOR CONTROLLER to know how to connect to the SECTOR.
  354. Asumming all this has been set up your LOCAL SC (for modem) dials up the
  355. remote SC and identifies itself as an SC that has a CLIENT that wants to
  356. enter. This is sent as a REQUEST_TO_ENTER command (as before). Your
  357. CLIENT software knows that to issue a TRANSFER_SECTOR message you must
  358. enter a location and view direction so it prompts you for them (or gets
  359. it from pre-set options as before). The local SC passes the info on to
  360. the remote SC. If the request message is okay, a MOVE_TO command is
  361. sent from the remote SC to the local SC which now knows that any data
  362. coming in from the CLIENT (on LINE x) is transfered straight to the
  363. remote SC (on LINE y) and visa versa.
  364.  
  365. Now that your CLIENT software has a new location and viewdirection it
  366. adjusts it's internal object database and updates the screen accordingly
  367. (the blue grid). 
  368.  
  369. When you entered the SECTOR the SC sent a message of its own to all 
  370. other users who are within NEAR (100 units) of where you entered.
  371. These messages say what your ID is, your vector and location (this is
  372. actually a PERSONAL_ASPECT_DATA message which has ID, vector and
  373. location in the front of the message but without the ASPECT data as the
  374. SC doesn't have this yet). 
  375.  
  376. These other users may have their systems set up to ignore these 
  377. (unexpected) messages, but if they process them then you, 
  378. the new user, will appear on their screens in the appropriate place and will be
  379. placed in their individual object databases. They may also have a
  380. database of 'know ASPECTS' and can check to see if they already know
  381. what you look like and so can display you in your full glory straight
  382. away. Alternatively they may have their system set up to automatically request
  383. your APSECT if it is unknown and to display it then.
  384.  
  385. Anyway, you've just entered this REMOTE SECTOR.
  386.  
  387. Now you can send a message (or a more sophisticated system would be
  388. pre-set) to ask the REMOTE SC what the brief details are of all users
  389. within NEAR of your location (that is, to send you PERSONAL_ASPECT_DATA
  390. messages with ID, vector and direction). This data is added into your
  391. CLIENT's object database (with a time stamp) and the objects appear on
  392. your screen with the default ASPECT. You can request the details of
  393. other users over different distances first off if you like. Once you know
  394. the ID of other users you can REQUEST_ASPECT_DATA of a specific ID, to
  395. whatever level of detail of ASPECT the REMOTE SC has in it's database.
  396. So on your screen these other users appear as arrows (their default
  397. ASPECT) or their real shape. 
  398.  
  399. When you move (that is, change your velocity or direction) your CLIENT
  400. automatically sends a message (MOVE_TO) to the SERVER. If this is okay by
  401. the SERVER then it sends a MOVE_TO message to you telling you where to
  402. move to (the reason for this is made clear later) and then the SERVER 
  403. distributes the message to all NEAR CLIENTS. In this way, as you watch 
  404. your screen with these objects moving around in straight lines until 
  405. they change vec/vel when you get a message from the REMOTE SC telling 
  406. you their new velocity/direction. If you turn around your system sends 
  407. a MOVE_TO message that is distributed and others see your shape turn around etc.
  408.  
  409. It is important to note that there is no collision control and it is quite
  410. possible for you to move straight through someone else. 
  411.  
  412. (Note: The only possible exception to this is stopping over a PERMASPACE
  413. unit you do not own (see later) or the possiblity that two CLIENTS
  414. cannot be at the same point at the same time. There is no logical reason
  415. why this could not be so, it's just that it doesn't see right to me.
  416. Being instantaneaously at the sam epoint is okay, (ie moving through
  417. each other), but being stationary at the same point? Comments please.)
  418.  
  419. An optional message that you can send to the SC is CHANGE_UPDATE_RATE 
  420. which tells the SC how often to send you location, vel and vec updates 
  421. of all CLIENTS within a given distance of yourself. Normally you would 
  422. have to request this information specifically and the position of users 
  423. you see on the screen may be false (for example a user may drift out 
  424. of the NEAR distance from you but your object database is still tracking 
  425. them saying they are moving at such and such a vector and speed when 
  426. actually they may have changed direction etc. So with a CHANGE_UPDATE_RATE 
  427. message you can request to be updated on the stats of users who are 
  428. NEAR or FAR or whatever say every 10 seconds. Of course if they move when 
  429. they are within NEAR of you then you will be automatically updated anyway).
  430.  
  431. So now you can sit and watch these shapes going by.
  432.  
  433. Other commands within a SECTOR are SEND_MAIL, JUMP_TO, 
  434. REQUEST_SECTOR_TRANSFER etc.
  435.  
  436. Similarly to  requesting the ASPECT of users in the area, you can
  437. request the ASPECT of PERMASPACE in the area. 
  438.  
  439. PERMASPACE is permanaent regions that default to blue. 
  440.  
  441. These will usually consist of PRIVATE PERMASPACE but some regions may 
  442. be owned by the SC such as public database access areas and public 
  443. bulletin boards (more on these later).
  444.  
  445. Just like CLIENTS, PERMASPACE has a default ASPECT that is a blue cube
  446. that occupies the unit cube that is the centre of its local co-ordinate
  447. space. Requests for higher level ASPECTS may reveal these cubes to be
  448. buildings, flashing lights or data structures etc. 
  449.  
  450. A PRIVATE PERMASPACE ASPECT may reveal that it belongs to a friend of 
  451. yours. (It may his name on top or maybe you recognise his style of 
  452. castle!) 
  453.  
  454. You can move through PERMASPACE but you CANNOT stop (ie have 0 velocity) 
  455. when in a unit cube of PERMASPACE which does not belong to you. 
  456.  
  457. So you stop one unit away (VERYCLOSE) and send a 
  458. REQUET_TO_ENTER_PRIVATE_PERMASPACE. This is interpreted by the SC as 
  459. a TRANSFER_SECTOR message, to the LOCAL SERVER of the user who owns 
  460. that PP. If the request is okayed by the owner then you are sent a 
  461. MOVE_TO message that moves you to the coords of the PP. 
  462.  
  463. Now you have transfered to a new SECTOR and are controlled by
  464. the owner's private SC on his machine. The remote SC you were controlled
  465. by now routes all your data straight to the LINE that that new SC is on.
  466. (in a similar way to how your LOCAL SC is re-routing all your data
  467. straight through to the modem).
  468.  
  469. Once again your screen is blank and you can request to see what's around
  470. you. This person may have his SECTOR set up to look like a lounge room
  471. or as rolling hills. All messages from users who you could see before
  472. (ie those outside that unit cube of PP that you're in) are filtered out
  473. to reduce bandwidth required (you may, for instance want to keep mail
  474. coming through. If you have a powerful system you may still get all
  475. 'outside' messages but make the walls of the living room appear
  476. transparent like smoked glass etc).
  477.  
  478. Now that you are in his SECTOR you must abide by his rules. If you send
  479. a MOVE_TO message that will make you collide with object in his PP (eg a
  480. chair or wall) then his sector can return okay for that request, but
  481. when it calculates that you've hit a wall, it can send an addittional
  482. MOVE_TO message that sets your velocity to zero. In this way you must
  483. follow the rules he has set up in his PP. Obviously if he proves to be
  484. obnoxious you can send a EXIT_SECTOR message that the main REMOTE SC
  485. intercepts and so moves you back out into public cyberspace,
  486. garuanteed.
  487.  
  488. Other users can enter the PP of your frined at the same time  so you
  489. can have a 'private conference with only those present'. At that time
  490. his LOCAL SC daemon has set up secondary virtual LINES to allow the
  491. messages from several remote CLIENTS to come down the one modem
  492. connection. As each message is preceeded by the message senders ID, it's
  493. a fairly simply task fo rthe daemon to put the incoming messages into
  494. the appropriate virtual LINE buffers so the SC thinks there are lots of
  495. people/modems connected up.
  496.  
  497. Of course, the main remote SC may also provide private conference rooms where
  498. similar duscussion can take place.
  499.  
  500. This PP may alternatively be the front end to access a commercial
  501. database, a game service, a ticket sales office etc.
  502.  
  503. So you want to establish your own PP within the public SECTOR? You send
  504. a REQUEST_TO_AQUIRE_PRIVATE_PERMASPACE message that is sent via the SC
  505. to anyone who is CLOSE to you (within 10 units). If less than 50% of
  506. those nearby say 'no' to the SC then you aquire 1 unit of PP and this is
  507. registered in the SC's object database. You can optionally send
  508. PERMASPACE_DATA messages to the SC that define the ASPECT of your PP to
  509. whatever level of detail you desire so others can see your new
  510. aquisition. Clearly, you can aquire several PP units next to each other
  511. and build up a composite structure that is more impressive.
  512.  
  513. This aquisition is monitored by the SC and there may be limits defined.
  514.  
  515. Some reqions of PP that belong to commercial users may be large (eg a
  516. database service for stock information may have a large area of PP that
  517. (when you request to see higher level aspects) may be  large building
  518. surrounded by wide grass areas with fountains and gardens). Maybe there
  519. would be large areas within the owned PP that has no higher ASPECT so
  520. that in a crowded area of many PPs the structure will stand out as it
  521. has all this 'open' space around it.
  522.  
  523. You can send mail to a friend by several methods. The most straight
  524. forward would be to use the SEND_MAIL message where you specify the
  525. recipients ID and then the message (no set format, just specify the
  526. length in 4 bytes). The mail will be sent straight to his LINE. If he is
  527. currently transfered to another SECTOR, the mail is sent on to the next
  528. SECTOR to which he travelled (he may have moved on from there too).
  529.  
  530. He may have his CLIENT software set up so mail appears as a flashing icon on
  531. the screen or as a full letter box outside the little cottage that is
  532. his PP.
  533.  
  534. Mail can also be send to a location and the SC will try to inform the
  535. owner, if the mail is not received, a MAIL_FAILED message is returned.
  536. Text mail may be appended to a PP ASPECT temporarily. In this way if
  537. no-one is 'home' (maybe not logged in or in another SECTOR) then you can
  538. send the mail to the PP location and when he person returns he will see
  539. an added object on his normal PP aspect. This object may be a piece of
  540. paper with the text message written on it.
  541.  
  542. In a similar way a true bulletin board could be set up, where people
  543. could leave messages for others to read.
  544.  
  545. So you can conference with otheres, send mail, access commercial
  546. services etc.
  547.  
  548. The commercial services may first connect to the system using their
  549. original 2D flat screen interface, so when you enter their PP you just
  550. see a single screen. In this way the interface changes would be minimal
  551. to start with but they could develop better interfaces to make data
  552. access more efficient. A statistics service could have a PP where data was
  553. represented as dynamic 3D structures etc.
  554.  
  555. Probably the most useful items within the cybersapce are your AGENTS.
  556. These items exist as packets of messages that together form an entity
  557. that is a type of object. See the comprehensive definition later on for
  558. details. Agents can do whatever you can do, in your place. Some agents
  559. are simply objects that you use (for instance a 'design-an-aspect' agent
  560. may allow you to draw items in 3D (walls, texture, motion etc) and will
  561. then create the ASPECT data for you). It may be an access key tool (eg you
  562. might guy a '10 shot' agent from a database service. When you want to
  563. access that database you instruct the agent as to what you want. The
  564. agent then goes off to the databases PP and gets a high prioirty of
  565. service (because you paid for it!) and also knows how the database works
  566. and so can access the data faster and then mail the data back to you (or
  567. maybe return to you itself with its ASPECT changed to show you the data)
  568. and after the tenth use it doesn't come back. 
  569.  
  570. The last sort of agent is independant. These actually are macro
  571. languages that are executed by the SC and may act as guides
  572. to newcomers or perform tasks within the sector for you (ie like a
  573. servant). They can exist by themselves. You can have an AGENT that
  574. 'lives' in you PP and answers requests to enter from other CLIENTS while
  575. you are tied up somewhere else. Now this brings on all sorts of
  576. possibilities. You could send an AGENT to a conference in your place and
  577. it may respond to text as a human would, to gather data for you. For
  578. this reason and others, there is one strict rule, and that is that the
  579. default ASPECT of agents are a white star made of three perpendicular
  580. axes, no matter what.
  581.  
  582. Another example is to have several agents that travel with you in unison
  583. and which have ASPECTS that fit into yours to make one larger, more
  584. impressive ASPECT.
  585.  
  586. One ASPECT detail that hasn't been mentioned is sound. Obviously a sound
  587. interface would be good (so you can talk to people you meet other than
  588. just sending mail or typing stuf in during a private conference). Sound
  589. would be easy enough to implement into the SEND_MAIL message protocol
  590. (you get mail from someone who is in such and such a direction
  591. therefore the headphones position the sound source accordingly). But I
  592. would like to incorporate it into the ASPECT as well so you could hear
  593. someone comming, even if you were looking in the wrong direction.
  594.  
  595. (Note: Its clear that this system is open to abuse to rogue CLIENTS that send
  596. invalid messages. The buck will have to stop at the SERVER and so this
  597. could end up being a pretty awesome beast as far as functionality goes.)
  598.  
  599.  
  600. DETAILED DESCRIPTIONS NOT COVERED BEFORE
  601.  
  602. (incomplete section)
  603. (note: I covered a bit more detail than planned above, hope it suffices
  604. for now or I'll never send this thing!)
  605. ===================================================================
  606. ===================================================================
  607.         - each CLIENT has an ID derived from their "login" address (eg internet 
  608.         address) and so is unique. Along with ID, each CLIENT has an ASPECT 
  609.         which describes how they appear to other CLIENTS. ASPECT by default 
  610.         is an arrow with a single feather to indicate 3D orientation 
  611.         ASPECT has levels, the one just stated 
  612.         is the default level, 0. The next level is "wire frame" representation 
  613.         that consists of a variable length list of points and vectors. They 
  614.         have variable colour and have a DYNAMIC | STATIC parameter, if DYMNAMIC 
  615.         is TRUE then motion paramters follow (undefined yet). The last parameter
  616.         is EXTENDED. If EXTENDED is TRUE then a further level follows defining 
  617.         solid geometry descriptions, which end with the EXTENDED parameter 
  618.         for future expansion. Things are designed this way so that a simple 
  619.         system (AT with CGA graphics) can select only the minimum display 
  620.         criteria because that's all it can handle. Better machines '486, 
  621.         Silicon Graphics Workstation etc can go for full solid rendering etc. 
  622. ===================================================================
  623. ===================================================================
  624.  
  625. SOFTWARE STATUS
  626.  
  627. The system so far has a CLIENT that connects to the LOCAL SERVER and
  628. allows the user to move around within their own SECTOR, requesting 
  629. information on and displaying PERMASPACE objects that are already in the 
  630. SERVER's object database. This is all in wire frame (easily upgraded to solids,
  631. but it goes too slow on the PC (386SX) for development work).
  632.  
  633. This system works on a PC and on a SUN (X11).
  634.  
  635. The graphics library used is VOGLE, but REND386 is being kept in mind
  636. for PC stuff. An Amiga version is in the works (mainly just requires the
  637. VOGLE driver). (VOGLE is available from most ftp sites I assume, I got
  638. it from the Australian ftp mirror site, archie.au:/graphics/graphics/echidna)
  639.  
  640. The code is in ANSI C. This is ideal stuff for C++ but that would limit
  641. the platforms we could easily port to (and not enough people are
  642. comfortable with it yet).
  643.  
  644. HELP WANTED
  645.  
  646. As you can see, there are many ideas brewing here and so few
  647. implemented. I really hope to have something significant done by the
  648. beta release date later this year ('92) before tasks and improvements
  649. can be farmed out to others. Ideas on modifying the concepts involved
  650. would be wonderful, but programmers with time would be even better. Managing
  651. remote development seems a difficult task. Breaking this into neat
  652. packages isn't really possible at the moment. The only area that could
  653. be done (perhaps) is the graphical operating system stuff for your
  654. local computer. I hope people will disagree with me and show how this
  655. can be done as a joint effort. My time for co-ordination of such an
  656. effort is woefully limited which is why I have perservered with the
  657. programming alone thus far.
  658.  
  659. As I think I mentioned earlier, I want to make this software freely
  660. available with limited source distribution until it looks stable. But
  661. in the long run, the source should be available for everyone to update
  662. and use as they will. My main reasoning for this is to give everyone a
  663. chance to have a working interactive system that they can connect up
  664. together.
  665.  
  666. So far I have received about 30 requests for information/code. This
  667. document will be posted to sci.virtual-worlds and sent to each of the
  668. senders. If after reading this you want to help with programming, then
  669. let me know. Any and all comments (public and email) would be 
  670. greatly appreciated.
  671.  
  672. Cheers
  673.         Michael Snoswell                        June 1st, 1992
  674.         snoswell@sirius.ucs.adelaide.edu.au
  675.  
  676. p.s. okay, so the doco's not complete...(sigh)
  677.  
  678. -- 
  679.  
  680.   Michael Snoswell                         snoswell@sirius.ucs.adelaide.edu.au  
  681.   Vision Systems Limited                   08 343 0462                          
  682.   South Australia                          "Profound quote"                     
  683.  
  684.  
  685.