Title: codeworks

Year of Production: 2012- on-going

Genre: Software art, interactive art, performance art

:: Description ::

<codeworks> is a piece of software contains different program which you can execute in Python. The programs relate to cultural and political context,  aims to explore code as an artistic medium.  Besides, the project examines the notion of ‘liveness’ as part of the author’s entire research theme. How does control parameter affect the depiction of liveness? What is the relation of the manipulation of data and code control?

More pieces will be added continuously.

See the open project page:

… More on concept

Keywords: software, art, code, operation, real-time
<codeworks> is inspired by the article “The aesthetics of generative code“, written by Geoff Cox, Alex McLean and Adrian Ward.
<codeworks> starts off on the free online learning class, Learn to Program: The Fundamentals, which is offered by University of Toronto. Here I would like to thanks Jennifer Campbell and Paul Gries in delivering such a wonderful class.

<codeworks> contains a series of questions relates to political and cultural scene (sometimes with specific region). It aims to let everyone understand the content (even you are not chinese, at least could able to grasp the general meaning of the work. )

<codeworks> includes a series of software program that is written in Python. It is an interpreted high-level programming language whose design philosophy emphasizes code readability. Its syntax is said to be clear and expressive.

<codeworks> can be read as a standalone work, but also can be executed in Python where multi-platform is supported. (

<codeworks> will balance the complexity of code and functions, as well as maintaining the readability of code.

<codeworks> champions computer literacy.

<codeworks> seeks to ask the following questions:

1) The experience of everyday life can be described as code-switching or hacking the visual codes around us to navigate and negotiate meaning (see William Gibson, Pattern Recognition). Is code as part of the visual culture?

2) How do we understand/decode/encode grammar (syntax) of a language (program/code)?

3) Does code speak or perform? If yes, then how does it perform?

4) What is data? Is everything we input as data?

5) How do we experience liveness in <codeworks>? What is the distinction between ‘liveness’ and ‘operation’ (or Real-Time Operation)?

… Data Happening

“Happening” is a term coined by Allan Kaprow in 1958, which describes the close relation of event and everyday life. Those “unheard-of happenings and events” should be observed and these will become the materials for artistic creation. Kaprow is one of the key explorers in the Fluxus movement in the 1960s. The name Fluxus implies the fluidity of flow as well as a continuous of change. A lot of artists (such as John Cage, George Brecht, amongst others) were involved in this art movement, exploring the boundary of art and non-art. Kaprow stated some of the features of “Happening” in his essay “Happenings” in the New York Scene, including the intimate and fleeting nature, open-ended and fluid form, impermanence and emergence. (Kaprow 1961)

The artwork “codeworks”, produced by Winnie Soon, is a software art piece presents the cultural and political scene using a primitive and geek, yet an interactive approach via computer code, initiating an event every time the participant runs the computer program. The work encourages participants to run the computer program by themselves, which is different from usual media artworks where program is automatically run at the back. Code used to be a black box, hide from the representation of a media artwork.

In codeworks, it employs a highly readable and expressive programming language, python, aims to let everybody understand the program even read as a static piece of work. Therefore codeworks demonstrates as an art piece through reading and executing it as a happening, where participant can input with different values in a feedback software program. Every time the program gets executed, it calls for an action and it is a happening, recalling the moment of time, the incident and the event that exists in the city. Here in codeworks with dual meaning of event, receiving and presenting the data as a live event as well as the happenings and liveness of the event.

:: See the works (the program) ::

Visit the code repository project site:

:: 25 Oct 2012 ::

# -*- coding: utf-8 -*-
# A mini game to test your consistency of your 'like' scale on Hong Kong as a city

prompt = '如滿分為100,有幾喜歡香港這城市 ? (type enter): '
degree = input(prompt)
degree_of_like = []
while degree != '' :
        if degree.isdigit():
                if len(str(degree)) < 3:                         degree_of_like.append(degree)                         degree = input(prompt)                 else:                         degree = input("100為滿分> " + prompt)
                degree = input("100為滿分> " + prompt)

print ('我喜歡香港的指數是', degree_of_like)

:: 20 Oct 2012 ::

# -*- coding: utf-8 -*-
# news source from:

def how_many(zero):

	''' (number) -> str
	Return how many zeros are there in 417 billion, which is the amount earned by funds house from employee's salary during end of 2011-2012.

	>>> how_many(8)
	>>> how_many(2)
	'return '錯呀, retry!'
	if zero != '8':
		return '錯呀, retry !'
		return '對一共是八條零。就這樣過去兩年間打工仔應有的錢 (41,700,000,000)便去了基金公司。'

print (how_many(x));

:: 16 Oct 2012 ::

# -*- coding: utf-8 -*-

def MPFtrue_winner(who):


    Return the ultimate winner in the game of HK Mandatory Provident Fund Schemes among 1) employee, 2) funds house & 3) employer.
    Might be there is another one - HK Government

    >>> MPFtrue_winner(1)

    if str(who) =='1':
        return '>係就好了,打工仔只係一味得個做字。'
    elif str(who)=='2':
        return '>真係勁,短短兩年間,基金公司為全港300萬打工仔供款賺取了963億元的回報。當中有四成三不是打工仔袋,是他們袋了!'
    elif str(who) =='3':
        return '>雇主在這個遊戲裡頭也要真金白銀付錢的,不過賺與蝕都要比一樣數目,沒有特別蝕底。'
        return '>有沒有睇題目架?'

x=int(input("誰是強積金的大贏家? 1)打工仔 2)基金公司 3)雇主 ?"))
print (MPFtrue_winner(x));

:: 13 Oct 2012 ::

# -*- coding: utf-8 -*-

def Paul_drankbeer(beerno):


    Return the no. of 500-milliliter glass of German Paulaner beer that Mr.Paul Chin
    Mo Po, HK Secretary for development, had drank on 2 Oct 2012.
    He said he had waited for awhile before driving. Was it drunk driving?

    >>> Paul_DrankBeer(2)
    '香港發展局局長陳茂波喝了2杯 500毫升 German Paulaner beer(@酒精濃度6%)之後駕車返寓所。(醫學會宣傳資料指一個人飲500毫升beer,體裡酒精已接近法定上限。)他等了一會才駕駛,我不相信他沒有醉駕。'
    return '香港發展局局長陳茂波喝了' +  str(beerno) + '杯500毫升German Paulaner beer(@酒精濃度6%)之後駕車返寓所。(醫學會宣傳資料指一個人飲500毫升beer,體裡酒精已接近法定上限。)他指等了一會才駕駛,我不相信他沒有醉駕。'

x=int(input("局長陳茂波喝了多少杯500毫升(@酒精濃度6%)的 German Paulaner Beer?"))
print (Paul_drankbeer(x));

:: 12 Oct 2012 ::

# -*- coding: utf-8 -*-

def CY_stepdown(stepdown):


    Return the stepdown date of CY, HKSAR
    >>> CY_stepdown(1)
    'CY請在 1 秒後下台'
    >>> CY_stepdown(123456789)
    'CY請在 123456789 秒後下台'
    return 'CY請在 ' + str(stepdown) + ' 秒後下台'

print (CY_stepdown(x));

:: 11 Oct 2012 ::

# -*- coding: utf-8 -*-

def NT_landuse(residential_area, highclass_golfclub):

    '''(int, int)->str

    Return the land usage of North East New Territories Development area
    >>> NT_landuse(167,170)
    '住宅發展用地面績 167 公頃, 富豪哥爾夫球場面積有170公頃. 那個比較大?是真的為香港市民?'

    return '住宅發展用地面績 '+ str(x) + '公頃, 富豪哥爾夫球場面積有' + str(y) + '公頃. 那個比較大?是真的為香港市民?'


print (NT_landuse(x,y));


::How it works::

Copy the code in text edit or notepad, save as Go to IDE or terminal to run the .py file. (see here:
Or simply just download the file in

:: Te

Comments are closed.