### Posters for the We All Live in the Forbidden City exhibition

Here are the promotional posters for the We All Live in the Forbidden City exhibition in ArtisTree, Hong Kong.

### Do you really want to touch me?

Here is a short documentation video on the last exhibition I did for the opening of the CVA building in Baptist University.

### We All Live in the Forbidden City exhibition

I just came back from the official opening of the ‘We All Live in the Forbidden City’ exhibition in ArtisTree, Quarry Bay.

Here are some video documentation of the augmented reality display we have done for the exhibition.

### Context Free Art – Tutorial 9

These exercises take a closer look at the colour information, hue, saturation and brightness.

```startshape Bryan

path Line {
MOVETO {x 0 y -9}
LINETO {x 0 y 9}
STROKE {sat 1 b 1}
}

rule Bryan {
360 * {x 0.05 h 1} Line {}
}```
```startshape Bryan

path Line {
MOVETO {x 0 y -9}
LINETO {x 0 y 9}
STROKE {h 200 sat 0 b 1}
}

rule Bryan {
400 * {x 0.05 sat 0.003} Line {}
}```

```startshape Bryan

path Line {
MOVETO {x 0 y -9}
LINETO {x 0 y 9}
STROKE {h 0 sat 1 b 0}
}

rule Bryan {
400 * {x 0.05 b 0.003} Line {}
}```
```startshape MyShape

rule MyLine {
TRIANGLE {s 0.016 1 sat 1 b 1}
}

rule MyShape {
360 * {r 1 h 1} MyLine {y -0.60}
}```

### OpenCV people detection (v.2)

Here is an enhanced version of the OpenCV people detection demo program using the sample.

### Context Free Art – Tutorial 8

By using the same square, we further experiment with the various options in the STROKE command.

```STROKE {p miterjoin}

STROKE {p roundjoin}

STROKE {p beveljoin}```

```startshape MyShape

path Shape1 {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
STROKE {p buttcap}
}

path Shape2 {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
STROKE {p roundcap}
}

path Shape3 {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
STROKE {p squarecap}
}

rule MyShape {
Shape1 {x -1.5}
Shape2 {x 0}
Shape3 {x 1.5}
}```

### Context Free Art – Tutorial 7

We continue the study of path command. Take a look of the closed shape, a square.

```startshape MyShape

path Line {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
LINETO {x -0.5 y 0.5}
LINETO {x -0.5 y -0.5}
CLOSEPOLY {}
STROKE {}
}

rule MyShape {
Line {}
}```

If by any chances, you type the wrong position for the last end point or there is rounding error after a sequence of calculation, you may end of with:

```startshape MyShape

path Line {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
LINETO {x -0.5 y 0.5}
LINETO {x -0.45 y -0.45}
CLOSEPOLY {}
STROKE {}
}

rule MyShape {
Line {}
}```

Note the CLOSEPOLY command will connect an extra line segment to close the shape if there is a gap between the beginning and the end points. In case we want to get rid of the error, we can use the CLOSEPOLY command with an extra parameter align.

```startshape MyShape

path Line {
MOVETO {x -0.5 y -0.5}
LINETO {x 0.5 y -0.5}
LINETO {x 0.5 y 0.5}
LINETO {x -0.5 y 0.5}
LINETO {x -0.45 y -0.45}
CLOSEPOLY {p align}
STROKE {}
}

rule MyShape {
Line {}
}```