Talk:Definitions

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
Line 1: Line 1:
 
We need an overhaul of term definitions in OpenSim before we can clean up the ScenePresence vs. ClientManager mess. Here's a starting point, feel free to revise/append/discuss:
 
We need an overhaul of term definitions in OpenSim before we can clean up the ScenePresence vs. ClientManager mess. Here's a starting point, feel free to revise/append/discuss:
 +
 +
==Definitions==
  
 
===Entity===
 
===Entity===
Line 8: Line 10:
  
 
===Mesh===
 
===Mesh===
Although mesh support was originally introduced as a proof of concept in OpenSim by the realXtend team, there are many different types of mesh representations and file formats. This blanket term refers to any type of entity that stores geometry data instead of procedural instructions to generate geometry. Depending on the implementation, a mesh may or may not implement additional interfaces such as the scripting container interface or LLUDP concepts.
 
 
===Avatar===
 
An avatar is a specially identified entity that acts just like any other entity (takes up space in 3D, provides a physical proxy, etc). In addition to their 3D presence, avatars have many concepts attached to them such as owning inventory, having groups and friends, and belonging to access control lists that grant or deny them permissions throughout the world.
 
 
[Diva] I don't think we should have this concept *at all* in OpenSim. An avatar is an agent with scene presence and, eventually, an appearance. Let's talk about '''agent''' and '''scene presence''' instead. See below for alternative set of definitions.
 
 
===Client===
 
A client is something that connects to the simulation via a network. This may be an end user that has a Second Life(tm) viewer and wants to connect as an avatar, a search engine that wants to connect to the simulator and scrape information, a proxy that is managing hundreds of avatar connections, an external engine that is sending and receiving data to control the simulation, or anything else that needs to establish a connection to the simulator. Clients are distinguished by the protocol they use to communicate, such as a LindenUDP client vs. an MXP client. OpenSim is moving away from the concept of monolithic client interfaces to many smaller client interfaces, so one implementation may implement everything used in the LLUDP protocol while another may only implement chat and IM. These are event driven interfaces. For example, if an entity moves in the scene, any clients that are listening for entity movements will be notified and are responsible for converting the movement event into a network event.
 
 
[Diva] I think the word ''client'' should be replaced by the word ''agent'', because that's what other kinds of servers also use (e.g. web servers). The definition stays exactly as above.
 
 
===Endpoint===
 
Although clients can have very different implementations, one requirement is that each client can be identified by a single remote endpoint (IPEndPoint). This allows indexing and generic operations across clients regardless of their implementation.
 
 
===Viewer===
 
The viewer concept plays a very minor role in the OpenSim architecture. Some client implementations may use the concept of viewer software that is responsible for the client-side of the networking, but viewers do not exist outside of individual client implementations. For example, the LindenUDP implementation may choose to define a viewer concept and the MXP implementation may also choose to define its own viewer concept, but a remote scripting engine client implementation would have no such concept.
 
 
===Presence===
 
HELP: What is a presence? I can't think of a good definition. Entities are 3D simulated concepts, avatars have all of the avatar-specific concepts, clients process network events, presence seems to be a hack to merge all of these together. Should we try to remove the concept of a presence altogether? This needs more thought.
 
 
==Alternative Definitions (Diva)==
 
 
===Entity (as above)===
 
An entity in OpenSim is "something that exists in the 3D simulation". It has a position in the world, a rotation, velocity, etc. It is responsible for providing a physical proxy that can be handed off to a physics engine. It might break every rule and be invisible, static, and have no physical proxy but it must still implement all of these concepts.
 
 
===Prim (as above)===
 
A prim is one type of entity that is very common in OpenSim. It has roots in the Second Life(tm) world, and is a procedurally generated basic shape that has an efficient network representation. It implements the basic concepts required to be an entity, plus many additional concepts that are specific to the LLUDP protocol. It also implements some extra generic concepts in OpenSim, such as acting as a script container.
 
 
===Mesh (as above)===
 
 
Although mesh support was originally introduced as a proof of concept in OpenSim by the realXtend team, there are many different types of mesh representations and file formats. This blanket term refers to any type of entity that stores geometry data instead of procedural instructions to generate geometry. Depending on the implementation, a mesh may or may not implement additional interfaces such as the scripting container interface or LLUDP concepts.
 
Although mesh support was originally introduced as a proof of concept in OpenSim by the realXtend team, there are many different types of mesh representations and file formats. This blanket term refers to any type of entity that stores geometry data instead of procedural instructions to generate geometry. Depending on the implementation, a mesh may or may not implement additional interfaces such as the scripting container interface or LLUDP concepts.
  

Latest revision as of 14:42, 15 October 2009

We need an overhaul of term definitions in OpenSim before we can clean up the ScenePresence vs. ClientManager mess. Here's a starting point, feel free to revise/append/discuss:

Contents

[edit] Definitions

[edit] Entity

An entity in OpenSim is "something that exists in the 3D simulation". It has a position in the world, a rotation, velocity, etc. It is responsible for providing a physical proxy that can be handed off to a physics engine. It might break every rule and be invisible, static, and have no physical proxy but it must still implement all of these concepts.

[edit] Prim

A prim is one type of entity that is very common in OpenSim. It has roots in the Second Life(tm) world, and is a procedurally generated basic shape that has an efficient network representation. It implements the basic concepts required to be an entity, plus many additional concepts that are specific to the LLUDP protocol. It also implements some extra generic concepts in OpenSim, such as acting as a script container.

[edit] Mesh

Although mesh support was originally introduced as a proof of concept in OpenSim by the realXtend team, there are many different types of mesh representations and file formats. This blanket term refers to any type of entity that stores geometry data instead of procedural instructions to generate geometry. Depending on the implementation, a mesh may or may not implement additional interfaces such as the scripting container interface or LLUDP concepts.

[edit] Scene Presence

A scene presence is another type of entity (sibling of prim and mesh) that represents a [mostly anthropomorphic] character. Scene presences interact with scenes and their entities by subscribing to and raising events. Given the foundations in the LL system, the collection of interaction events pertaining to scene presences is very large. We would want to divide this collection in smaller sub-sets that specific implementations of scene presences may choose to implement.

(Note: I can tolerate calling scene presences "avatars", even though I don't like the word avatar. We can pick one in the code, but use the two terms "scene presence" and "avatar" interchangeably)

[edit] Agent

An agent is OpenSim's internal representation of a client that connects to the simulation via a network. This may be an end user that has a Second Life(tm) viewer and wants to connect, a search engine that wants to connect to the simulator and scrape information, a proxy that is managing hundreds of connections, an external engine that is sending and receiving data to control the simulation, or anything else that needs to establish a connection to the simulator. Agents are distinguished by the protocol they use to communicate, such as a LindenUDP client vs. an MXP client.

[edit] Client

Any external program that connects to OpenSim servers via a network. It's not part of OpenSim.

[edit] User

A person that uses a client program to connect to OpenSim servers. Users may have accounts, and may have storage provided by OpenSim-related services. Or they may not. User accounts and storage may be available to users by means other than the client that they use to connect to OpenSim worlds. For example, an inventory service provider may serve inventory manipulation over a regular web browser. Etc.

[edit] Relations between these concepts

  • The "normal" chain: a user uses the LL client program to connect to an OpenSim server; inside OpenSim, this connection is represented by an agent which is associated with a scene presence/avatar; the agent acts on behalf of the user in order for the OpenSim server to access the user's services.
  • An agent may or may not be associated with a scene presence. Some agents may simply not have scene presences at all (e.g. a search engine http bot, or even sophisticated agents that send back graphical information but are "invisible").
  • A Scene Presence may or may not be associated with an agent. Some scene presences may simply not have agents behind them at all (e.g. server-side characters).
  • As a consequence, we can also have the following chain: a user uses XPTO client to connect to an OpenSim server; inside OpenSim this connection is represented by an XPTO agent which does not associate with any scene presence/avatar; using this XPTO client, the user does not need to provide an identification, so the user is effectively browsing the world invisibly and anonymously. Some OpenSim worlds may allow these agents, while others may not.
Personal tools
General
About This Wiki