More selected projects

Generative Self-Portrait

A program that construct portrait drawing from an input image. The portrait is constructed through series of interactions and happenstances within in the digital space and the output image differs each time the program is run.

produced by: Freddie Hong

Project Description  

The project was inspired by the pixar animation ‘Inside Out’ and Patrick Tresset’s work of the ‘Drawing machine named Paul’. Both references understand the formation of one’s character as an accumulations of memories. The animation ‘inside out’ classifies memories into series of emotions and color codes them accordingly such as red being dedicated to angry moments and gold being dedicated to happy moments. Patrick Tresset understands contingencies as a part of contribution to the drawing and his robots have high level of entropy which makes the constructed portrait differs each time.

The program then construct a portrait image through series of interactions which each interaction may add traces or remove existing traces, just like how we form our characters through memories which some remain strongly in our mind where as some get completely forgotten over time.

The program begins by importing a black and white picture of myself and creates triangulated wireframe based upon the image of myself. The triangulated  wireframe then slowly deforms over time through perlin motion, abstractly representing the genetic structure of myself. Then the first contingency happens as the cloud of points appear on the left and gets connected to the initial wireframe. These circular points represents an environmental factor which intertwines with the genetic structure and together creates new kind of shape. Movements of these points were created using combination of perlin noise and vectors of random noise seeds. If the first contingency was additive process, the second process is the opposite where this time the circles appearing on right are repelling and deconstruct the structure within its range of movement. The repelling effect was created through functions such as ofDist to calculate the distance between points and atan2 to calculate angles between points. What remains after the two process is the traces which differs each time the program is run. The third process involves dropping of watercolors on the the canvas. Class was introduced to create this process. The class randomly selects set of watercolor images and drops them at the random locations thus color scheme differs everytime, sometime appears monochrome and other times more colorful. Lastly the program feeds another cloud of points from the left, which this time the points are attracted and gets joined to the initial points created from the input image. Here the cloud of moving points have just about equal amount of kinetic force as the attracting force of the other points. Thus some points remains trapped in the centre where others escape to the right side of the canvas, representing process happening in our mind.

The program entertains creating physical environment within the digital canvas, such as pulling and pushing as well as randomness in movements using perlin noise and random parameters. Creating shapes through interactions was the key aim of this program as well as understanding and using all the basic functions of the coding learnt throughout the first term.

The project was inspired by the film ‘inside out’ specifically on how the memories were visualised as marbles of different colors. If a character is the production of accumulative combination of these marbles then the handling of the memories is purely an generative process incorporating various contingencies that we face as we grow.


  • gallery-image
  • gallery-image
  • gallery-image
  • gallery-image