======T-626-VIEN and T-723-VIEN, Virtual Environments, Spring 2007====== This is last year's course. For updated information on the course, check out [[public:t-vien-08-1:main|The 2008 Virtual Environements Wiki]]. For a quick review of student work in 2007, scroll down to the bottom of this page. ===== Basic Info ===== * **Instructor: ** [[http://www.ru.is/kennarar/hannes|Hannes Högni Vilhjálmsson]] * **Contact: ** Office at Kringlan 1, 559-6323, hannes@ * **Classes When: ** Tuesdays 10:05-11:40 (Lectures) and Fridays 8:15-9:50 (Labs) * **Classes Where: ** Kringlan 1, Room K22 ===== Description ===== This is a comprehensive course in both the theory and practice of Virtual Environments (VEs). Virtual Environments are simulations that engage the senses of users through real-time 3D graphics, audio and interaction to create an experience of presence within an artificial world. VEs are used in a variety of settings, including training, education, health, online collaboration, scientific visualization and entertainment. Their use is becoming more and more pervasive as hardware gets more capable of simulating reality in real-time (including graphics, physics and intelligent behavior). As part of the theoretical overview, the course will introduce the history of VEs, what kind of problems VEs have proven to be best at addressing, what are their shown limitations, what models of human-computer interaction apply to VEs and how these models are evolving and pushing the state-of-the-art in interactivity. The technical portion of the course will lead students through the construction and population of VEs in a very hands-on manner, covering topics such as world representation, real-time graphics and simulation issues, networked environments, avatars and interactive characters, event scripting and AI control, special real-time visual and aural effects and intuitive user interfaces. ===== Goals ===== On completion of the course students should: * On the theoretical side, acquire understanding of the benefits and limitations of VEs in a historical context, and be able to develop new VE based solutions that incorporate well structured interaction models. * On the technical side, learn to construct interactive VEs using a range of state-of-the-art technologies and tools. ===== Coursework Overview ===== During the semester, students should complete two programming assignments and a final programming project. These are all group projects. Students discuss final project ideas with instructor in week 5, present a proposal to the class in week 7, demonstrate final project in week 11 and turn in a final project report in week 12. In addition, student participation in online discussion and lab exercises counts towards the final grade. Everything that has to be turned in, should arrive no later than at 23:59 on the due date, or else incur 10% penalty for each additional day, including weekends and holidays. ===== Assignments ===== ^Assignment^Code^Description^Material^Assigned^Due^Weight^ |[[Program 1]]|PROG1|First Programming Assignment| Weeks 1-3|Fri Jan 19|Fri Feb 02|5%| |[[Program 2]]|PROG2|Second Programming Assignment| Weeks 1-5|Fri Feb 06|Sun Feb 18|5%| |[[Final Project|Proposal]]|FP-PROP|Presentation of Final Project Proposal| All | - |Fri Feb 23|5%| |[[Final Project]]|FP|Final Programming Project with Demo| All | - |Mar 23 / Mar 27|30%| |[[Final Report]]|FP-REP|Written Final Project Report| All | FP |Mon Apr 2|5%| ^ Total 50% ^^^^^^^ ===== Discussion Questions ===== After every lecture, the instructor will post a discussion question on an online forum and the students will be required to contribute to the discussion of that topic until the following lecture. The discussion takes place on an external forum page at the following address. Note that the students have to register on this forum to post their replies (simply go to the address below to register). ===== Schedule ===== ^Week^Lecture Topic (Tuesdays)^Lab Topic (Fridays)^Due^ | **Context** |||| | 1 (08.01) |- {{:public:t-vien-07-1:ve-introduction.pdf|Introduction to the class}}\\ - {{:public:t-vien-07-1:ve-illusion.pdf|The illusion of reality}}|- Introduction to Python\\ - Introduction to Panda3D\\ - [[ Lab 1 Materials ]] | | | 2 (15.01) |- {{:public:t-vien-07-1:ve-history.pdf|The history of VEs}}\\ - {{:public:t-vien-07-1:ve-applications.pdf|Current applications of VEs}}|- The Scene Graph\\ - Light, geometry and materials\\ - [[ Lab 2 Materials ]]| | | **Immersion** |||| | 3 (22.01) |- {{public:t-vien-07-1:ve-presence.pdf|Presence and Immersion}}|- The global environment\\ - Localized Sound\\ - [[ Lab 3 Materials ]]| | | 4 (29.01) |- {{public:t-vien-07-1:ve-action.pdf|Action}}\\ - {{public:t-vien-07-1:tomlinson_etal_2000.pdf|Cinematography (paper)}}|- Events and collision \\ - Movement\\ - [[Lab 4 Materials]] |PROG1 (5%)| | **Interaction** |||| | 5 (05.02) |- {{public:t-vien-07-1:ve-actors.pdf|Actors and interaction}}|- Actors\\ - Finite State Machines\\ - [[Lab 5 Materials]] |FP-IDEA| | 6 (12.02) |- {{public:t-vien-07-1:ve-avatars.pdf|Avatars and levels of control}}\\ - {{public:t-vien-07-1:icec2004.pdf|Avatars for online games (paper)}} |- User interface and HUD\\ - Avatars \\ - [[Lab 6 Materials]]|PROG2 (5%)| | **Special Topics and Projects** |||| | 7 (19.02) |- {{public:t-vien-07-1:ve-realism.pdf|Shaders and Visual Realism}}|- Student presentations of.. \\ - ..Final Project Proposals|FP-PROP (5%)| | 8 (26.02) |- {{public:t-vien-07-1:ve-animation.pdf|Character Animation}}\\ - {{http://doi.acm.org/10.1145/37401.37407|Principles of Animation (paper)}}|- Character animation\\ - [[Lab 8 Materials]] | | | 9 (05.03) |- {{public:t-vien-07-1:ve-scale.pdf|Scaling up}}\\ - [[http://www.drizzle.com/~scottb/gdc/|Continuous World of Dungeon Siege]]|- Writing a shader\\ - [[Lab 9 Materials]] | | | 10 (12.03) |- Networking (on MySchool)\\ - Guest speaker: Davíð Brandt |- Work on Final Project| | | 11 (19.03) |- {{public:t-vien-07-1:ve-interfaces.pdf|Alternative input/output devices}}|- Student project demos|FP (30%)| | 12 (26.03) |- Student project demos|- [[Final Oral Exam]]|FP-REP (5%)| ^ ^^^^ =====Grading===== ^Part of Course^Total Weight^ |Discussion Questions and Lab Participation| 10%| |Programming Assignments (x2)| 10%| |Final Project Proposal| 5%| |Final Programming Project| 30%| |Final Project Report| 5%| |[[Final Oral Exam]]| 40%| ^ Total 100% ^^ ====== Student Work Snapshots ====== ^ Second Assignment: An interaction with a character ^^ |{{public:t-vien-07-1:a2_freyr_gudny.png|}}\\ **Freyr, Guðný:** Save Eve and escape the island! | {{public:t-vien-07-1:a2_palmi_pall.png|}}\\ **Pálmi, Páll:** Little red and the wolf, with a twist| |{{public:t-vien-07-1:a2_aevar_kristleifur_vignir.png|}}\\ **Ævar, Kristleifur, Vignir:** Musical puzzle under pressure |{{public:t-vien-07-1:a2_andri_agust.png|}}\\ **Andri, Ágúst:** The classic quest | |{{public:t-vien-07-1:a2_arni_halldor.png|}}\\ **Árni, Halldór:** Chased by drones in a nightmare future|{{public:t-vien-07-1:a2_claudio.png|}}\\ **Claudio:** Escape from your own bizzarre dream | |{{public:t-vien-07-1:a2_valdis.png|}}\\ **Valdís:** Help the white wizards | ^ Final Project: Independent ^^ |{{public:t-vien-07-1:final_claudio.png|}}\\ **Claudio:** Generation and optimized rendering of trees | {{public:t-vien-07-1:final_arni_halldor.png|}}\\ **Árni, Halldór:** Defending earth in a 3D Space Invaders game | | {{public:t-vien-07-1:final_kristleifur_aevar.png|}}\\ **Kristleifur, Ævar:** Make music in a 3D world |{{public:t-vien-07-1:final_andri_agust.png|}}\\ **Andri, Ágúst:** Interactive printed circuit board viewer | |{{public:t-vien-07-1:final_gudny_valdis_1.png|}}\\ **Valdís:** MathMania I - Play with numbers | {{public:t-vien-07-1:final_gudny_valdis_2.png|}}\\ **Guðný:** MathMania II - Number quiz with tutor feedback | | {{public:t-vien-07-1:final_pall_palmi.png|}}\\ **Pálmi, Páll:** Networked virtual CADIA |