The information on this page is preliminary and subject to change: consider it a beta version. Please report bugs and changes you'd like to see before the final release.

Massively Multiuser Virtual Worlds
and 3D Interactive Environments

proposed course syllabus

Instructor: Mitja Hmeljak,
Lectures and Labs: Time and place to be announced.
Office Hours: Time and place to be announced.
Course ...
Exams and Grades
Weekly Schedule

Sample Topics
Course Description   This course deals with synthetic worlds or virtual environments.
  • Hands-on approach to learning about interactive 3D graphic worlds, their design, implementation and deployment.
  • Practical coursework at dynamic scene-graph(*) level.
  • Analysis of existing works of high production quality.
  • Scripting/authoring/programming techniques for 3D environments.
We will begin with an overview of the wide range of approaches to VR and 3D audio-visuals: from scene scripting to CG programming, from 3D modeling to sound authoring.

Students will learn scene-graph concepts, VR design, authoring and scripting for developing interactive applications with graphics and sound, using a well-established engine. Those with advanced programming experience will delve further into code and implement specific interactions, graphic rendering and algorithms useful in VR simulations.

This course is also related to core computer graphics programming, 2D/game design, and 3D art and modeling classes. Students in any of those classes will benefit in taking this course either before, during the same semester or afterwards. These are not prerequisites: on 3D, Computer Graphics and VR topics, the 3D Interactive Environments course functions as self-contained.

(*) the scene-graph concept is central to this course. One possible introduction is the online paper Scenegraphs: past, present and future.
Course Requirements
  • Prerequisites: one/two semester of computer fundamentals and programming, or equivalent experience.
  • Textbook: R.Bartle: Designing Virtual Worlds, New Riders 2003.
  • Suggested reference books: see Readings.
  • Attendance and coursework: see Exams and Grades.
Course Objectives   By the end of this course, students should be able to:
  • Identify major concepts, terminology and applications in 3D/VR environments.
  • Understand fundamental 3D scene-graph design techniques.
  • Apply existing knowledge in other fields (e.g. graphic modeling, user interface design, music composition, programming...) to 3D environment production.
  • Be familiar with different parts of 3D environment production to be able to meaningfully interact in group projects.
  • Apply learned skills and knowledge of scene-graph design, software and interaction techniques to design, implement and showcase a complete, non-trivial 3D/VR environment.
Readings   Reading and reference materials include reference books, papers and online publications. Students will be handed reading material at regular intervals throughout the semester.
The following list represents a sample:
Labs   For all labs, practical assignments and final project we'll be using Second Life both as multi-user networked VR engine and for multimedia hosting.
Second Life is cross-platform, and the client is freely available for Linux, Mac OS X and MS Windows.
For the second class and lab each week, we'll meet in an STC lab on campus. Using your own personal laptop computer for labs and homework is allowed, but not required.
Course Structure   Each week, there will be one lecture class on Tuesday at 11:15AM, and one studio-type class split in two parts: an instructor-led lab on Thursday at 11:15AM, and an (optional but highly recommended) instructor-assisted lab on Thursday at 5:45PM. The lecture will present each week's topics. To proficiently participate in classroom discussions, there will be weekly reading assignments, to be completed before the lecture.

Production examples will be analyzed in class: multi-user networked 3D and its use for telecollaborative activities, VR cinematography (from milestone tools as Virtual Director to modern Machinima), interactive 3D art installations, high-end virtual telepresence, etc. Students will examine different scopes, goals and design choices involved in creating such different 3D environments. Reading and summary assignments will be given to evaluate each student's progress in this aspect of the course.

Groups of about 3 students will form to work on a final project to be showcased by the end of the semester. All groups will be using Second Life as VR engine. For this project, students will coordinate separate parts of 3D environment construction and design (since such projects are in practice rarely the product of isolated individual work...). Previous personal knowledge in related areas will motivate the choice of group members, the goal being a homogeneous level of diversity in each group. Each group will meet regularly with the instructor and submit milestone reports. Project group work will begin shortly before the midterm exam, and continue through the second half of the semester.

Brief, focused hands-on assignments will be given during the first half of the course timeline, to build practical skills necessary for the final project.

We will be using Oncourse, so students are expected to check there often for updates, handouts, assignments, etc.
Exams and Grades
  • Final Project: 30%
  • Final Exam: 20%
  • Midterm: 20%
  • Practical assignments: 10%
    • Initial exercises to acquire practical skills necessary for the final project.
  • Readings and summary assignments: 10%
    • These will form the basis for successful critical essay-based midterm and final exams.
  • Participation: 10%
    • Class (active!) presence, participation and journal note-taking is required and graded.
      Instructor-assisted lab presence on Thursday afternoon is not required and therefore not graded, but highly recommended.
Late assignments, plagiarism, cheating et al.: please check Course Policies.
Weekly Schedule   Details to be announced.
Sample Topics
  • Virtual Worlds: how to make them
    • design, coding/scripting, modeling, sound authoring
    • development phases
    • system architecture, hardware expandability and environment extensibility
  • Models vs. Scripts
    • what are the building blocks of a 3D environment?
    • using, re-using and constructing 3D models from object libraries
    • scripting interactivity in models and environments
    • scripting and tracking user/avatar behavior
  • User interface and input controls for VR and 3D environments
    • 2D input devices (joystick, mouse, tablet, ...) and their use in 3D virtual worlds
    • >=3D devices (spaceball, wand, gyro-mouse, ...) and limiting use of N-degree controls
    • constrained degrees of freedom in input controls, constrained navigation
    • less conventional inputs: audio, video, haptics, force-feedback, sonified feedback, ...
  • Scene-graph concepts
    • 3D scene elements, groupings, property hierarchy trees, BSP
    • examples of scene-graph file formats and standards (from VRML to Quake III formats)
    • adding dynamics and behavior to static scene graphs
    • message-passing paradigms, etc.
  • Physics in 3D environments
    • defining and simulating physical properties
    • simplified physics in VR engines
    • implementing your own rules and equations
Course Policies
  • Attendance: students are expected to attend every class and take notes. Web pages accompanying lectures will follow, but they are not to be considered 1-to-1 transcripts of what is covered in the lectures, more an outline to aid students in organizing course material.
  • Late assignments: homework and other assignments will lose 33.3% of their points for each day they're late (three days late, and they're worth 0 points...)
  • Group work: for the final group project, grades among team members may vary according the the amount and quality of contribution to the group project. Written weekly homework and exercises are to be done individually - no group solutions or cooperative work. You can discuss assignments with other students, but you have to implement all the solutions separately, and acknowledge any other student involved in the discussion. While you may ask questions on oncourse, do not post sample code, scripts, or solutions to problems.
  • Withdrawal: the last day to drop a course with an automatic W grade is March 07 2007. A student is allowed to withdraw from a course after that date only with the dean's permission, e.g. for urgent reasons related to extended illness or equivalent distress.
  • Incomplete Grade: incomplete I final grades will be given only by prior arrangement and in exceptional circumstances conforming to university and departmental policies. These require, among other things, that the student must have completed the bulk of the work required for the course with a passing grade and that the remaining work can be made up within 30 days after the end of the semester. (trust me, you don't want an I grade)
  • Religious Observation: In accordance with the Office of the Dean of Faculties, any student who wishes to receive an excused absence from class must submit a request form available from the Dean of Faculties for each absent day. This form must be presented to the course professor by the end of the second week of the semester. A separate form must be submitted for each day. The form must be signed by the instructor, a copy retained by instructor, and original returned to the student (information and forms about the policy on religious observation).
  • Academic Integrity: all students are required to know and follow departmental and IU policies on academic integrity. These policies will be followed if necessary.
First draft: 2006.02.28
Last updated: 2007.01.06
W3C HTML Validation Service