User Interfaces Spring '07

Projects

Assignment 1


My first applet. I call it

N Lightnment.



Use the gray ball in the applet to push the wire piece around. The colour of the ball toggles between gray and black every time it touches the piece of wire. Notice that the ball once clicked , gets dragged around even when the pointer moves away from the ball. It remains associated with the pointer until the button is released.

Code

Assignment 2:



Code


Assignment 3:



Requirements:
1. > Virtual Reality Room: A room with all walls, the ceiling and the floor replaced (meaning mounted) with equally large high-resolution touch sensitive Plasma screens. We would have a tough glass layer above the floor screen. I mean to say that when you enter the room and look around anywhere, all you should see is what the screens are displaying. The room should have motion-sensing cameras to be able to track the movement of limbs of the person in the room.
2. > Surround Robot: Its a robot shaped like a standing cylinder that can move around and its movement can be controlled wirelessly. On its outside is a curved plasma screen wrapped around it and also embedded cameras to be able to capture a 360 degrees view around it. It should also have speakers to emit sound and microphones to capture sounds. The robot should be able to transmit back high quality live video and audio. The robot should have temperature and wind sensors. 
3. > Wearable User Interface: It is a glove with finger and wrist movement detection. It is made of a fabric with electric pulse detection and movement detection sensors.
4. > Temperature Control and Air conditioning System: This is to be able to reproduce climatic conditions, of some remote place, inside the room. The room should also have a big fan to simulate wind.

Applications:
Sights and Experience: Missing home or a place where you used to be before ? Send Surround Robot to that place. At the client site in the room display the live video and audio to give the user an experience of being at that place.
Example: You are away from home and missing a family gathering. The surround robot is present at the party as your substitute i.e., meaning the robot at the gathering emits your video and voice captured from the room. Your family, at least partially, feels your presence there. Your room displays the live video and audio giving you a feeling of actually being present at some place. Another feature to have is a treadmill to have person walking and hence causing the robot to move, giving the person a feeling that he is actually walking around at the remoter location where the robot is. The direction towards which the person is oriented should be used to orient the treadmill so that the person can then walk in whichever direction he/she wants, effectively still being in the same place but still seeing things move around him/her. Also the surround-bot can send feedback about structure of the ground where it is. This inturn can be simulated at the VR room using some mechanism below the treadmill to give the user a feeling that he might be walking up/down a slope or he/she is tilted on any side while walking. The surround-bot also sends feedback of the temperature and wind conditions , to be able to simulate the same at the VR soom.
Gaming:
Example- Basketball game, where the screen shows opponents and you have to dodge them. You start playing with an actual basketball. Based on the pressure sensors in your hand glove, the way you dribble the ball, your body's posture and speed of movement the system decides whether you managed to dodge that player or not.
Learning to dance:
The user can be taught a particular type of dance and how to do that dance with a specific partner. If the user is going to prom with a partner for the first time then by briefly describing that person (may be using pictures/video captures to assist ) , the application can teach the user how to dance keeping in mind the description of physical features of the partner and his/her likes or dislikes. The motion sensing cameras track the limb movement of the user and a human-like voice keeps on correcting the user by guiding him/her.
The infra-structure used here can be used to extend may more applications like :
War-Safety: Give the surround-bot arms and give humans controls in the VR room. There you have it: It would act like a substitute for a soldier in the battlefield and give the soldier in the VR room a more realistic idea of the place to make a more precise judgement in given situations.

Assignment 4:



1.>> Reusability using Lookup:
After drawing an item, keeping the pointer on the item and press any of the keys F1-F9 in order to save that item in position 1 to 9 respectively. Retrieve the objects using the keys 1-9 and a copy of the corresponding saved item appears on the screen.
Pressing the keys F1-F9 overwrites anything that was previously saved at that position.
Even after the you clear the screen using 'Esc' the lookup still retains the items that you saved in order to allow reuse.
2.>> Extending an item:
Select any existing item , move your mouse a little away from it and hit 'a' in order to add a line from the last point in the item to the current curser position.

Draw3.java Draw5.java Draw11.java

Assignment 5:


The program provides an authoring and rendering mode for different personalities of a single flower. It starts by default in the authoring mode, where we can define that depending on the proximity of a person and positioning of a person what should the colour of the plant, the height of the plant and the orientation of the plant be(how much should it turn). To switch between the authoring and the rendering mode press 's'. To switch the personality of the plant press 'p'. While authoring: To switch between the different proximity circles press the up and down arrow keys. To switch between the different quarters of the proximity circles press keys 1-4. Press keys +/- to increase decrease height of the plant. Press the left and right arrow keys to move the plant anti-clockwise and clockwise respectively. Press keys 'r' 'g' or 'b' to get colours red, green and blue respectively. After authoring the reactions of the plant, when you switch to the rendering mode, the plant reacts to the mouse pointer being in different positions as decided in the authoring mode.

idea.java Movement.java