R & D, Downloads, Source Code

bcchang.com / Research / VR / Downloads

All Downloads

  • B3D 3D Model Format
    Ben's 3D Model Format, a robust 3D file format for using models in the CAVE.
  • Ygdrasil syntax-coloring for Kate
    A syntax-coloring plugin for the Ygdrasil language for the Kate Text Editor. Makes writing Ygdrasil code much easier - colorizes nodes, messages and events; colors nested parentheses in different shades of blue; and highlights possible errors in red.
  • Joystick and GamePad Input Plugins
    The usual controller for the CAVE is the Wand, a high-precision and high-cost interface. In addition to 3D motion, the Wand also has 3 buttons and a type of joystick, often used for navigation control. The JoystickController plugin lets you use a regular USB or analog joystick, gamepad, or other game controller device.
  • Ygdrasil 0.1.11-ats
    The SAIC Art and Technology Studies experimental patches for Ygdrasil 0.1.11. Includes gradient sky, mayaAnimation node, OSCNode, and some other tweaks.

    ygdrasil_0.1.11-ats-1_i386.deb for Ubuntu and other Debian-based Linuxes

    yg_0.1.11-ats.tar.gz Source tarball

Ygdrasil Nodes

Not sure what to do with these? Read these Instructions for Compiling YG Nodes first.
  • webcamTexture

    A node that uses a Firewire or USB (Video4Linux) webcam, and applies it onto textures.
    It only has one message, init (width,height) which tries to connect to a webcam and display it.
    If your webcam can't display the resolution you asked for, it will try 640x480, 320x240, and 160x120.
    This node uses the PortVideo library, a lightweight cross-platform library for capturing video from firewire and usb cameras. PortVideo was developed by Martin Kaltenbrunner (mkalten[at]iua.upf.es) as a part of the reacTIVision framework at the Music Technology Group in Barcelona, Spain.
    For help with getting a USB webcam to work in Linux, see http://mxhaard.free.fr/
    Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/bcchang2/public_html/common/php/functions.php on line 130
    webcamTexture.tar.gz100.62 KbApril 11 2008 06:47:57 PMSource Code for the webcamTexture node
    // example webcamTexture (init(320,240)) { object(file("webcamDisplay.obj")) }
  • mayaAnimation
    reads Maya .anim files, and animates a B3D object.
  • particleSystem
    Can be used to create clouds of particles or particle emitters, with different types of force fields (gravity, wind, etc.)
  • joystickNavigator
    use gamepad and joystick devices for Ygdrasil setups without TrackD
  • betterNodeTrigger
    the nodeTrigger node just responds to nodes based on type (object, wand, etc). Usually, though, you really want to respond to a specific node by name, not by type. betterNodeTrigger lets you specify a node to respond to by name.
  • flightNavigator
    a navigator node that's a little more like a flight simulator
  • OSCNode
    A node for sending messages over Open Sound Control to sound programs and languages.
  • OSCListener
    Listens and responds to OSC messages
  • SCSound
    The SuperCollider Sound node connects YG to SuperCollider for sound spatialization and generative synthesis. It can be used just to play back and spatialize sample files, or to interface with custom synth patches.
  • accelerator
    Math to simulate acceleration and deceleration - doesn't actually move anything, but can be connected to properties of other nodes.
  • spring
    Math to simulate springiness. It is also a Value node, like Accelerator, so you would attach this to another node to make it do something.
  • customText
    One of the most frustrating limitations of OpenGL Performer is the mysterious way in which it handles text, making it unable to display all but a very select set of custom-made fonts. customText is not really a complete solution, but in the meantime it does allow you to load an arbitrary 3D model and treat it as a font.
  • ikHandle
    A very simple 2-bone, single-plane inverse-kinematic chain. Build a hierarchy of a few ikJoints, and attach an ikHandle to the end of the chain. Then move the ikHandle, and the chain will move according to the 2-bone ik solver.
  • ikJoint
    Use with ikHandle
  • grabAndThrow
    lets you pick up objects and throw them.
  • multiplexor
    A utility node that can be used to build state machines and other types of logic structures in YG
  • movieTexture
    maps a Quicktime Movie onto an object. This is a slightly newer version than the one that comes with Ygdrasil; it uses version 2 of OpenQuicktime so it supports more codecs (including Sorenson); also does chromakeying.