| Lecture times | TR, 10:30-12:00 LD004 |
| Lab times | TR, 12:30 - 2:00 SL 116 |
| Instructors | Andy Harris |
Unit Topic Pages in Ames 1 Shapes and colors 11-35, 161-170 2 Transformations 63-108 3 Text and Extrusions 39-60, 251-274 4 Sets of points, lines, and faces 209-240 5 Texture mapping 297-330 6 Encapsulation 603-622 7 User interaction with sensors 135-159 8 Timers and animation 109-134 9 Lighting and sound 407-435, 461-470, 471-496 10 Elevation and LOD 11 Scripting 571-602 12 Final Project
Date Occasion Aug 22 Classes Begin Nov 21-26 Thanksgiving Recess Dec 6 Classes end Aug 6 Classes End
This class is intended for people who are extremely comfortable with HTML and the basic concepts of web page design. We expect that students enrolled in this course are already familiar with UNIX, the basic internet protocols (especially FTP and TELNET) and can use a text editor to build a web page including frames, forms, tables, and imagemaps. CSCI N241 or equivalent is expected
A huge amount of programming and math experience is not needed, but you will need a little bit of each. One section will require some knowledge of javascript and/or java. You might want to review some basic geometry concepts such as cartesian coordinates and the use of radians. Math M118 (Finite math) or equivalent is expected.
If you are not sure that your basic web skills are up to this standard, you might consider taking the web design class first. See your instructor if you have questions about this.
The purpose of this course is twofold:Specifically, we will look at the Virtual Reality Markup Language (VRML) as an example of a 3 dimensional modelling environment. We will build several models using this language. We will cover the use of common primitive shapes as well as more complex forms such as extrusions and elevations. We will also examine transformation of shapes, including translation, rotation, and scaling. We will examine the use of textures, light, and sound to enhance the immersive effect, and we will look at the animation of worlds in real time through user interactive sensors, timed animations, and customized scripts. We wil also examine a typical VRML tool (Cosmo builder on the SGI) as well as looking at how VR looks in a number of environments.
- Learn about how computers model the 3D environment
- Apply this knowledge in a specialized package and on ordinary PCs
Students will have the opportunity to work on typical PCs, Silicon Graphics O2 workstations, and the Immersadesk Visualization facility. It is rare for non-majors to have access to such cutting-edge equipment.
There is no required text per se, although some kind of ancillary materails are certainly in order. Most of the class, we will use a custom work being produced by the instructor. Notes and examples are available at class web site at http://www.cs.iupui.edu/~aharris/vrml/. It is the student's responsibility to check this page periodically and read any of the materials posted there. These materials were designed to be read online, so you should take the time to go and play. There are plenty of examples for you to experiment with as you read.
Part of being a programmer is building up your library of reference materials. We expect you to purchase at least two reference books for your use during the semester and beyond. The exact books you choose are up to you, although we recommend the following:Both of these can be purchased online at Amazon.com or Barnes & Noble online, often more cheaply than at conventional bookstores. We will not be heavily focusing on syntax, as we expect you to be able to look up syntax yourself. We are much more focused on the stylistic and strategic issues that books rarely cover well. You must have a good book or two to help you through syntax issues.
- VRML 2.0 Sourcebook, Ames, Nadeau, and Moreland, Wiley, 1997
- The Annotated VRML97 Reference Manual, Carey and Bell, Addison-Wesley Longman (also available online at http://www.wasabisoft.com/Book/Book.html
You may of course use online reference materials, but in our experience, you really need paper as well.
Students will generate a number of assignments on a web site hosted on the departmental server (cs.iupui.edu). Programming is a skill that can only be learned by practice, so we will practice a lot. There will be roughly one assignment per week. If you fall behind in the assignments, you will not succeed in the class. It's that simple. In addition to these weekly assignments, there will be a larger integrative assignment at the midterm, and a final project which is intended to tie everything together.
While we will give some lab time, you will probably want to spend time outside of class working on your projects. You should plan on some outside time, especially as the final project draws near. You can do class work on any machine that has some kind of internet capability. Of course, if your projects become large and complex, you will have a lot of problems working on a slower machine. 3D environments get big fast, and the faster, better processor you have, the better.
The final grade will be based upon the following breakdown:
- Midterm exam - 20%
- Final exam - 20%
- Final project - 20%
- Lab assignments - 40%
Lab assignments will be worth 10 points apiece and shall be due one week from the day on which they were assigned. All late assignments will be assessed a 20% penalty. It should be noted that if the instructor is unable to view a file (due to a student's misconfiguration) on the due date, that assignment shall be considered late for grading purposes.
A grade of incomplete is not intended to serve as a drop or withdrawal after the time period for submitting a drop has expired. Incompletes will only be permitted under the following conditions:
- The student has satisfactorily completed all course requirements up until the time of the incomplete.
- The student demonstrates that being required to complete the course within the semester's time constraints would cause extreme personal hardship.
- The student and instructor agree to a plan to complete the remaining coursework in a reasonable time period not unduly burdensome upon the student. In no case will the student be permitted to complete coursework any later than the mid-term examination of the semester following that in which the incomplete was issued.
- All paperwork required to issue the incomplete is completed and turned in to the CSCI office staff before final grades are issued.
One of the finest traditions of programming is the concept of openly sharing and refining code written by others. In the forms of programming we will do, it will be very easy to use code written by others. In fact, sometimes we will do so as a part of the course. Like in any kind of scholarship, there is a difference between 'standing on the shoulders of giants' and plagiarism. Although you will be encouraged to examine the code of others, you MUST write original code for this course.
When you do borrow from another programmer, you must cite the source in your code. You must also comment how you used the code, and any modifications you made to it. Using code without appropriate citation constitutes plagiarism, and will be dealt with very harshly.
If we are concerned about something you wrote, we will not place a grade on it until we have a chance to talk to you. If we suspect that you have turned in plagiarized work, we will follow the steps outlined in the student code of academic conduct. We will vigorously pursue allegations of suspected plagiarism. It just isn't worth it.
Since this is an internet course, we will rely heavily on the Internet as a communication medium. You are expected to check your email and the course main page regularly. We will also have a mailing list, which you will be expected to subscribe to.
Here's the best ways to get ahold of us:
Andy Harris Office SL 280 D aharris@cs.iupui.edu web page http://www.cs.iupui.edu/~aharris