Syllabus for CS348b Spring 1999




Frank Crow
Rm. 362 Gates Computer Science Building
(650) 842-6136 (Interval)
(650) 725-3696 (Stanford office: office hours only)
Office hours: 10:45-11:30 am Tu,Thu (Gates)

Don Greenberg

Teaching assistant

Elena Vileshina
Rm. 270 Gates Computer Science Building
(650) 723-3380
Office Hours:  (preliminary)
   4:00-6:30pm Mon.
   5:00-6:30pm Wed.  or by appointment
When needed, office hours will be held in Sweet Hall lab.
The exterior doors into Gates are locked at 5:30 weekdays, and all Saturday and Sunday, so if you don't have access to the building, you can use the door phones located outside both our Edu-Affairs entrance, and the main lobby entrance.


Ada Glucksman
Room 368 Gates Computer Science Building
(next to Pat Hanrahan's office)
(650) 725-3724
Office hours: Mon-Fri, 9:00 to 4:30




CS 248. Exposure to digital signal processing or Fourier analysis is recommended.


     Michael Cohen and John Wallace,
     Radiosity and Realistic Image Synthesis,
     Academic Press.

     Andrew Glassner,
     An Introduction to Ray Tracing,
     Academic Press.

    (A basic text in computer graphics is recommended for background)
     Foley, van Dam, Feiner, and Hughes,
     Computer Graphics: Principles and Practice,
     second edition in C, Addison-Wesley.
    Texts used in current offerings of CS248

Copies of the required books will be available in the textbook and general computer science sections of the campus bookstore. These books will be on reserve in the Math and CS Library.

Additional material not covered in the texts will also be made available. This consists of several research papers and possibly other materials providing background  for many of the lectures. Slides from the lectures will also be made available via the CS 348b Home Page.  The leftover hardcopies of hadouts are available in the file cabinet in the copy room Gates 3B.  We will try to put most of material on the web.


(Preliminary information from the last offering of CS348b.  This years assignments will be similar.)
The project for the quarter is to write a ray tracer. The project is divided into three assignments. In assignment #1, you will assemble the basic building blocks for tracing rays through scenes composed of simple geometric primitives. In assignment #2, you will implement some form of performance acceleration. In assignment #3, you will extend your ray tracer in a way of your own choosing. Example extensions are adaptive stochastic supersampling, the rendering of textures, a more sophisticated local illumination model, distribution ray tracing, or volume ray tracing. Due dates for each assignment will be as follows:

   1. Basic ray tracer - assigned Thursday April 8, due 11:59pm Wednesday, April 21
   2. Accelerated ray tracer - assigned Tuesday April 27, due 11:59pm Monday, May 10
   3. Extending your ray tracer - assigned Tuesday May 18, demos all day Thursday, June 3, writeups due 11:59pm Monday, June 7

In addition to the programming assignments, there will be two written assignments designed to test your command of the more theoretical aspects of the course. These will be interleaved with the programming assignments as follows:

   1. Sampling, antialiasing, texturing - assigned April 22, due in class (*) April 29
   2. Light transport and illumination - Assigned May 13, due in class (*) May 20

(*) SITN students may use the courier service


(Preliminary, based on last year's offering)
Evaluation criteria: The first two programming assignments will each count as 20% of your grade, the written assignments will each count as 15% each, and the last programming assignment will count as 30%. There will be no exams.

Collaboration: You may discuss the first two programming assignments with friends, but you are expected to implement your own solutions. On the third programming assignment, you are permitted (and encouraged) to form teams of two or three people and partition your planned extensions among the team members. Teams may discuss this assignment with other teams, but each team is expected to implement the extensions independently. In particular, code must not be shared between teams. The written assignments must be individual efforts.

Late assignments: Since each assignment builds on the previous one, it is important that assignments be completed on time. To allow for unforeseeable circumstances, you will be allowed one weekday of grace during the quarter. Beyond this, late assignments will be penalized by 10% per weekday that they are late. On programming assignment #3, neither the demo nor the writeup may be late. Incompletes in this course are given only in exceptional circumstances.

SGI Laboratory

Hardware: To do the assignments you will have access to the Stanford Graphics Laboratory .  The lab, located in two rooms in the basement of Sweet Hall, contains 15 Silicon Graphics Indigo2 Extremes (250 Mhz R4400, 200K polygons/sec, 128 MB main memory) and 15 Silicon Graphics Octane SIs (175 Mhz R10000, 400K polygons/sec, 128 MB main memory). The Extremes are named firebird1 - firebird15 and run Irix 6.2. The Octanes are raptor1 - raptor15 and run Irix 6.4.  Use telnet rather than rlogin for remote access.  Students in CS 348b have non-exclusive priority access to this laboratory, whose door is protected by a combination lock.

All students with leland accounts automatically have accounts on these machines. Home directories on these machines are shared with other Stanford Computing Clusters using AFS. If you do not have a leland account, follow these instructions.

Software: To help focus your attention on the key ideas in each assignment, we will provide an interactive Inventor-based front-end program that allows you to assemble a scene from simple primitives, select viewing parameters, define directional or point light sources, and specify reflectance properties for each object in the scene. We will also provide an X support package that allows you to build a custom user interface for your ray tracer.

Using other platforms: Our front end-program and X support library will be installed on the Stanford Graphics Laboratory machines in Sweet Hall. We may also provide one or more 3D modeling programs. If you prefer working in your dorm room or workplace, and have access to a machine there, you are welcome to do the assignments on your own machines. We will make as many of these tools available via ftp as we are permitted by the terms of our licensing agreements, but we will not support them on any other platform. Moreover, your code must run on the SGI machines in Sweet Hall. In particular, we will grade your projects by running your programs on an SGI using our own test data files, and assignment #3 will be graded face-to-face in the Sweet Hall laboratory. It is your responsibility to copy and test your code on the Sweet Hall SGI's in time for grading.

Lab access: You will only need your Stanford ID card to get access to the SGI Lab at Sweet Hall (Room 029).  SITN (TV) students should inquire directly from SITN re getting a temporary card.

CS348b: Computer Graphics: Image Synthesis Techniques, Frank Crow, Spring 1999