Home Schedule Grading Policy Academic Policy

CSCI 379 Interactive Computer Graphics (1 Credit)

a.k.a. Computer Graphics Wizard Academy

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 WebGPU 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 WebGPU 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 or game engine after taking this course.

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

Help Section: Thursdays, 5:00-8:50pm at Dana 305

Expected Course Workload: 7-9 non-class hours per week

Discussion Platform: Piazza

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 Bucknell CAS to access the materials.) Quest demos can be found here.

Week Mon Wed Fri Weekly Quests
01 MLK Day Scroll 1 (pdf) Scroll 2 (pdf) Git & GitHub Foundamentals
A 2D Static Scene (pdf, starter)
Sample Trial Questions
02 Scroll 3 (pdf) Scroll 4 (pdf) Scroll 5 (pdf) An Animated 2D Scene (pdf, starter)
Sample Trial Questions
03 Scroll 6 (pdf) Scroll 7 (pdf) Scroll 8 (pdf) An Interactive 2D Scene (pdf, starter)
Sample Trial Questions
04 Scroll 9 (pdf) Scroll 10 (pdf) Scroll 11 (pdf) A 2D Particle-based Simulation (pdf, starter)
Sample Trial Questions
05 Scroll 12 (pdf) Scroll 13 (pdf) Scroll 14 (pdf) A 2D Deformation Simulation (pdf, starter)
Sample Trial Questions
06 Proficiency Trial (2D) Scroll 15 (pdf) Scroll 16 (pdf) A 3D Object Scene (pdf, starter)
Sample Trial Questions
07 Scroll 17 (pdf) Scroll 18 (pdf) Scroll 19 (pdf) A 3D Volume Rendering Scene (pdf, starter)
Sample Trial Questions
-- Spring Break
08 Scroll 20 (pdf) Scroll 21 (pdf) Scroll 22 (pdf)
  • Workday
A 3D Ray Tracing Scene (Shading and Texture) (pdf, starter)
Sample Trial Questions
09 Scroll 23 (pdf) Scroll 24 (pdf) Scroll 25 (pdf)
  • Workday
A 3D Ray Tracing Scene (Shadow and Transparency) (pdf, starter)
Sample Trial Questions
10 Scroll 26 Scroll 27 Proficiency Trial (3D) An Interactive 3D Scene (pdf, starter)
11 The Grand Enchantment: Drafting Your Masterpiece in Computer Graphics
12 The Grand Enchantment: Crafting Your Masterpiece in Computer Graphics
13 The Grand Enchantment: Refining Your Masterpiece in Computer Graphics
14 The Grand Enchantment: Perfecting Your Masterpiece in Computer Graphics
15 Archmage's Challenge

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 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
Scrolls 20%
Quests 30%
Proficiency Trials 20%
The Grand Enchantment 30%

Scrolls, a.k.a. In-class Activities/Worksheets (20%): I will create a class post on Piazza at the beginning of each class. On Piazza, you can ask and answer questions anonymously while allowing me to keep track of your learning progress and provide immediate feedback. You are expected to actively participate in the in-class scroll activities by asking and answering questions on the Piazza post and also write an exit ticket. To score a scroll point, you need to participate and show engagement during class. To do that, you should be in class, respond to the votes, answer the questions (from me or your fellows) on Piazza, and write a reflective or follow-up exit ticket that tells me what you have learned or want to learn more or what can be improved today. If you reflect on what has happened in class, you should not have a problem scoring. It is a subjective assessment; your goal is to convince me that you practice the scroll together with me in class. We will have 27 scrolls in the first ten weeks where you can score points. 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.

Quests, a.k.a. Your 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 to demonstrate you have completed a quest. 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 quests for more instructions. Each weekly quest is due the following Monday at 9 am. Complete the quest on time to receive points. Late completion is allowed with 50% focus reduction, i.e., each is worth 0.5 points instead). Each quest has a max points that you can earn. However, you may obtain more than the max point. In this case, denote n the extra features you have completed in a quest, the extra points e you will receive are: e=k+n+1-2k2k if 2kn+12k+1k=012, ...

Proficiency Trials (20%): There are two short question proficiency trials (check the schedule above for the trial dates). Each trial includes 20 short questions covering everything you have learned in the ten weeks. The first trial is about 2D graphics while the second is the 3D. The trials focus on the conceptual understanding of the materials. You will not need to write any codes nor perform any calculations. You shall remember and be able to recall the learned computer graphic concepts. Sample trial questions will be provided for you to familiar with the question type.

The Grand Enchantment (30%): Toward the end of the semester, you will form a team of three/four to create a Masterpiece of a computer graphic topic that your team chooses among the given choices or an interesting topic your team proposes. Solo is allowed, but I strongly encourage you do work in a team. You shall implement the selected topic using WebGPU and you are welcome to reuse any codes you have implemented for the quests. For some topics, code stem might be provided. Finally, you team will participate in the Archmage's Challenge (during the last class) to showcase your Masterpiece to your fellows. You also need to document your Masterpiece on a GitHub page or any personal/team webpage, and produce a video presentation. They are due at the end of the scheduled final exam time. Below is the grade breakdown of the Grand Enchantment grading:

Item Description Weight
Technical Implementations Correctly implement and demonstrate proficiency in the topic your team selected. 10%
Functionality Masterpiece features, particularly interactiveness. How does the user interact with the provided visual? 3%
Creativity The Masterpiece 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%
Archmage's Challenge Well-prepared showcase during the challenge that highlights the key features and functionalities of the Masterpiece. 3%
Showcase Well-documented Masterpiece GitHub page or any personal webpage that showcases the key features and functionalities of the Masterpiece. 4%
Video Presentation Professional video presentation that illustrates the key features and functionalities of the Masterpiece. 4%
Winner of the Archmage Challenge You fellow will vote who they like the most. You cannot vote for your own team. The winning team will receive bonus points.
Furthermore, the winner can decide take the points or distribute/share them to/with others.
3%

Appropriate Internet Use and Collaboration
  • You can use online resources to help you understand topics in this course.
  • Any online sources you use to complete assigned work must be cited appropriately as a comment in your code.
  • You must not search the Internet or an AI chatbot for specific code or solutions to your assigned problems. Do not try to get everything done by an AI – it would essentially be cheating yourself out of education.
  • You can ask AI chatbots or the broader internet for a general “How do I...?” question.
    • Examples of what you can ask:
      • How do I do 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 parts of your problem or answer and ask the AI bot to continue or find solutions.
      • Use the AI chatbot output in your solution if it contains functions or programming language 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 use or your prompt and answer in comments.
  • You are encouraged to talk to students about approaches to a problem and resources they use to help them solve problems.
  • You must not show another student your code on individual assignments. (In the team project, do not show it to another team!). You may not give / show / email / text / yikyak / print / borrow your code for others.
  • Similarly, you should be writing the code for your assignments. You are not allowed to have other students, friends, TAs, etc., write code for you. You must contribute to writing the entire code in the final group project. You must not split the final project: “I do part 1, you do part 2”. You must understand and be ready to explain (if asked) the work that you turn in for receiving credits.
  • You MUST use GitHub to maintain your source code and the GitHub page. Your source code will be in public. I strongly discourage you from checking your classmate's source code. If you do so, you MUST cite your classmate GitHub repo. The world can see your work! If you copy others codes without proper acknowledgement, everyone knows.
  • You should minify and obfuscate your JavaScript code when you publish it to the GitHub page, while maintaining the readable code in private.

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.