Home Schedule Grading Policy Academic Policy

COMP 193 Ray Tracing with WebGPU (3 Credits)

Computer Graphics (CG) is the field of study concerned with generating visual content (such as images, animations, and interactive media) from digital data (e.g., JPEG, OBJ, PLY). In essence, CG focuses on computational methods for producing images through the manipulation of geometric and visual information.

This course adopts a top-down approach using WebGPU to introduce the core techniques, mathematical foundations, principles, and practical skills of computer graphics. It is a programming-oriented course, and students are expected to actively participate in class activities and complete programming assignments to develop a solid understanding of CG fundamentals.

The course emphasizes the direct implementation of computer graphics techniques using WebGPU and does not rely on game engines. Students primarily interested in learning engines such as Unreal Engine, Unity, or Godot may find this course less suitable. However, the course provides insight into how common game-engine features are implemented internally, enabling students to build custom graphics systems or foundational components of a simple game engine.

During the first ten weeks, topics include (but are not limited to) primitives, buffer objects, the WebGPU Shading Language (WGSL), rasterization, geometric transformations, shading and lighting models, texture mapping, scene graphs, and user interaction. In the final four weeks, students will select a specialization track and complete a final project.

Prerequisites: COMP 053 or equivalent, or instructor's approval
Recommended: MATH 075 or equivalent

Instructor: Dr. Sing Chun Lee (SingChun)
Office Hours: Walk-in (Khoury Hall 106) or by appointment
Emails: or

Meetings: Mondays, Wednesdays, 09:30-10:50am at Anderson Hall 237
Help Sections: Wednesday 1:00pm - 6:00pm at CIMS Lab (CTC 112)
Discussion Platform: Discord

Expected Course Workload: Each week, 3 hours class hours & 7-9 hours outside class (Plan this in advance in your calendar. You NEED it for Graphics Programming!)

Recommended Textbook (not required): The WebGPU Sourcebook, Matthew Scarpino, CRC Press, ISBN-13 978-1032726670
Recommended Textbook (not required): Introduction to Computer Graphics and Ray-Tracing Using the WebGPU API, Benjamin Kenwright, SIGGRAPH Asia 2022 Course Notes

Tentative Schedule and Course Materials (You'll need Google Login with your Pacific email to access the materials.) Assignment demos can be found here.
Your grades will be posted on Canvas.

Week # Mons Weds Weekly Assignments
Sample Exam Questions
01 Worksheet 1 Worksheet 2 A 2D Static Scene
Set 01
02 MLK Day Worksheet 3 An Animated 2D Scene
Set 02
03 Worksheet 4 Worksheet 5 An Interactive 2D Scene
Set 03
04 Worksheet 6 Worksheet 7 A 2D Particle-based Simulation
Set 04
05 Worksheet 8 Worksheet 9 A 2D Deformation Simulation
Set 05
05~06 Midterm Exam (2D)
06 President's Day SIGCSE 2026 Travel
Worksheet 10
A 3D Object Scene
Set 06
07 Worksheet 11 Worksheet 12 A 3D Volume Rendering Scene
Set 07
08 Worksheet 13 Worksheet 14 Worksheet Summary
A 3D Ray Tracing Scene (Shading and Texture)
Set 08
-- Spring Break
09 Worksheet 15
Worksheet 16
A 3D Ray Tracing Scene (Shadow and Transparency)
Set 09
10 Worksheet 17
Worksheet 18
An Interactive 3D Scene (Animation and Acceleration)
Set 10
10~11 Midterm Exam (3D)
11 Final Project (pdf): Planning Your Computer Graphics Project
12 Final Project: Implementing Your Computer Graphics Project
13 Final Project: Refining Your Computer Graphics Project
14 Final Project: Finalizing Your Computer Graphics Project
15 Showdown (Project Demo)

Course Outcomes: This course contributes to the following ABET outcomes. Students will be able to
  1. explain and use fundamental CG techniques. (EAC 1, 6) (CAC 1)
  2. design, implement, and evaluate CG programs. (EAC 1, 6) (CAC 2)
  3. work effectively in a project team. (EAC 5) (CAC 5)
  4. apply CG techniques toward the design, implementation, and delivery of a final product of their choices. (EAC 1, 2, 4, 7) (CAC 1, 2, 4)
  5. orally present and demonstrate their final project. (EAC 3) (CAC 3)

Grading Policy: At the end of the semester, your letter grade will be determined by the weighted average of the following items, according to the typical scale: 93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-, 60-69 D, 0-59 F. The weighted average is computed as below:

# Item Weight
1. Worksheets 20%
2. Assignments 30%
3. Midterm Exams 20%
4. Final Project 30%

1. Worksheets on Your GitHub Page (20%): You are expected to actively participate in the in-class worksheet activities and complete the activities by the end of the same day (or the next day if you really need it). To earn credit for a worksheet, you must demonstrate completion of the activity on your GitHub page, which you will create during your first class. This portion of the grade is based on completion and engagement. If you attend class, follow along with the activities, and document your work on GitHub by the end of the day, you should have no difficulty earning full credit. Partial credit may be given for late submissions, based on the GitHub commit timestamp and the student's dedication to completing the activity. There will be 18 worksheets during the first ten weeks of the course. You must complete at least 15 worksheets to receive full credit for this grading category. If you actively participate and complete the activities, earning a full score should be straightforward. Please contact me as soon as possible if you experience an emergency or significant issue that affects your ability to participate or complete the activities.

2. Assignments on Your GitHub Page (30%): You will update your GitHub page throughout the course to demonstrate completion of the assigned assignments. Your GitHub page serves as a public portfolio showcasing your implementations of the computer graphics techniques and features covered in the course. Each individual technique or feature is worth 1 point. To receive full credit for this grading category, you must complete at least 60 features. Please refer to the weekly assignment for detailed requirements. Each weekly assignment is due by the following Monday (or the day after holidays) before 9:30am. Completing the assignment on time earns full points. Late submissions are accepted with a 50% point reduction; in other words, each late feature is worth 0.5 points. Each assignment has a maximum possible point value. However, you may exceed this maximum by completing additional features. Let n be the number of extra features you completed in a given assignment. The extra points e you earn are: e=k+n+1-2k2k if 2kn+12k+1k=012, ...

3. Midterm Exams (20%): There are two short-answer midterm exams (see the schedule above for specific dates). Each exam consists of 20 short questions covering material from the first ten weeks of the course. The first exam focuses on 2D graphics, and the second focuses on 3D graphics. The exams emphasize conceptual understanding; you will not be required to write code or perform calculations. You are expected to recall, recognize, and understand the computer graphics concepts introduced throughout the course. Sample exam questions will be provided in advance to help you become familiar with the question format. The exams may be conducted either orally or in written form (Week 5-6 and Week 10-11). In short, you should be able to describe computer graphics concept clearly at a high level.

4. Final Project (30%): Toward the end of the semester, you will form a team of three or four to create a Project on a computer graphics topic chosen from the provided list or one your team proposes. Solo is permitted, but collaboration is strongly encouraged. You will implement your chosen topic using WebGPU, and you are welcome to reuse any code you developed for assignment. For some topics, code stems may be provided. At the end of the semester, your team will participate in the Showdown (Project Demo) (held during the last class) to showcase your Project to your peers. You must also document your Project on a GitHub page or a personal/team webpage and create a video presentation. These materials are due at the end of the scheduled final exam time (May 6th 2026, 11am). The following section details the grade breakdown for the Final Project.

Item Description Weight
Technical Implementations Correctly implement and demonstrate proficiency in the topic your team selected. 10%
Functionality Project features, particularly interactiveness. How does the user interact with the provided visual? 3%
Creativity The Project showcases original ideas and creative solutions and demonstrates an innovative way of using computer graphics techniques. 3%
Teamwork Demonstration of collective teamwork. If solo, this 3% will be evenly distributed to other items. i.e., 0.5% to each other item. 3%
Showdown (Project Demo) Well-prepared showcase during the showdown that highlights the key features and functionalities of the Project. 3%
Showcase Well-documented Project GitHub page or any personal webpage that showcases the key features and functionalities of the Project. 4%
Video Presentation Professional video presentation that illustrates the key features and functionalities of the Project. 4%
Winner of the Showdown (Project Demo) Your fellows will vote for the Project they like the most. You cannot vote for your own team. The winning team will receive bonus points.
Furthermore, the winner can decide to take the points or distribute/share them to/with others.
3%

Appropriate Internet Use and Collaboration
  • You may use online resources to help you better understand the topics in this course.
  • Any online sources you consult while completing assigned work must be cited appropriately as comments in your code.
  • You must not search the Internet or use an AI chatbot for specific code or solutions to your assigned problems. Do not rely on AI to complete your work - this would essentially deprive you of meaningful learning.
  • You may ask AI chatbots or the broader internet general “How do I...?” questions.
    • Examples of acceptable questions:
      • How do I compute the cross product of a light direction l and the normal n in JavaScript?
      • How do I transfer data to the GPU using buffer objects in WebGPU?
    • Examples of what you should not do/ask:
      • Copy a portion of your problem or answer and ask an AI bot to continue or provide a solution.
      • Use AI-generated output in your solution if it contains functions or programming features never learned, discussed, or used in this course.
    • Whatever you ask the Internet or an AI chatbot, you must cite the specific website you used or include your prompt and the AI's response in comments.
  • You are encouraged to talk with classmates about approaches to a problem and the resources they used to help them solve it.
  • You must not show another student your code for individual assignments. (For the team project, do not show it to another team!) You may not give, show, email, text, print, borrow, or otherwise share your code with others.
  • Likewise, you must write the code for your own assignments. You are not allowed to have other students, friends, TAs, etc., write code for you. You must contribute to writing the entire codebase for the final group project. You must not divide the final project into “I do part 1, you do part 2.” You must understand and be prepared to explain (if asked) all the work you submit for credit.
  • You MUST use GitHub to maintain your source code and your GitHub page. Your source code will be public. I strongly discourage you from viewing a classmate's source code. If you do view it, you MUST cite their GitHub repository. The world can see your work! If you copy someone else's code without proper acknowledgment, everyone will know.
  • You should minify and obfuscate your JavaScript code when publishing it to your GitHub page while keeping the readable code private.

University of the Pacific Honor Code

The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:
  1. Act honestly in all matters;
  2. Actively encourage academic integrity;
  3. Discourage any form of cheating or dishonesty by others; and
  4. Inform the instructor and appropriate University administrator if a student has a reasonable and good faith belief and substantial evidence that a violation of the Honor Code has occurred.
Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of their permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Honor Code is located in Tiger Lore Student Handbook. Under no circumstance should any students submit work that is not of their authorship. If a deadline is tight or impossible, talk to your instructor before getting desperate. It is better to be late than dishonest. Remember that your instructor’s main goal is to give you the best learning opportunities.

Your instructor will explain in detail the collaboration policy for each specific assignment. Before you start your work, read and understand this policy. Should any questions arise, contact your instructor immediately to have them clarified.

Recordings

All live class presentations and discussions during this course may be recorded. As a student in this class, please note that your participation in live class discussions may therefore also be recorded. By participating in a live class discussion you are giving your consent to this recording. Access to these recordings will be limited to faculty and students enrolled in the class, to assist those who cannot attend the live session, and also will be a resource for those who would like to review content that was presented.

Pronouns

Knowing and applying the names and pronouns that students use is a crucial part of developing a productive learning environment that fosters safety, inclusion, personal dignity, and a sense of belonging across campus. Please let me know your preferred name and pronoun anytime throughout the semester.

Accommodations for Students with Disabilities

If you are a student with a disability who requires accommodations, please visit pacific.edu/disabilities to contact the Office of Services for Students with Disabilities (SSD) for information on how to request accommodations while at Pacific.
  • Students who have not previously registered for accommodations can request services by visiting pacific.edu/disabilities and selecting New Students Apply Here. Once registered, students will be asked to provide documentation of their disability, and meet with the accommodation specialists to determine reasonable accommodations.
  • Students who have previously been approved for services with SSD can requests accommodation(s) letters each semester by selecting the Returning Students Login Here link located on pacific.edu/disabilities
The Office of Services for Students with Disabilities is located in the McCaffrey Center, Second Floor. Phone: 209-946-3221. Email: ssd@pacific.edu. Online pacific.edu/disabilities.