Projects And COURSES

Including my personal research projects and some courses I have taken.

 
cs440-logo-huge
cs440-logo-huge

press to zoom
clocks_pmap
clocks_pmap

press to zoom
student_work_02
student_work_02

press to zoom
cs440-logo-huge
cs440-logo-huge

press to zoom
1/9

EPFL CS440

This is a project-based course: students will initially receive a basic software package that lacks most rendering-related functionality. 

Over the course of the semester, we will discuss a variety of concepts and tools including the basic physical quantities, how light interacts with surfaces, and how to solve the resulting mathematical problem numerically to create realistic images. Advanced topics include participating media, material models for sub-surface light transport, and Markov Chain Monte Carlo Methods. 

student_work_01
student_work_01

press to zoom
student_work_02
student_work_02

press to zoom
student_work_04
student_work_04

press to zoom
student_work_01
student_work_01

press to zoom
1/4

stanford CS148

The beginning of the course focuses on using Blender to create visual imagery, as well as an understanding of the underlying mathematical concepts including triangles, normals, interpolation, texture mapping, bump mapping, etc.

 

Then we move on to a more fundamental understanding of light and color, as well as how it impacts computer displays and printers. From this we discuss more thoroughly how light interacts with the environment, and we construct engineering models such as the BRDF and discuss various simplifications into more basic lighting and shading models. 

 

Finally, we discuss ray tracing technology for creating virtual images, while drawing parallels between ray tracers and real world cameras in order to illustrate various concepts.

 
early_version_xv6_structure
early_version_xv6_structure

press to zoom
early_version_xv6_structure
early_version_xv6_structure

press to zoom
1/1

mit 6.S081

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking. 

output_texture
output_texture

press to zoom
output_normal
output_normal

press to zoom
games101
games101

press to zoom
output_texture
output_texture

press to zoom
1/7

UCSB GAMES101

This course is an introduction to the foundations of three-dimensional computer graphics. Topics covered include 2D and 3D transformations, Rasterization based interactive 3D graphics, shading and reflectance models, texture mapping, geometric modeling using Bézier and B-Spline curves, ray tracing, and animation. There will be an emphasis on both the mathematical and geometric aspects of graphics, as well as the ability to write fully functional 3D graphics programs.

 

Pre-requisites for the course: Linear algebra, C++ Programming, Algorithm, Data Structure

SM
SM

press to zoom
PCF
PCF

press to zoom
games202
games202

press to zoom
SM
SM

press to zoom
1/11

UCSB GAMES202

One of the perennial goals of Computer Graphics is creating high quality images which are indistinguishable from photographs: a goal referred to as photorealism. Another important goal is interactivity for visualization, simulation, gaming and other real-time applications. These two goals have historically been at odds with each other. In this course, we will review the history and some of the recent ideas that seek to bridge the gap between realism and interactivity. We will focus on the use of complex lighting and shading within limited computation time. Specifically, topics will cover programmable shaders, real-time shadows, interactive global illumination, image-based rendering, precomputed rendering, adaptive sampling and reconstruction, and real-time ray tracing.

cs231n
cs231n

press to zoom
cs231n
cs231n

press to zoom
1/1

STANFORD cs231n

This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. The final assignment will involve training a multi-million parameter convolutional neural network and applying it on the largest image classification dataset (ImageNet). We will focus on teaching how to set up the problem of image recognition, the learning algorithms (e.g. backpropagation), practical engineering tricks for training and fine-tuning the networks and guide the students through hands-on assignments and a final course project. Much of the background and materials of this course will be drawn from the ImageNet Challenge.

C++
C++

press to zoom
C++
C++

press to zoom
1/1

STANFORD cs106L

CS 106L is a companion class to CS106B/CS106X that explores the modern C++ language in depth. We'll cover some of the most exciting features of C++, including modern patterns that give it beauty and power.

 

Anyone who is taking or has taken CS 106B/X (or equivalent) is welcome to enroll. In other words, we welcome anyone that has learned or is learning programming fundamentals like functions and objects/classes.

 

CS 106L is a class for 1 unit. Students will complete 3 very short assignments. There are no exams or papers. All grades are S/NC. Class will finish in week 9 to give you time for finals.