Project 3: Gyromesh
In this project, you will create a viewer for arbitrary triangular meshes written in the OBJ format. The user can rotate the mesh in any direction using the mouse. If the movement is forceful, the mesh will continue to spin on its own. Requirements To receive credit for this project, you must meet the following […]
Project 2: Boxels
In this project, you will create an application that renders “boxelated” sculptures. You will coarsely approximate real-life objects using box primitives. The box locations and sizes will be stored in a text file, read in, and rendered in a rotisserie display. This project is inspired by the work of NVIDIA researcher Morgan McGuire. Requirements To […]
Project 1: Rastercaster
In this first project, you will create a sandbox for experimenting with fragment shaders and the OpenGL Shading Language (GLSL). You will render a single, screen-filling quadrilateral and paint designs on it using only algorithms that can be expressed in the fragment shader. This project is inspired by Shadertoy. Requirements To receive credit for this […]
Project Setup Instructions
The first step in building an interactive graphics program is an ugly one: you have to choose a graphical user interface (GUI) framework. This step is ugly because there are many frameworks, they are all different, they tend to obsolesce, and they often draw you into a mire of platform-specific issues. But you have to […]
CS 488 – Computer Graphics Applications
Course Information Syllabus Enrollment: 16 Lectures Labs Programming Assignments
CS 347: Lecture 25 – CS 347 Wrapped
Dear students: Our mission’s nearly over. You asked me to give you homework and projects so that you could learn full-stack web development. I’ve done that, and all that’s left is project 2 and the final exam. We won’t see each other again as a CS 347 family, so this is where we say goodbye. […]
CS 347: Lecture 24 – OAuth2
Dear students: Today we discuss OAuth2, a popular system for managing access to data controlled by a web service but accessed by a separate client application. I will be frank with you. Security is not my favorite subject, and I do not feel qualified to be speaking on it. However, OAuth2 is too much of […]
Dittos in Array Literals
Color is often represented in computers in triplets of red, green, and blue intensities. Expressing a color is a matter of finding the right mix of these intensities. For example, here are the triplets for six of the most famous colors: red = [1, 0, 0] green = [0, 1, 0] blue = [0, 0, […]
Twoville Limerick
In October, a collaborator and I presented a poster on our 2D vector graphics languages at FabLearn 2020. The session started with everyone in the main Zoom room. Each presenter had 30 seconds to introduce their project, and then the crowd dispersed to individual breakout rooms. Ever since I saw someone preview their paper with […]
CS 347: Lab 22 – MP3 Player, Part II
Welcome to lab. This lab is a continuation of the previous lab. Team, complete the assigned task below. Host, be careful not to dominate. All members should contribute ideas. Task Your task is to write a music library explorer called MyTunes—which could sometime be fleshed out to be a full-fledged web-based MP3 player. You will […]