From marc@remarque.berkeley.edu Mon Sep 26 13:39:23 1994
Date: 16 May 1994 08:58:39 GMT
From: Marc DeGroot <marc@remarque.berkeley.edu>
To: sci-virtual-worlds@agate.berkeley.edu
Newsgroups: sci.virtual-worlds
Subject: Meme

Hello, everyone.  After many months of pedal-to-the-metal programming,
I'm truly delighted to announce that Meme is shipping in alpha version.

Before I get into this rather long description of Meme, there is a demo
available for anonymous FTP from remarque.berkeley.edu.  It's in the 
file /pub/marc/memeview.zip.  You will need a 386-or-better running
DOS, with a math coprocessor, at least 8 MB of RAM, and a mouse.  Read
the README file before trying it.

Meme is the Multitasking Extensible Messaging Environment.  It's a threaded
interpretive language and an operating system for developing networked 
multi-user virtual worlds.

Meme is intended to implement a shared virtual universe over a computer 
network.  Meme speaks TCP/IP, so it can be used to implement cyberspace 
on the Internet, or on a LAN for multi-user arcade games.

Each virtual object's behavior is controlled by one or more tasks that
are local to the object.  An object and its tasks can be compiled and saved 
in a dynamically loadable module.  The modules are designed to be 
interoperable, that is, they will run identically on any platform running Meme.

Modules communicate by sending messages to one another.  The message protocol 
supplies commonly used messages, and is open-ended so applications programmers 
can define their own specialized message protocols.

The most striking visual aspect of worlds developed in Meme is their
richness of behavior.  Because Meme is a complete programming language,
object behavior is only limited by the programmer's imagination.

The alpha version of Meme uses RenderWare(tm) for 3-D rendering.  I've been 
developing with RenderWare for over a year now, and I can attest to the fact
that it's everything they say it is.  Meme (through RenderWare) allows
real-time variation of the color, reflectivity, scale, and the positions of
individual vertices of an object.  And yes, you really get up to 50,000
polys per second on a 486/66 with a local bus VGA card.

The language interpreter is extremely efficient.  Object behavior typically
takes five percent of the CPU's time; the rest is used by the rendering
engine.  The language is extensible, which means that the system can be
shaped according to the needs of the programmer.  Extensions can be added
for such things as object-oriented programming and physics simulation.
Such extensions are not simply libraries; they are "wired into" the structure
of the language in a way that adds to its grammar and syntax.  This is 
necessary so programmers have the power they need to explore the 
representation of virtual objects and behavior.

Meme stores objects in a hierarchy, or object tree.  The tree can contain
visible, camera, light, and compound objects.  A compound object is a virtual
object that has been compiled into a module.  Compound objects can be built
from other compound objects.  Meme's object representation is general, and 
will be expanded to include audible and tactile objects.

A programmer can design a set of highly active (or interactive) compound
objects, which can then be chosen with a point-and-click editor and used
to decorate one's home space.

This is the next step in world-building tools.  Multitasking is necessary
to partition behavior by object, and having the command interpreter available
while the world is running is invaluable.  Objects must be interoperable so
they can be shared by computers of disparate types, and they must be
dynamically loadable so they can be easily introduced into and removed from
a virtual scene.

If you'd like more info on Meme, e-mail immersive@kg6kf.ampr.org or
contact: Immersive Systems, Inc., 4487 23rd St. # 2, San Francisco, CA 94114.
Telephone: +1 415 641 VR4U

Meme is a trademark of Immersive Systems, Inc.  RenderWare is a tradmark
of Canon Inc.

-- 
Marc de Groot (KG6KF) San Francisco |    "Software is neither science nor
Internet: marc@kg6kf.ampr.org       |     engineering.  It's really an
UUCP: ..!uunet!hoptoad!noe!marc     |     obscure form of poetry."
Packet radio: KG6KF @ K3MC          |
