Technical Requirements

Because this class is online, you will need to provide your own equipment for class. The requirements aren’t much different than any other class. You’ll need a capable computer, a decent internet connection, a camera, and the ability to do audio and video for communications.


You need a computer that is good enough to participate in class. The communication tools we use (e.g., Zoom) is generally are not too demanding.

More importantly, since this is a graphics class, your computer will need to run the graphics programs that you will write. The programs we will write tend to be small and not too demanding. At this point, you may not understand the terms that describe you need. You will need a reasonable modern computer that is capable of 3D graphics (technically (buzzword warning), you need to run hardware shaders - but this doesn’t require a dedicated GPU, pretty much any laptop from the past few years is OK).

If you want to check… try this demo from last year. You should see a reflective sphere (actually 2, one is moving), and you should see moving objects in the reflections. Yes, you will be doing this in class. For more interesting examples, try going to the Three.js demos website (Three.js is a library we will use in the second half of class). Try the dynamic cubemap demo - you should see a mirrored sphere with objects circling it.

Ironically, in the past few years I’ve never had a problem with a student having a computer that wasn’t good enough. However, I have had issues where students had better computers than the graders, and made stuff that was hard for us to grade. This is a good problem to have.

You can use a computer running Windows, Linux or MacOS. All work will run in a web browser (Chrome, preferred, but you can use Firefox). The software you will need is discussed on the Tools for 559 page. There are good free (open source) choices.


You will need an internet connection that is sufficient (in terms of performance and reliability) to do the activities of the class. The most demanding aspect of this is being able to participate in the lectures.

The University has a guideline for the minimum internet connection for students to participate in class (see UW Technology Requirements for Students). Roughly, 15MBps downstream and 5MBps upstream is probably sufficient for the synchronous video we will use for class. In practice, you may be able to get by with less, but it will be hard - since you won’t be able to see things.

My experience is that quality and reliability of connection is more important than locality. I have been able to hold video conferences with colleagues around the globe, but there are some people here in Madison that I need to use the telephone with.

We understand that even the best internet connection is not perfectly reliable. My home internet connection failed while I was proctoring the 559 Final Exam! (it only failed twice in 5 months, both during crucial class events). See the Unexpected Occurances (Technical Failures, Medical Issues, …) page.

The University provides some advice to dealing with internet connection issues on the UW Internet Connection Doctor page.

Camera / Scanner

At times during the semester, you will be required to take a picture and use it in an assignment. A cellphone camera is totally acceptable - even if its not a great cellphone camera. You will need to know how to get the pictures from your cellphone to your computer.

Over the course of the semester, you may need a way to get paper documents into digital form to upload. I don’t expect everyone to have a flatbed scanner handy. My recommendation is to use a cell phone camera (most phones have good enough cameras these days) and “scanner software.”

It is totally acceptable to use the camera in your cellphone (or tablet) as a scanner. I recommend getting special purpose scanning software that can automatically do color correction and image shape correction. I use CamScanner, which works on iOS and Android, and has gives academics free access to the “pro” features. However, there are zillions of similar apps. The built in camera app on your phone is OK, but it will be better to have a scanning app.


This is detailed on Tools for 559, but you will need (at a minimum):

  • A web browser
  • A GIT client that connects to GitHub, with SSH support set up
  • Development tools for JavaScript (we recommend Visual Studio Code)