Preliminary Testing

IMG_3042

IMG_3050

IMG_3047

25 JULY: me and dominic conducted the first preliminary hardware tests within the actual physical box which will be used in the exhibition. the following discoveries were made:
  • IR light reflects somewhat differently from visible light. rather than defusing in the same way that visible light usually defuses on normal surface, it bounces straight off some surfaces which might be expected to absorb visible light, like cardboard
  • even though you cannot see IR light, IR LEDs still get very hot if left on for long. also, projectors get very very hot as well, so computer fans and good ventilation/air conditioning will be ESSENTIAL in a DIY tangible table setup
  • infrared light hotspots (insufficient diffusion and spotlights instead) adversely affect the detection of fidicuals
  • accidentally sticking your finger inside a computer fan does not actually result in injury or death
  • tracing paper will warp with moisture over time. an additional acrylic sheet is essential for holding down tracing paper and for improving sensation of touch on the touch surface.
  • using developed film as a "poor man's IR filter" is not effective enough for the use of a tangible touch table which wants to detect fidicual symbols. purchasing specialised IR filters and additional focal lenses will be crucial to the success of the project.


IMG_3071

29 JULY: After significant wrangling and wrestling with Singpost's Speedpost service, I received the 2nd PS3 eye camera with m12 mount with 850nm IR filter and set of lenses ranging from 2.8mm to 16mm. (these were purchased online from peauproductions, which stocks a lot of essential equipment for DIY touch surfaces)

With the 16mm lens, reactivision can now detect 3cm fiducials at a range of 1 metre!




footnote: i assumed i needed the BIGGEST lens initially, but later dominic showed me that the smaller lenses could SEE MORE, and the final lens we went with for our table was 3.6mm

Bridges on the Singapore River (2010)

IMG_3030

  1. Kim Seng Bridge 金声桥 (Vehicular Bridge: Kim Seng Rd) [This marks the source of the SIngapore River, named after Peranakan philanthropist Tam Kim Seng, whose donations help pay for the construction cost of this bridge.]
  2. Jiak Kim Bridge 若锦桥 (Pedestrian Bridge: Behind Zouk) [Completed 1999, CPG. Built to develop Roberson promenade by improving connectivity between both sides of river around Roberson Quay Area]
  3. Robertson Bridge 罗拔申桥 (Pedestrian Bridge: ) [Completed 1999, CPG. Built to develop Roberson promenade by improving connectivity between both sides of river around Roberson Quay Area]
  4. Pulau Saigon Bridge 浮罗西贡桥 (Vehicular Bridge: Saiboo St) [Originally built in 1890, demolished in 1986, rebuilt 1997]
  5. Alkaff Bridge 阿尔卡夫行人桥 (Pedestrian Bridge: By Roberson Promenade, behind Mohammad Sultan Rd) [Completed 1997, CPG. Built to develop Roberson promenade by improving connectivity between both sides of river around Roberson Quay Area, decorated as "Art Bridge" by Pacita Abad with STPI]
  6. Clemenceau Bridge 克里门梭桥 (Large Vehicular Bridge: near UE Square and Clemenceau CTE exit) [Completed 1920, named after French Prime minister]
  7. Ord Bridge 渥桥 (Pedestrian Bridge: Liang Court) [First built 1886] Steel Truss bridge built to replace footbridge named ABC Bridge which was also known as Ordnance Bridge. Named after Sir Harry St. George Ord, first british Govt of Straits Settlement.
  8. Read Bridge 李德桥 (Pedestrian Bridge: Clarke Quay and Riverside Point) [Previously Merchant Bridge which had to be rebuilt higher to allow ships to pass, Read Bridge was rebuilt in the same spot in 1889]
  9. Coleman Bridge 哥里门桥 or "Yi ma lo khiu" (cantonese for bridge at second road) (Vehicular Bridge: New Bridge Road, MICA to The Central) [2nd bridge built over Singapore River in 1840, made of bricks. Replaced in 1865 with wooden bridge, replaced with iron in 1886, but unable to cope with increasing traffic flow, replaced with 1986 concrete bridge which retains some decorative elements from iron bridge. Previously known as New Bridge thus the name of New Bridge Road.]
  10. Elgin Bridge 爱琴桥 or "Thih Tiau Kio" (hokkien for iron suspension bridge) (Vehicular Bridge: North Bridge to South Bridge Rd) [First and unnamed footbridge on Singapore river which was present when Raffles first landed. Replaced by wooden drawbridge in 1822, a footbridge in 1843 and rebuild int 1929 and named after Lord Elgin, Governor General of India. As it was first bridge ever, the roads are named North Bridge and South Bridge accordingly]
  11. Cavenagh Bridge 加文纳桥 (Pedestrian Bridge: ACM to Maybank Tower and One Fullerton) [First built in 1869, originally was to be drawbridge but on completion was only suitable as fixed structure. overloaded in 1880s and resulted in need to build Anderson Bridge. Lighting was added in 1990s]
  12. Anderson Bridge 安德逊桥 (Vehicular Bridge: Connaugh Dr) [First built in 1910 to replace Cavenagh Bridge and to handle heavier traffic, named after Sir John Anderson, Governor of Straits Settlement]
  13. Esplanade Bridge 滨海桥 (Large Vehicular Bridge: Nicoll Highway leading to Esplanade Dr) [Completed March 1997 / Built to provide faster access from Marina Centre/Downtown Core to Shenton Way and CBD]
  14. The Helix Bridge 螺旋桥 (Pedestrian Bridge: Marina Bay) [Completed 24 April 2010]
  15. Bayfront Bridge 海湾桥 (Vehicular Bridge: Bayfront Avenue) [Completed 24 April 2010]


Compiled with the help of Mighty Minds Street Directory 2009/2010, Google Maps, Streetdirectory.com, rednano, Wikipedia, and Stephen Dobb's "The Singapore River : A Social History 1819-2002"; the chinese names were from 韩山元's "新加坡河: 讲不完的故事" and a very interesting chinese blog by the name of Kagawara Miss Flora.


Other Singapore Map Trivia:
  • The 2009/2010 edition of the Mighty Minds Street Directory erroneously named the "Pulau Saigon Bridge" as "Saiboo Bridge". While trying to figure out why my map reflected a mysterious Saiboo Bridge I discovered this helpful article about the Pulau Saigon Bridge
  • Gothere.sg and Google Maps do not depict or show the existence of ANY pedestrian bridges on their maps. They do show vehicular bridges, but do not name the bridges, and only label the river crossings with the road names.
  • Streetdirectory.com and Rednano.sg do show the names of all bridges, both pedestrian and vehicular.

Regular Expressions and L-Systems

Regular Expressions refer to the use of a formal language which can be read by a processor which examines the text and can identify what parts match the provided phrases. Its like a uniform way to parse text and to get information.

AS3 has a RegExp class, for which there are also characters, metacharacters, metasequences(characters or sequences of characters which have special meaning in regular expression), and flags and properties (settings for the matching of the regular expressions).

You can probably see where I'm going with this: if we are going to make an L-system generator, RegExp comes in rather handy:


A sample grammar could be like

F : draw straight forward
L : move forward by this algorithm
+ : rotate right by R degrees (clockwise)
- : rotate left by R degrees (counterclockwise)
[ : PUSH [saves current position, starts new branch]
] : POP [resume last saved position, starts growing again]

N : number of generations
R : rotation (degrees)
X : start point

! : reverse the rotation angle
< : increase line segment length
> : decrease line segment length

my observation from playing around with another recursive ruleset generator, contextfree, is that putting odd shaped boxes on the ends of L systems of 90 degrees gives the resemblance of a city. the end of the "pop" that is where the leaf or cherry of the L system tree is usually placed, so that is where generic box-buildings are placed (if all buildings were to be generic rather than landmarks)

In a similar way one could create a notation for the algorithms for dérives and other exploratory walks around a city:

W : walk straight forward ignoring any turns
+ : next right turn
- : next left turn

EXAMPLE: WWW+W-
(walk down three streets, take a right turn, walk down one street, take a left)

Additional rules could be added, such as for staying on right side or left side of the road pavement, or for the direction that one is to observe, or the manner of one's walk (running, brisk walking, slow meander).



I am beginning to understand why when I first met Vladimir to ask his advice on building a generative map for a tangible touch table, he asked me whether I could do Natural Language Processing. It so happened that a few weeks before that I had just picked up a book on the Natural Language Toolkit and tried to play around with it out of curiosity, so the idea was not alien to me.

Generative code is based on grammars or rules which must be followed - basically in order to program anything, one first has to learn or create the language. It sort of makes me wish I took more linguistics classes back at uni. Linguistics! Something that could have combined both my love for english and my interest in learning programming!



Other links and libraries:

- More info on RegExp here: Regular Expressions Info
- Collision Detection: Port of Grant Skinner's Collision Detection in AS3
- Collision Detection: Corey O'Neil's Collision Detection Kit (CDK) [Example]
- Isometric Projection: Isometric Library for creating isometrically projected content

Infrared LED Lights

IMG_3017

Infrared LED Lights
S8030-30-C-IR (850NM) + 12V power source


These will have to be pointed to the white walls of the inside of the box in order to diffuse the IR light onto the rear projection. We have bought 2 lights at the moment but when we finally can test it out in the box itself, then we will know whether 2 will suffice or not.

As these pre-assembled lights with power source are more commonly used in conjunction with surveillance cameras, they have a light sensor which automatically turns them off when there is sunlight, and turns them on only when its dark. As we won't need this feature, we will probably block out the light sensor with electrical tape.



I am getting a backup and preassembled PS3 Eye camera from the incredibly helpful Peau Productions as I am seriously very worried about camera burnout considering the length of time it will be on in public, and because I can already see that the OEM (original equipment manufacturer) lens is unable to focus properly on my fidicual symbols. With a preassembled PS3 Eye with m12 mount, at least if I already have a backup camera I can quickly remount the new lens on the other camera.

There have been some other delays with my production timeline, and with only 46 days to go, I am very very worried about many things.

Installing Reactivision Properly

IT EXISTS...

Above: Round Reactable at NTU ADM


This afternoon I met Yanying, one of the people who worked on the above round reactable which I saw at NTU, and she was kind enough to give me lots of advice on the process of building and testing such setups. One of the things I've learnt was that I really should think about including some reciprocal visual/audio feedback for all the interactions so that users know that their interaction is being registered by the machine.

As for more mucking around with using the PS3 Eye with Macam and reactivision, I was going to test some parts of the physical setup on a macbook tomorrow (as I was a dunce and got the wrong connector), so I reinstalled reactivision and macam on my 4 year old macbook.



For my future reference... Mini DVI Versus Mini DisplayPort
I've given up and bought the Mini DP for SGD17 on ebay

Do note that one step which is very easy to miss in the installation process of macam is the proper installation of the quicktime component. Boy I almost had a heart attack there when I opened up reactivision and THERE WAS NO MACAM PS3EYE. But then i realised that installing macam alone is not enough. One obviously has to install the quicktime component in order for all programs to detect the camera.

After recovering from the unnecessary apoplectic fit you just had when you thought that your USB camera might never ever be detected in reactivision and your reactable might explode, quit all the related programs which are currently open. Go to the Macam installer again. Drag the macam.component into "/Library/QuickTime".


Then restart reactivision and press "O" to see the following dialogue, which shows that the PS3 Eye can indeed be detected in reactivision.


Infrared light is present in sunlight - so that is me in a darkened room, with my face lit mostly by the evening sun. Out of the 1 kW/sq m of irradiance sunlight sends down to earth, apparently 527 watts is infrared radiation (light which is visible to this IR camera), 445 watts is visible light (the light we can see), and 32 watts is ultraviolet radiation (light which causes sunburns and skin cancer).

Isometric Map

I have been drafting a huge map of the Singapore River area in preparation for a psychogeographical game to be conducted during the exhibition. While playing with googlemaps and crosschecking to see if i missed out any other landmarks this evening, I noticed that google earth is the same as google satellite except with a little bit of perspective to it.



Google Satellite



Google Earth



Animated for comparison


I've also figured out that what gives gothere.sg its unique look (and sets it apart from the other free singapore map services out there) is its additional 0.5 dimension to it, which helps provide some degree of perspective. Interestingly before this realisation, I had already decided that the map would have to have some manner of "projection" like Erwin Raisz's awesome handdrawn maps.



gothere.sg


Erwin Raisz is an American cartographer famous for the detail and readability of his maps, and for having created an armadillo-like projection which was similar to an isometric projection. Likewise I think the large map I draw will need to have some awareness of projection as it improves the readablity of maps - perhaps something like the infographic style or isometric projections which i like so much?

From an entry in my blog last year: isometric animations which i adore.









Projector Lens and Focal Length

IMG_3001


Yesterday I borrowed the Substation's projector and took it home to check out its specs. The model is a ViewSonic's PJ503D DLP.

Brightness: 1500 ANSI Lumens
Size: 26.42cm x 10.92cm x 21.84cm
Projection Screen Size (Diagonal): 96.52cm ~ 381cm
Throw Distance: 5ft. ~ 19.7ft. (1.52m ~ 6m)
Throw Ratio: 2:1
Vertical Keystone Correction: +/- 7 Degrees
Lens Aperture: F/2.57
Focal Length: 22.2 mm
Resolution: 800x600

Bin gave me a link to calculate the Projection Lens: Projection Lenses Questions and Answers with formulae.


Unfortunately after playing with numbers for a while I realised that my mathematics is a failure. I have to admit I didn't even take mathematics at 'A' levels. Good lord. But fortunately, there are things called calculators. So in the end I gave up fiddling about with the stupid numbers and found an online calculator:

Via Projection Calculator Pro:




From these calculations it seems to suggest my projector may not cover the whole surface if i want to keep it focused and I get a throw distance of 2.13. But what difference will a mirror make to the projection? I do not know... As a lot of things have already been set in motion, there is nothing to be done but to test the projector setup on Sunday.

Another link which might be helpful in understanding projectors is: HTRGroup's Projector Facts


Footnote: After testing it on 25th July, it became clear that apparently i needn't have worried as focusing the projector was a breeze, with a flick of the focusing dial on the projector. With a mirror setup as the projection throw is bound to be over 1.5m anyway due to the size of the box.

PS3 Eye Modified for Infrared

IMG_2996


Good news, world. After the previous night's lows and minor setbacks, this is something akin to a miracle. After Dominic's miraculous and patient disassembly of the camera, following the faithful instructions of the following videos, tonight there has been success in modifying the PS3 Eye for IR light!



Those who attempt to take out this camera may want to note that it is very hard to open the casing, and that the removal of the lens may benefit from the use of a slightly heated metal blade or tool to cut and melt the plastic around the lens area until it can be gently popped out - brilliant method which Dominic thought of.

We cut up an old negative which had been developed, popped it inside the lens, and then tested it with a TV remote. It picked up the flickering IR signal very clearly.

Other notes:
  • Noticed a small cloudy pattern - not sure if my negative had a cloud in it which was not so visible to the human eye. Must ensure that negatives are actually totally blank and not just one of those awkward pointless frames of blue skies with faint clouds which I am so fond of taking.
  • I will have to build a new housing for the camera as much brute force is required to open the housing and its nearly impossible to put back together.
  • Purchasing online may be more tricky as there are apparently two types of cameras out there (US vs Non-US, both with different lenses). Having bought it from the internet, I was lucky that my camera was the good type which I needed in particular for this project.
  • One sheet of negatives may not suffice; will need to replace the negative and put multiple sheets of cut negatives inside.

Besides modding this camera, there are many more unforeseen horrors to be tackled, but at least the camera is actually working after initial attempts at modification!

IMG_2997
The CMOS Sensor

Flash AS3 with TUIO - An Option?

I will have you know that I am beginning to capitulate on that decision to use Processing. Why was I going to use Processing? Because I thought it was the obvious choice to use with TUIO/Reactivision. And a few months ago while researching it, I turned away from using Flash AS3 because in the first para of that page it said Flash does not support TUIO/UDP and that made me very nervous. Very Nervous! What were all these confusing acronyms! I don't even code in AS3! What I read earlier also somehow gave me the impression that I'd have to use Processing to get the data, and if i wanted to use Flash, I'd have to make Processing talk to Flash on top of all the confusion! More confusion!

But, on rereading it yesterday on the advice of people more experienced with this than me, it seems like there is a way to use Flash/AS3 with TUIO. So, I had to investigate it, even though I don't know if I should be going so much into the technicalities.

UDP Flash-LocalConnection Bridging for TUIO/OSC Streams from Georg Kaindl on Vimeo.


What is UDP? UDP stands for User Datagram Protocol. Datagrams are like the little packets of information. UDP is quite simple is that it just transmits the datagrams without confirming or having to hand-shake the other side or anything, so it is good in cases where we don't mind losing a few packets along the way as opposed to making it all slow and laggy by having a two-way communication between the transmitter and the receiver.

How udp-flashlc-bridge works? it listens on the udp port and sends packets via flash Local Connection. so one could conceivably send TUIO tracking data to flash.

As I have no idea what I am doing (but it is important to learn how to do everything myself if I want to get anything done) I am going to take meticulous notes on everything as I try to figure it out. So please bear with me.

So as a simple test I downloaded udp-flashlc-bridge and ran it from Terminal.



Next, I ran tuiotest.swf while running reactivision and waving fidicual 1 in front of my camera, and flash DID receive the specific TUIOobject data. It also seemed very responsive.



What is TUIO? TUIO stands for Table-Top User Interfaces Objects and it is just a protocol for table-top tangible user interfaces. It was implemented using OpenSoundControl (OSC) so technically it is just a standardised way of presenting OSC information in a way that would be logical for use in TUIs.

in order to understand what all that frightful gobbledygook is about, i took a screenshot of the table on the TUIO page for easy reference. each packet which has the following attributes:

Picture 9


so you can interpret from the chart how i had taken the fidicual in and out of the camera range for about nine times by the time i had started running tuiotest.swf (based on sessionID increasing each time), and how i had moved it about (based on velocity and motion accelerator variables changing)...

in the course of trying to make the swf, i also learnt some things which will also reveal to anyone reading this blog how terrifyingly unfamiliar i am with AS3:

1. so i foolishly wrote a public class on the timeline
2. then it returned an error, saying public class must be within a package
3. then i put it inside a "package"
4. then it returned an error, saying the package was "nested"?
5. so i put the public class in a separate as file and used it as "include"
6. error persisted
7. then i used "import"
8. and then it worked

my layman's conjecture from this is that, apparently classes must be imported in with "import", upon which flash automatically puts them into a "package"? what i also understand is that up to this point i know very little about object oriented programming. goddam. i am trying to approach this like it's a manageable, reasonable thing i can figure out if i try hard enough.




USEFUL LINKS:
- Building your first multitouch app in as3

PS3 Eye

IMG_2910

Playstation Eye for PS3 (USB)
Video Capture: 640x480
Field of View: 56˚ to 75˚ FOV zoom lens
Frame Rate: 60fps (640x480) or 120fps (320x240)

It finally came in the mail. Although this was not any particular milestone, I should add that I spent a good 15 minutes SIMPLY TRYING TO OPEN THE PACKAGING. I just had to say that this reminded me of the time I bought a £3.99 blender from Argos and spent more time wrestling with the plastic packaging and reducing the hard plastic shell packaging to disorderly splintery bits with a blunt scissor in the process of trying to extricate the goddamn product - and then everyone said, "But why of course, you bought it from Argos..." Why do companies fashion such impenetrable packaging for certain electrical/electronic products?

I installed macam and it works with my mac without a cinch. Interestingly, I can even run both my mac's inbuilt camera and the PS3 Eye (via macam) at the same time?

twocamerascropped

Uncanny resemblance of the word "macam" with the slang word "maciam". Brings unexpected local flavour to this rather functional program. "MACIAM NOT COMPATIBLE THEN HOW?" That is my greatest fear. Or do I have faith in information from the internets?

Next: to test this particular camera for use with reactivision, and to modify it for infrared.

A Social History of the Singapore River

Books


I acquired a copy of Stephen Dobbs' "The Singapore River: A Social History 1819-2002" because I saw a quote about the Singapore River as a Dead Snake in a recent seminar (which I was sadly unable to attend). The quote is credited to Ow Chin Seng, treasurer of the Lighter Owners Association (1993) - who gave a lengthy interview about the Singapore River in 1993. This was a sentiment echoed by letters to the Straits Times that the removal of the lighterage industry (which had been rendered redundant by the work of the PSA) had subsequently rendered the river as "soulless"...

Spanning over 80 years of history, Dobbs focuses the bulk of his study on the life of lighters workers working directly on and along the river (including their migration patterns). I had not known that the jetties had been separated by dialects, and the book provides a sensitive study of riverside life (family life? vice? opium? new years? all in!).

The last three chapters are dedicated to the modern "post-clean-up" River, and this is where it gets a lot more ambivalent. One might go so far as to describe it as "speculative"? If a thing no longer looks the same, does it still have the same meaning? In any case, the current shape of the river is now actually nothing like the original shape of the river...



Andre de La Varre's Crossroads of the East 1938
"The Chinese believe their boats must see where they are going,
hence they are painted with huge eyes..."

Orchard River And Other New Singapore Rivers

I did a radio interview on "The Living Room" on 938LIVE last week - much thanks to the Substation for arranging this. You can stream it from that link or download it here (18MB).

Meanswhile, due to work overload, things have been going a bit slower than I would have hoped. So far, I've sketched out the shape of what the setup will be like and the carpentry will be done soon.





I'm waiting for the PS3 Eye that I've ordered to arrive and after that I will need to find someone more nifty with disassembly to help me / guide me in removing the IR filter. Perhaps it is idealistic to hope that we can do this entirely with guides and information found on the internet, but CAN WE DO IT PLEASE!



In other news, there have been heavy rains here, with apparently 60% of the entire month of June's rain within a 3 hr rainfall occurring on 16th June - resulting in flash floods in Singapore, in unlikely places such as Orchard Road. thus causing it to be dubbed as "Orchard River".



Now it has become clear why underground MRT stations here have raised entrances - to prevent flooding! Also, in videos on youtube, you will notice that the water was flowing in the direction of the cars or away from Delfi. Here is a map from Stomp explaining the location of the blocked drain:



This is a picture of the singapore river later that evening, the same brown colour as "orchard river", instead of its normal army camouflage green. I contemplated going down to town to see how wet it was in orchard, but, seriously... no.

Image024

Followers