I chose to create a “digital mirror” type artwork for this midterm. The inspiration of this project came from one of the Danny Rozin’s software mirrors, Mirror Number 5.


The pixel shader extracts the contents of the live video it captures, converts them into a pixel array by the function loadPixels(). And then process it by calculating the size of the output pixel grid based on the current mouse horizontal coordinate. The closer the mouse is to the origin, the more detail is obtained, and if you put your mouse at the edge of the screen, then you’ll only get a dozen large pixel blocks.


I am not good at coding, because some shaders cannot be done as I planned, I had to make changes on my concept several times. After a few attempts, it finally achieved a more satisfactory result. Overall, I’m happy with what I learned about p5.js during the process, which made me feel a little more familiar with coding.

Reference: https://youtu.be/VYg-YdGpW1o


Week 7


push() and pop()

For the first assignment, I created the earth’s rotation by using push(), pop() and rotate() functions. The speed of the animated value rotate() is controlled by variable millis().



I used a abstract artwork for bumpmapping. I tried several different images, and from the results the best results were seen with high color saturation and contrast colors.

Week 2

Shader #1:


I used u_time variable to introduce animation into these two shaders. The first one has gradient among x-axis + change dynamically based on time.



The second shader is a dynamic circular shader by adding the distance() function.


Week 9 Homework

screenshot-2022-04-20-225832 screenshot-2022-04-20-230120

For this week’s assignment, I tried to make a fabric material on Substance Designer. Since I was not familiar with this software, I decided to follow a tutorial video which interested me.

It’s a photo realistic wool fabric texture, and I was satisfied with what I’ve got. It started with observing the material in details, and breaking them into small patterns.

I think the hardest part is to get familiar with each nodes’ attributes in order to modify them to get the result you want. Overall, I was pretty enjoy with exploring in Substance designer. It was powerful tool to make textures with rich details, and easy to get started with.

Tutorial Followed: https://youtu.be/zOCOLvZu_a8

Week 8

I explored three PBR textures on Unity’s primitive spheres. The materials are from 3 different types, paper, metal and rock. I basically followed the tutorial from our lecture, and experimented some light setting to achieve a more realistic result.

PBR: https://freepbr.com/about-free-pbr/

HDRI: https://ambientcg.com/list?type=HDRI