Skip to content ↓
MIT student blogger twins Danny and Allan G. '20

Senior Fall Classes by Danny and Allan G. '20

Better late than never

We didn’t blog about the cool classes we took last semester yet, so we are blogging about them now. This is the second semester when we decided to take 36 units, because we knew that senior fall would be busy with job applications. Looking back, it was definitely the right decision. Anyways, here are the three classes we took!

6.837: Computer Graphics

One of the big reasons we decided to take course 6 classes in the first place was just to work our way up to this class. And after taking it, we can confidently say that the struggle was very worth it! This class covers 5 main areas of computer graphics – splines, character rigging, physically based simulation, ray tracing, and real-time rendering. There is a two-week pset associated with each of these topics, and an open-ended final project where you can choose to focus on any computer graphics related topic! Every assignment was challenging but very rewarding, because it resulted in some sort of 3D art! Here are some of the things we worked on:


Splines are basically curves. For this assignment we had to write code with a lot of math, that would create splines given a set of points. The next part of the assignment was to write a function that rotated the curve around a vertical axis to a create a 3D model with rotational symmetry like a wine glass or pottery, and another function to rotate a circular spline around another spline to create 3D models that look like puffy outlines. Here are our puffy outlines of the nerdy things we like.

Character Rigging and Mesh Deformation

To create a character, first we had to write code that could create a skeleton out of spheres (for the joints) and cylinders (for the bones), given a set of points defining the location of the joints. Then, we had to hook up the joints to a user interface to get them to move with sliders. Finally, we had to create the mesh by parsing through a file that defined all the vertices, and another file that defined the contribution of motion from all the joints for each vertex.  This assignment was probably one of the most challenging for us, but we got animatable characters out of it! Here is one of them.

Physically Based Simulation

This assignment was probably one of our favorites, which was actually really surprising to us because of how much physics was involved! We had to create a grid of spheres and keep track of all the forces on each sphere. To simulate the cloth, we had to connect the spheres with 3 different grids of springs, and then add gravity, drag, and a wind force. This physics actually made sense, very unlike 8.01L and 8.02, and it was really cool to see the force equations translated into the animation!

Ray Tracing

Ray tracing is a technique to render 3D scenes by shooting out rays of light from the camera that bounce around (if the materials in the scene are reflective) and keeping track of where they intersect objects. The assignment let us create some really cool results!

Non-Photorealistic Rendering

Non-Photorealistic Rendering or NPR is a technique in computer graphics used to render 3D models to look as thought they are 2D drawings. There are a lot different techniques out there, so for our final project, we surveyed a few of them, namely toon shading, outlines, and hatching. Toon shading is a way to get discrete bands of shading on a model, like you see in 2D animated cartoons. Outlines(not shown in the video) is exactly what it sounds like. And hatching is a way to get a model to look as though it was drawn with hatch marks. We actually did not fully implement the hatch marks technique, because it would have been very difficult and outside of the scope of the project, so it does not look as good as it did in the paper we based the implementation on. Instead, we combined the techniques we implemented in different ways. So here is a video showing toon shading, hatching, and the ways we combined them.

Overall, this class was super informative, rewarding, and worthwhile!

21A.502: Fun and Games: Cross-Cultural Perspectives

We had been procrastinating taking a HASS-S for sooo loongg. Every semester we would look at the listings, and would never see any HASS-S that seemed very interesting to us. But because taking at least one HASS-S is a requirement to graduate, we decided that, one way or another, we would take one during senior fall semester, since we really didn’t want to leave it for our final semester at MIT. We signed up for three, attended all three for the first week, and chose the one we liked most! But boy, oh boy, were we wrong to dread taking a HASS-S. This class was honestly one of the most fun classes we had ever taken here! And not just because the class was literally about fun, although that was a factor lol. The class focused on different forms of “fun” and “play” and their role in different cultures, which was really interesting, especially because of how engaging the professor was! On top of that, every lecture, our professor would bring in really amazing speakers to class, ranging from a comedian to an owner of a puzzle shop. Also, every lecture, a different student would present the week’s readings in a 30 minute presentation. But not a normal presentation! We had to somehow turn our presentations into games! The games people incorporated into their presentations ranged from jeopardy, poker, mancala (but us students were the stones), and even scootah hockey, a sport that is very popular in Simmon’s Hall! Scootah hockey is like ice hockey, but instead of skating on ice, you are sitting on a “scootah” (basically, a plastic board with 4 wheels) and using your feet to roll around. And yes, we did have a full on scootah hockey tournament ~during lecture time~ and ~with the professor~. That class was so much fun and definitely one of the highlights of the semester. One of the other highlights of the class was when we went to an escape room in the week we were learning about the concept of immersion in play! We went to Boxaroo, a local Boston escape room company (that actually has some MIT alumni working there!), and it was so fun! One of the reasons we went on this field trip, was to get experience doing field work and being anthropologists of play. We then used our experiences in the escape room to write our first ethnographies in the class, in preparation for our final projects. For the final project, we had to do participatory action research on a form of fun or play that you are not familiar with and write an ethnographic report on it. Allan wrote about Next Quest, a D&D group in Next House, and I wrote about Singing for Service, a community-service focused acapella group. So towards the end of the semester we were participating in D&D games and going on service outings ~for class~. And honestly, all the writing we did (for the final project, and shorter papers throughout the semester) was really enjoyable because we were writing and reflecting on games, play, and fun! Overall, it was an amazing HASS! 20/10 would recommend, and honestly any class with Graham Jones (we heard that the class he co-taught last semester, Paranormal Machines, was very good too!)

MAS.URG: Undergraduate Research in Media Arts and Science

One of our goals before graduating was to UROP in the Media Lab at least once. And this semester we finally did it. 01 well, we did make animations for the Social Machine’s group perviously, but that was technically a job, not a UROP. Plus, we did everything remotely that semester, so we actually only spent a total of 2 hours in the actual lab just to meet with our supervisor. ! We uroped in the Fluid Interfaces group on the project PaperDreams! The project is an interactive AI-enhanced drawing application! Essentially, the user draws anything they want on the digital canvas, and through a sketch recognition neural network, the application will know what the user drew, and display that word, along with related or unrelated words, in the Inspiration bar. This is meant to enhance the creativity of the user, and assist them in the visual art/storytelling process! Additionally, the application also has the ability to color in the user’s drawings for them, and provide pre-made sketches that the user can drag onto the canvas. When we joined, there were two variations of the current functionality of the application that our supervisor wanted to implement: a chemistry PaperDreams and a 3D PaperDreams. For the chemistry version, which Allan worked on, we wanted the application to recognize user-drawn chemical compounds, and then provide suggestions of functional groups that they can add onto the canvas, in order to create a derivative of that compound. The application of this would be to enhance creativity/workflow in the drug discovery process. For the 3D version, which Danny worked on, we wanted the application to be able to convert user drawn sketches into 3D models. This would hopefully lower the barrier of entry (i.e. learning how to use 3D modeling software) for people interested in creating 3D art. This involved running a variety of neural networks that convert drawings into their corresponding normal maps, bump maps, or models. We worked a lot on getting prototypes of these functionalities implemented in time for the Media Lab Member’s Week, which is when the sponsors of the lab see the latest work. It was many hours of work leading up to that week, but we got the prototypes finished, and then got to present! After member’s week, we switched gears into working on the original PaperDreams application by improving the way it saves user-drawn sketches. Instead of saving them locally, we integrated PaperDreams with Firebase, and by the end of the semester, PaperDreams could store user-drawn sketches remotely! We learned a ton during this project, from working with neural networks to JavaScript to Firebase to web development. 

Senior fall was a really busy semester, but also one of the most fun and rewarding! We are looking forward to our 8th and final semester!!! Also, how did time move so quickly that we are about to enter our 8th and final semester 🤯

  1. well, we did make animations for the Social Machine’s group perviously, but that was technically a job, not a UROP. Plus, we did everything remotely that semester, so we actually only spent a total of 2 hours in the actual lab just to meet with our supervisor. back to text