CSCI 479 Interactive Computer Graphics (1 Credit)

Computer Graphics (CG) techniques produce visual content (such as pictures, movies, animations, augmentation) from digital models (e.g., JPEG, OBJ, PLY). In short, CG studies the computational techniques to generate images by manipulating visual and geometric information.

This course takes a top-down approach using WebGL to acquaint you with CG computational techniques, mathematical background, basic principles, and practices. It is a programming oriented course in which you are expected to actively engaging in class activities and work on programming assignments to master the basics of CG. Note that this course focuses on using WebGL to implement and learn computer graphics techniques. It does not use any game engine. If you are interested in learning a game engine such as Unreal, Unity 3D, and GoDot, this might NOT be the right course for you. In this course, you will learn how some game engine features work. You should be able to implement your own computer graphic technique after taking this class.

In the first ten weeks, we will cover but limited to primitives, buffer objects, WebGPU Shading Language (WGSL), rasterization, model transformation, shading and lighting models, texture mapping, scene graph, and user interactions. Toward the end of the semester (the last four weeks), you will pick a track to specialize in a particular CG area and work on a final project to deepen and demonstrate the skills you have acquired. This semester we offer 1) Geometry Processing, 2) Animation, 3) Rendering, 4) Interactive Graphics, 5) Game Development, and 6) Visual Effects tracks.

Prerequisites: CSCI 204 or equivalent or instructor's approval

Recommended: MATH 245 or equivalent

Instructor: Prof. SingChun Lee

Office Hours: Walk-in (Dana 334) or by appointment

Meetings: Mondays, Wednesdays, Fridays, 11:00-11:50am at Dana 305

Discussion Platform: Piazza

Recommended Textbook (not required): The WebGPU Sourcebook, Matthew Scarpino, CRC Press, ISBN-13 978-1032726670

Tentative Schedule and Course Materials (You'll need Bucknell CAS to access the materials.):

Week Mon Wed Fri Weekly Homework
01 MLK Day Worksheet 1 Worksheet 2 A 2D Static Scene
02 Worksheet 3 Worksheet 4 Worksheet 5 An Animated 2D Scene
03 Worksheet 6 Worksheet 7 Worksheet 8 An Interactive 2D Scene
04 Worksheet 9 Worksheet 10 Worksheet 11 A 2D Physical System
05 Worksheet 12 Worksheet 13 Worksheet 14 A 2D Deformation Simulation
06 Exam (2D) Worksheet 15 Worksheet 16 A 3D Static Scene
07 Worksheet 17 Worksheet 18 Worksheet 19 A 3D Ray Tracing Scene I
-- Spring Break
08 Worksheet 20 Worksheet 21 Worksheet 22 A 3D Ray Tracing Scene II
09 Worksheet 23 Worksheet 24 Worksheet 25 An Interactive 3D Scene
10 Worksheet 26 Worksheet 27 Exam (3D) A 3D Deformation Simulation
11 Project Phase: Selected Track -- Learn the Topic
12 Project Phase: Selected Track -- Implementation
13 Project Phase: Selected Track -- Implementation
14 Project Phase: Selected Track -- Debug and Testing
15 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 computer graphics 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 assignments and projects, 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
In-class Activities/Worksheets 20%
GitHub Page 30%
Short Question Exams 20%
Final Project 30%

In-class Activities/Worksheets (20%): At the start of the semester, you will register a nickname/alias of yours. It allows you answer questions anonymously in class while allowing me to keep track of your learning progress and provide immediate feedback. You can change your alias at any time you want by informing me of your new alias. You are expected to actively participate in the in-class activities/worksheets. To score an in-class activity point, you need to participate more than 80% of the activities/worksheets of a class. We will have about 27 classes in the first ten weeks where you can score a point. You will need 20 points for a full score in this grading item. You should not encounter problems to obtain a full score if you are an active participant. Contact me if you have any emergency that severely affects your participation.

GitHub Page (30%): In the first class, you will create your own GitHub page for this course. You will keep updating it throughout the semester. Your GitHub page is a public page that showcases your own implementation of the computer graphic techniques/features you have mastered. Each technique/feature is worth 1 point. To secure a full score, you will need to finish at least 60 of them. Check the weekly homework for more instructions on the implementation. Each weekly homework is due the following Monday at 9 am. Late submission is accepted with 50% penalty. You may obtain more than 60 points. In this case, denote n the extra points you obtain, the extra credit e you will receive is: e=k+n+1-2k2k if 2kn+12k+1k=012, ...

Short Question Exams (20%): There are two short question exams (check the schedule above for the dates). Each exam includes 20 short questions covering everything you have learned in the ten weeks. The first is about 2D graphics while the second is the 3D. The exames focus on the conceptual understanding of the materials. You will not need to write any codes nor calculation. You will need to remember the key concepts of learned computer graphic techniques. Sample exam questions will be provided for you to familiar with the question type.

Final Project (30%): Toward the end of the semester, you will form a team of three/four to work on a final project of a topic your team chose among the given choices or an interesting topic your team proposed. Solo is allowed, but I strongly encourage you do work in a team. You will implement the selected topic using WebGPU. Form some topics, code stem may be provided. Finally, you will give a project demonstration, document your project on a GitHub page or any personal webpage, and produce a video presentation. Besides the project demonstration (happening during the last class), other items are due at the end of the scheduled final exam time. Below is the grade breakdown of 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 distrubuted to other items. i.e., 0.5% to each other item. 3%
Demonstration Well-prepared final demonstration 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%

Appropriate Internet Use and Collaboration

Bucknell University Honor Code

As a student and citizen of the Bucknell University community:
  1. I will not lie, cheat or steal in my academic endeavors.
  2. I will forthrightly oppose each and every instance of academic dishonesty.
  3. I will let my conscience guide my decision to communicate directly with any person or persons I believe to have been dishonest in academic work.
  4. I will let my conscience guide my decision on reporting breaches of academic integrity to the appropriate faculty or deans.
Students must read and abide by the principles in the 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.

The university has web pages describing what we understand about the Principles of Academic Responsibility and how it deals with violating these principles (Student Code of Conduct.)

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.

Values and Commitments

Bucknell University steadfastly affirms our commitment to students, staff, and faculty. Regardless of race, ethnicity, nationality, gender, gender expression or sexual orientation, religion or belief system, economic status, or ability, you are a valued, respected, and essential community member. By joining this community, all members commit to welcoming others similarly. We will not tolerate mistreatment or disrespect of persons for any reason by members of our community. The College of Engineering strives to offer a safe environment for learning, growth, inquiry, and the respectful sharing of ideas for all.

We have a moral and professional obligation to share the responsibility of always treating each other with respect and dignity, even when we disagree. However, we will not question or leave room for disagreement about the value of different human beings. We investigate and solve problems, sometimes very challenging ones. An important method for such investigations and solutions is exploring ideas in conjunction with individuals’ unquestioned support and value. We can all engage in such processes when we feel comfortable and safe as community members.

Your suggestions to help the University meet this commitment are encouraged and appreciated. If something in class makes you uncomfortable, please reach out. Contact us directly or use other resources, including department chairs and Associate Deans Terri Norton (trn005@bucknell.edu) and Erin Jablonski (erin.jablonski@bucknell.edu). Instead or additionally, you may file a bias incident report. This report may be filed anonymously if you so choose. The College of Engineering commits to working alongside students, expressing concerns, and making reports to empower them in any follow-up actions and to ensure they are protected from repercussions.

Professionally, we adhere to ACM’s Code of Ethics. Computer science has a checkered history concerning inclusion – in corporate environments, our classrooms, and the products we create. We strive to promote transparency and inclusivity that reflect what we hope our field becomes (and not necessarily what it has been or is now).

We reject behavior that strays into racism or harassment. Such behavior (whether verbal, written, or actions) may relate to others’ race, gender, faith, or sexual orientation, among virtually innumerable professionally irrelevant characteristics (e.g., religion, [dis]ability, age, etc.); sexual images in public spaces; deliberate intimidation, stalking, following, harassing photography or recording, disruption of meetings, inappropriate physical contact, and unwelcome sexual attention.

If you believe someone is violating these principles (for example, with a joke that could be interpreted as sexist, racist, or exclusionary), please feel empowered to speak up or email your instructor or any of the above resources to explain the situation. While we will preserve anonymity when possible, also be aware that we are required by law to report incidents of sexual misconduct or relationship violence.

We are here for you. Life can be full of uncertainties and hardships. You may find yourself in tough situations such as being sick, having to care for someone who is sick, having a hard time coping with a personal crisis, or even facing food insecurity. If you find yourself in a predicament that is weighing on you, please get in touch with us. We will work with you to make the accommodations necessary to help you and try our best to help you. Please believe that we are invested in supporting you.

Mental Health and Wellness

We recognize that balancing academic pursuits with non-academic life and interests can sometimes be stressful. If you feel that things are getting overwhelming, please seek help. We are happy to talk to you and point you to a resource on campus for help. Alternatively, we encourage you to contact your Associate Academic Dean or the Dean of Students at 570-577-1601 for support. Call the Counseling & Student Development Center (CSDC) at 570-577-1604 (24/7) for immediate mental health assistance. You can also visit the CSDC website for additional information.

Basic Needs Security

Any student who has difficulty affording groceries or accessing sufficient and nutritious food to eat daily or who lacks a safe and stable place to live and believes it is affecting their learning is urged to contact the Dean of Students for support. Furthermore, we encourage you to notify your Instructor of this as well – we will keep all such information confidential. This will enable us to provide any resources we possess and identify other resources in the University.

Special Accommodations

If you have a disability and need accommodation, we encourage you to contact the Office of Accessibility Resources (OAR) at 570-577-1188 or OAR@bucknell.edu. The OAR is here to help and will work with you to determine appropriate accommodations. If accommodations are needed, the OAR will communicate those to me through a Letter of Accommodation. We will not be given information about the nature of your disability, only the accommodations you need. We will treat any information received as private and confidential. Please visit the Accessibility Resources page for more information about the OAR.