As of Fall 2026, this class can still be completed in a fully remote fashion.
If you are looking for the Summer 2026 quarter website, then you can find it here!
CS 148 fulfills the General Education Requirements (GER) as a Ways of Thinking/Ways of Doing (WAYS) course in the Creative Expression (WAY-CE) area. To satisfy this category, students need to enroll under the Letter Grade grading option; the WAY-CE requirement is not met by the Credit/No Credit option.
The course grade will be 50% Homework and 50% Final Project. No exams!
Course Announcements
| Welcome to the CS 148 Fall 2026 Website!
If you are a student, then please make sure that you are registered on both Canvas for access to lecture recordings and the Ed Q&A forum for interacting with the course staff! |
Summary
This is the introductory prerequisite course in the computer graphics sequence which introduces students to the technical concepts behind creating synthetic computer generated images. The beginning of the course focuses on using Blender to create visual imagery, as well as an understanding of the underlying mathematical concepts including triangles, normals, interpolation, texture mapping, bump mapping, etc. Then we move on to a more fundamental understanding of light and color, as well as how it impacts computer displays and printers. From this we discuss more thoroughly how light interacts with the environment, and we construct engineering models such as the BRDF and discuss various simplifications into more basic lighting and shading models. Finally, we discuss ray tracing technology for creating virtual images, while drawing parallels between ray tracers and real world cameras in order to illustrate various concepts. Anti-aliasing and acceleration structures are also discussed. The final class project consists of building out a ray tracer to create a visually compelling image. Starter codes and code bits will be provided here and there to aid in development, but this class focuses on what you can do with the code as opposed to what the code itself looks like. Therefore, grading is weighted towards in-person "demos" of the code in action - creativity and the production of impressive visual imagery are highly encouraged.
Topics include: Scanline Rendering; Triangles; Rasterization; Transformations; Shading; Triangle Meshes; Subdivision; Marching Cubes; Textures; Light; Color; Cameras; Displays; Tone Mapping; BRDF; Lighting Equation; Global Illumination; Radiosity; Ray Tracing; Acceleration Structures; Sampling; Antialiasing; Reflection; Transmission; Depth of Field; Motion Blur; Monte Carlo; Bidirectional Ray Tracing; Light Maps.
Prerequisites
- CS 107, MATH 51
- Must be fluent in Python.
- We will assume knowledge of the following mathematical topics
- Vectors, vector operations, and vector spaces
- Matrices
- Basic linear algebra, such as solving a system of linear equations
Meeting Times
- Tuesdays and Thursdays, 12:00pm to 1:20pm at the NVIDIA Auditorium in the Huang Engineering Center.
- The class will be recorded for CGOE on Canvas, as usual.
- Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.
- All students (Stanford and CGOE) can access the lecture live during the lecture times (as well as the recording afterward) through Canvas:
- Log in to Canvas using your Stanford SUNet ID.
- Navigate to the CS148 Fall 2026 page.
- Look for and click on the "Panopto Course Videos" page.
- The lecture live stream should start shortly before lecture time, and the recordings go up a few hours after processing.
Staff
- Instructor
- Ron Fedkiw
- Office Hours: Given the large size of the class in recent years, Ron's office hours (held via Zoom) are by appointment only (to better address emergencies). Ron's office hours are geared towards the lecture material and final projects; for homework help, we want students to get to know the CAs, as they'll be doing the grading.
- Course Staff
- Head CA: Jinhyo Huh - jinhyo@stanford.edu
- Course Manager: Amelie Byun
- Course Advisor: Swati Dube
- Please use the staff mailing list - cs148-staff-aut2627@cs.stanford.edu - for matters too sensitive/personal for Ed. This mailing list will be monitored by the instructor, head CA, course manager, and student liasion. This is where you should submit OAE letters if you have them.
- Course Assistants (CAs) - Please primarily use Ed to contact the CAs unless you need to reach out to a specific CA, in which case their emails are below. Refer to Canvas for the schedule and locations of office hours. Office hour changes and rescheduling will be announced on Ed.
- Kwame Ocran (Student Liaison) - kano@stanford.edu
- Shengqu Cai - shengqu@stanford.edu
- Hansheng Chen - hshchen@stanford.edu
- Boyang Deng - bydeng@stanford.edu
- Nicole Garcia - nicolejg@stanford.edu
- Jonathan Tseng - jtseng20@stanford.edu
- Yang Zheng - yzheng18@stanford.edu