Perseverence Logo
NASA landed a rover on Mars this week. When I saw the logo for Perseverence, I felt an irresistible urge to recreate it in Twoville. And so I did: It’s not an exact match. NASA’s landings are better than my own.
CS 488: Lab 5 – Torus
Welcome to lab, which is a place where you and your peers complete exercises designed to help you learn the ideas discussed in the preceding lectures. It is intended to be a time where you encounter holes in your understanding and talk out loud with your peers and instructor. Your instructor will bounce around between […]
CS 430: Lecture 4 – Types
Dear students, You know how in English nouns and verbs are independent? You can pick any noun and mix it with any nearly any verb to for a grammatical sentence. Butter dances. Fish sneeze. We have a similar situation in programming languages. The grammars of our languages allow us to mix data and operations in […]
CS 488: Lecture 7 – Geometric Modeling
Dear students: Our goal today is to generate a few models using code. The algorithmic description of shapes is sometimes called geometric modeling. Not all models can be easily generated via algorithms, and we are likely to build most of our models in a 3D modeling program rather than in code. However, programmatically generating shapes […]
CS 488: Lab 4 – Lit Cube
Welcome to lab, which is a place where you and your peers complete exercises designed to help you learn the ideas discussed in the preceding lectures. It is intended to be a time where you encounter holes in your understanding and talk out loud with your peers and instructor. Your instructor will bounce around between […]
CS 488: Lecture 6 – Lit Sphere
Dear students: Our goal today is to add lighting to our renderer. To make this work, we need a new mathematical tool: the vector. First, we take a tour through a handful of operations that we’ll need to work with vectors. Second, we’ll apply these operations to compute the “litness” of every fragment on the […]
CS 488: Lab 3 – Rotating Tetrahedron
Welcome to lab, which is a place where you and your peers complete exercises designed to help you learn the ideas discussed in the preceding lectures. It is intended to be a time where you encounter holes in your understanding and talk out loud with your peers and instructor. Your instructor will bounce around between […]
CS 488: Lecture 5 – The Third Dimension
Dear students: Our goal today is to render a rotating cube. No more flat geometry—we’re going to the third dimension! A few new concerns arise as we get more and more triangles in our scenes. We will overcome them with the power of our graphics API. Indexed Triangles In most of our computer games, triangles […]
CS 430: Lecture 3 – Variables
Dear students, Computer science has its roots in mathematics. It was the mathematicians who first had problems they wanted to mechanize. Computer science soon grew into a discipline of its own that appeals to people who don’t like mathematics. My hot take is that there’s one big reason for its success: computer science has more […]
CS 488: Lecture 4 – Spaces and Orthographic Projections
Dear students: Let’s step back and look at where we are. We can make shapes out of triangles. We can color them. We can move them around and resize them using a compact and fast system of matrices. We can tie these transformations to mouse events. That’s pretty nice. Where do we go next? It’d […]