Difference between revisions of "Mugic/protocol"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Syntax)
(Syntax)
Line 32: Line 32:
 
Red green blue alpha
 
Red green blue alpha
  
Gradient { circular,linear }
+
Gradient { circular,linear,exp}
  
 
Red2 green2 blue2 alpha2
 
Red2 green2 blue2 alpha2
  
 
(for linear gradient). gx gy gz
 
(for linear gradient). gx gy gz
 +
 +
Rotate
  
 
== Variables ==
 
== Variables ==

Revision as of 20:45, 5 November 2012

Contents

Overview

MUGIC defines a protocol for a standard display-independent client/server model for the generation, control, and management of graphics rendering within a multi-user environment. The first implementation for the CalVR system used on the state-of-the-art visualisation technologies developed at Calit2. This protocol will provide ease of access and an integrated development environment for research, education, performance, interaction, and presentations. It will provide an easily accessible format for integration of real-time programming softwares (e.g., Touch Designer, Pure Data, Max/MSP, Quartz, Processing, etc.) which in turn will facilitate the incorporation of state-of-the-art gesture control and algorithmic/generative processes for control of graphics on multiple displays. The protocol will also provide multi-user management and access support, as well as real-time telematic connection between multiple servers materializing an enormous potential for development of multi-site virtual reality game and performance productions.


-Server listens to both tcp and udp -UDP and TCP streams will work in conjunction and in collaboration with each other -UDP commands have a 1400 byte limit (or whatever the lower limit is of the client and server MAClayer)


User management every tcp connection has a ttl after the ttl time, the scene associated with user will be deleted

Object managment every object has an owner object can be a collection of objects

Syntax

cmd name [parameter={value,`expr`} ...]

expr is a c-style expression

Parameters

cx cy cz

Red green blue alpha

Gradient { circular,linear,exp}

Red2 green2 blue2 alpha2

(for linear gradient). gx gy gz

Rotate

Variables

var name type={float,array} {value,`expr`}

variables can be used in expressions

variables of other users can also be accessed as user:variable

parameters of objects can be accessed as variables ObjectName:parameter

the value of a parameter of an object of another user is accessed as

User:ObjectName:parameter

Connections

connect <username>

User Management and Preferences

pref [cmd] [parameter=value]


Simple Objects

parameters
cx, cy, cz - center of an object
red,green, blue, alpa = color of object
ered

point

point name [parameter={value,`expr`} ...]

Parameters
cx cy cz red green blue alpha

triangle

quads

circle

pyramid

cube

elipse

sphere

cylinder

group

group name [names ... ]

Examples

var center=10 point name=x1 cx=`center*2`

Next Phase

move dur=

delete dur=

scale

rotate

sheer

copy name= src= link name= src= transformation=

Camera Management

Lighting Management


Quad ID=X p1=0,0 p2=1,0 p3=1,1 P4=0,0 link ID=A src=X scale id=A factor=0.2 move ID= dx=.1 dy=.5 group iD=C A,B