Homework descriptions

  1. Static world
  2. Dynamic world with animations
  3. Interactive world with scripting
  4. Virtual world driven by Java applet

Homework 1 - Static world

Create teams and work all around one computer for now:
  1. Enter to Example1.wrl and explore all 3 navigation modes.
  2. Download and edit Example1.wrl (Transform params., Color params., Viewpoints).
  3. Add one more Cylinder using DEF & USE statements.
Example1.wrl
  1. Create your own "E63MUS team Nr. XXX VR page" HTML page with title, name of the authors, team members, etc. Publish it in your public web directory under the name project1.html.
  2. Add the Example1.wrl to the HTML page using EMBED tag and size 640x480 pixels.
  3. Make a test scene (a garden with a simple garage/shed). This scene will be used as a testing environment throughout the whole course. Put this test scene in your HTML page instead of the previous example.

<EMBED src="Example1.wrl" width=256 height=256>
Let all team members start working individually, but synchronously from now:
  1. Create a simple model of a garden/house machine (one machine per one team member).
  2. Put one instance of each machine into a garage, the second instance somewhere in the garden (open air). Define several viewpoints in the scene and arrange them into a virtual tour.
  3. Add at least two textures with limited size (up to 128x128 pixels) to every model.
  4. Make a ZIP of all, but necessary only files and publish it on the HTML page using a hyperlink.
  5. Add a snapshot of your virtual world and place it to your web directory under the name project1.jpg (128x128 pixels).
List of possible garden/house machines:
  • lawn mower
  • sprinkler
  • tractor
  • combine harvester
  • washing machine
  • coffee maker
  • chain saw
  • mixer (blender)
  • ventilator (fan)
  • (microwave) owen
  • ...

Evaluation issues (up to 20 pts):

  • Informative HTML page with embedded VR world
  • Downloadable ZIP of all project files available, preview image available
  • Test scene with at least 2 instances of every machine
  • Named viewpoints (at least 8) organized to a walk-through
  • Usage of DEF and USE statements
  • Usage of at least 2 textures with limited size (up to 128x128 pixels)
  • Beauty of machine models (aesthetic issue)
  • Speed of rendering (at least 25 fps at professor's computer)

Homework 2 - Dynamic world with animations

  1. Redefine the machine as a prototype (PROTO) with parameterized color/texture. Put this PROTO in a standalone file. Place two instances of this prototype in the scene using EXTERNPROTO.
  1. Define a color light source (PointLight/SpotLight) on the top of the machine (inside the machine PROTO) and allow to switch it on, when user approaches the machine (ProximitySensor in the machine PROTO). Set intensity of the light source properly.
  2. Connect a TouchSensor with one part of the machine. Animate such part when avatar clicks on it (TimeSensor, PositionInterpolator/OrientationInterpolator).
  3. (OPTIONAL:
    Choose 2 appropriate sounds (Sound, AudioClip) - one for approaching the model, the other for animation of the individual part. Start playing the sound synchronously with previously defined approaching/animation actions.)
  4. Change color of the machine or its part (ColorInterpolator) during the animation.
  5. Publish the project HTML page under the name project2.html together with a ZIP file of all relevant files.

Evaluation issues (up to 20 pts):


Homework 3 - Interactive world with scripting

  1. Connect a manipulator (SphereSensor, PlaneSensor, or CylinderSensor) with some part of the machine. Allow direct manipulation within specific range of end positions.
  2. Add a new animation (rotation of the whole model) to the machine PROTO. Publish a start event into a PROTO header (exposedField SFTime startRotation).
  1. Create HUD (Head-Up Display) with one button and put it into a main scene. Start all machines to be rotated when clicking on the button.
HUD.wrl
  1. Define a Script for switching on/off the light over the machine, when avatar touches the base part of the machine. Break the previous ROUTE between ProximitySensor and the light source.
  2. Add a slider to the HUD. Then define another Script that transforms the slider position to exposedField SFTime cycleInterval of rotation accessible from machine PROTOs.
  3. Publish the project HTML page under the name project3.html together with a ZIP file of all relevant files.

Evaluation issues (up to 20 pts):


Homework 4 - Virtual world driven by Java applet

  1. Create a Java applet with two buttons: "On" and "Off". Switch color lights on top of all machines using these buttons. The example of Java applet is available on the right side.
  2. To compile Java source code into proper binary class, the recommended command is:
javac -classpath corteai.zip -target 1.1 -source 1.2 yourSourceFile.java
(but it also depends on Java compiler version!)
headlight.html
  1. When user approaches any machine, display its name in a Java applet. Erase that message when user leaves the machine. Let the name is a parameter processed in a machine PROTO.
  2. Add another pair of buttons to the applet allowing to start/stop rotation of the machine which name is currently displayed.
  3. Add nice trees/flowers/something to the garden using Billboards (at least one billboard per team member).
  4. Publish the project HTML page under the name project4.html together with a ZIP file of all relevant files.

Evaluation issues (up to 20 pts):


This page has been updated by Jiri Zara - 11.4.2007