Home | About | Contact
 
Project Fundamentals: YGdrasil
Computing:YG

YGDRASIL is a scripting language developed at UIC by Dave Pape several years ago for programming virtual environments. It is used in addition,or as an alternative, to programming in OpenGL. Alex Hill has continued to make progress on the development and refinement of the scripting language. He has set up a documentation site located at http://www.evl.uic.edu/yg/.

Construct a scene graph that loads models and script interactivity. Your scene graph might resemble the following:

//set up wand trigger to toggle icons on and off
#ifndef _HAZEL_INTERFACE_
node(User0.teleport(1523 610 0)+1)
#endif
#include "hazelInterface.scene"
//set up wand trigger to toggle icons on and off
wandTrigger(when(buttonUp1,opp17mySlider.drop),
when(button2,opp17iconSwitchA.toggle,opp17iconSwitchB.toggle))
//create a value node to increment the object orientation
value opp17objectRotate(integer,delta(90),
when(changed,opp17movedObjectB.orientation(0 0 $value)))

transform(position(1523 626 3))
{
//create a primary model
switch opp17objectSwitchA(on)
{
object (file(32and31.pfb))
switch opp17iconSwitchA(off)
{
pointAtTrigger(when(start,opp17icon1OnSwitchA.off,opp17icon1OffSwitchA.on),
when(stop,opp17icon1OffSwitchA.off,opp17icon1OnSwitchA.on),
when(button1,opp17objectSwitchA.off+0.1,opp17objectSwitchB.on+0.1))
{
transform (position(20 -30 2))
{
group opp17icon1GroupA()
{
switch opp17icon1OffSwitchA(on)
{
object (file(initmodelsselected.pfb))
}
switch opp17icon1OnSwitchA(off)
{
object (file(initmodels.pfb))
}
}
}
transform (position(45 30 35),size(10 10 1))
{
reference(node(opp17icon1GroupA))
}
}
}
}
}

Don't worry, you will learn how to make sense of this in the AD 408 Advanced class.

 

 

 

Computer Graphics & Urban Planning
  What is Virtual Reality?
  What is a CAVE and why use it?
  VR & the Web
  Current & Future state of VR
   
Overview of Classes & Program
  Who to contact to get permission to use the EVL
  How to get email, keys, and card access
  Setting up user name, pass, Accessing your directory locally & remotely
  Newspace versus EVL computers
  Overview of classes
   
Project Fundamentals
  Unix & Linux
  YGdrasil
  Ongoing projects
  Starting your own project
  Taking photographs for textures