Pages: 1 2 3 4 5 >>


Paradise Interrupted - Performa 2013

Workshop and performance
Performa Institute - November 2013

Paradise Interrupted is an opera in development that presents a world activated by a lone voice in search of an unattainable ideal. For Performa this opera was presented as a workshop in which Jennifer Wen Ma created a large-scale three-dimensional wall garden in paper, had a public workshop of the opera in progress and concluded with a couple of performances by Qian Yi set within the paper garden and interactive projections on the garden.

I mainly explored the interaction between Qian Yi's voice and some abstract visuals that were rendered as a placeholder for the actual visuals that will be used.

Closeup of a projection test on part of the garden and Marianna

The images were produced by analyzing tone and volume. Volume determined the size of the images, tone determined the complexity of the images and tone change determined the movement (direction and speed) of the images.

I was the Creative Technology Director for this project. The whole team:
Jennifer Wen Ma, concept and visual direction
Qian Yi, Kunqu performer
Huang Ruo, composer
Xiao Lihe, lighting designer
Matthew Hilyard, stage design
Xing-Zhen Chung-Hilyard, costume design
Melissa Kirgan, costume design
Marianna Peragallo, coordination and production

Paradise Interrupted Workshop is co-presented with Witte de With Center for Contemporary Art, and supported by the Asian Cultural Council.


Water Cube!

This is a great project i worked on by Jennifer Wen Ma ( I did the creative technology direction )
We are controlling the individual "bubbles" surrounding the structure. Each day has it's own different animation based on the I-ching, modified by the mood of the day on Weibo, the Chinese twitter.

The Water Cube is now the Beijing National Aquatics Center. It was originally constructed for the 2008 Summer Olympics in Beijing and later converted into a water park.
The structure is a metal space frame holding up a special plastic film (IETF)shaped into bubbles. Each bubble is illuminated from the inside with rows of addressable RGB LED lamps.

Close up of the water cube. You can almost see the individual lamps shining up from the bottom of each bubble

Since each bubble is addressable we can use the water cube as a gigantic low-resolution screen.

So each day a program calculates what animation the day brings based on the I-ching and modifies the animation according to the total mood of the day on weibo. For example the day's animation might be thunder. The mood can make the lightning flashes more frequent, more intense and brighter (or the opposite)
This makes each animation a unique combination of the nature of the calendar day plus the experience of the people that lived that day.

How we do it:

Photo with The two main developers from the Beijing team and Jennifer

Zhao Fei in the foreground was part of the original water cube deployment team during the Olympics and is in charge of the final step of converting the renderings to the specially designed control interface. He is also in charge of the hardware. Zhao Liang , behind him, is in charge of fine tuning the software that generates the daily renderings. In the back Jennifer provides Zhao with guidance. To the right is one of the indefatigable video crew documentarians that followed us around close to 24 X 7

Zheng Jianwei (Lighting Designer) Zhao and Jennifer discussing an effect. You can see various Water Cube Lighting Control systems on the monitors

I setup a framework that would read the data from Weibo and the Calendar as an XML file, generate the animations and output them into the Water Cube format. This was all done in a great real time video synthesis toolkit called vvvv (check them out )

Jennifer's favorite patch. It reminds us of a Sol Lewitt. It is actually controlling the joints between a line of particles that we use to generate waves (and yes vvvv-ers a recursive subpatch could have been used, but this is so purty!)

So we have the I-Ching telling us what the nature of each day is, say Thunder, or Fire, Water ... We also have the day's emotional content in China. The day's emotion is read by scraping emoji (emoticons) posted on Weibo

Liang Mao Yin doing the final touches to the Weibo scraping program while Zhao and Cindy Ma look over his shoulder in awe

The emotional content affects the day's nature. For example if today is Heaven (which is symbolized by a white circle) and the day is sad, the circle will grow very little and very slowly. If instead China had a great day, the circle grows quickly to a very large one.

Heaven. The top is turned off during this test.

Programming this was a trip. We normally render animations in High Definition, but here we were working with a kind of very low def as each side is 72 giant bubbles long. And while the bubbles themselves have dozens of lamps in a row along the bottom of each bubble, and each lamp is individually addressable, the effect is that the bubble lights up with one color, or a very gentle gradient. To complicate things further the bubbles do not line up so straight lines are squiggly! On the other hand, basic geometric shapes displayed on the water cube as wonderful abstract images.

For example: Fire starts like this in vvvv:

and ends up like this:

Needless to say I'm very happy with the way this project happened, and I loved working with Jennifer and all of the Beijing team. I can't wait to get back to Beijing to spend some fun times with them.

For more about this project please see Jennifer's website. Also there is a great post about it on The Creators Project.
Jennifer Wen Ma
The Creators Project

ps. featured on CNN! Fareed Zakaria's The last word


LaForce + Stevens, Director of IT and Creative Services, New York City

04/2009 - present

  • Manage the IT department and the Design Center
  • Sys admin at large, keep the servers running, make new servers, develop applications (java, php, mysql and VB), webmaster the site, manage the intranet and oversee the helpdesk.
  • Manage the Designers, develop new services, oversee the art production


Reproduction Is Prohibited

Reproduction Is Prohibited Mirror
Guillermo Acevedo, b. 1966*

Reproduction Is Prohibited, 2007

Software, cameras, sensors, screen, and wooden furniture

This piece is contemplative, and at times reveals just how hard the machine is trying to see, to truly understand what is going on.
When the viewer approaches the piece he first sees a mirror, a projection showing the room he is in. But as he gets closer the mirror refuses to show the viewer's face, showing his back instead.
The installation talks to Magritte's painting, but while Magritte was talking about the gaze of the collector and what is behind the painting, this one adds the gaze of the painting itself, while keeping up the conversation about the human condition and the substance of art.


Email Signature for Outlook

I do lots of little VB coding to automate tasks at work. Work is primarily a windows environment.

I was asked to make a standard signature for everyone in the office.
I thought I could do it at the exchange server.
But you can't.
I though you could do it via a Group Policy
Forget it.
I then thought I'd find where it is stored in the Registry.
No dice, the registry key changes with different outlook versions.

Outlook signatures are stored locally somewhere in the current user's hard drive. Which explains why they lose the signature when changing computers.

We have Active Directory going on, so most of the data that is needed is stored on the active directory / LDAP

So I wrote the following and have it run each time at logon (good ol' logon script):

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")

strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)

This just takes advantage of the fact that the logged in user is known. So we connect to LDAP as that user.

strName = objUser.FullName
strTitle = objUser.Title
strDepartment = objUser.Department
strEmail = objUser.mail
strPhone = objUser.telephoneNumber
strFax = objUser.facsimileTelephoneNumber
strMobile =
strst =
strSreetAddress = objUser.StreetAddress
strPostalCode= objUser.PostalCode
strl= objUser.l

Get all the data you need from the LDAP

BTW I found a great site with more LDAP to outlook info than you can shake a stick at:

Set objWord = CreateObject("Word.Application")

Here is the tricky part. Yes word. Use word to make and set the outlook signature. Not outlook. You'll go crazy trying to figure out why it doesn't stick. But it won't. You code it so it makes the signature in outlook, it looks good, next time you log in it is changed.

Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection

Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature

Set objSignatureEntries = objSignatureObject.EmailSignatureEntries

Before we go on: We have the extension instead of the phone number (we all have the same number in this company, unless we are in the second office, which all has the same number as well)

Formatting is optional, but here is how you format word in VB:

objSelection.Font.Name = "Arial"
objSelection.Font.Color = wdColorGray50
objSelection.Font.Size = 8
objSelection.Font.AllCaps = True

We have 2 offices, some people want the fax number on it, some want a different fax number, some want their mobile number.
So you do lots of conditionals.. Big deal (I used the state as an indicator of which office the person is at)

objSelection.TypeText strName & " | Company Name | "
objSelection.TypeText strSreetAddress & " " & strl & " " & strst & " " &strPostalCode &" | "
objSelection.Font.Bold = True
If strst = "NY" then
objSelection.TypeText "P: Phone number 1 X "

objSelection.TypeText "P: Phone number 2 X "
End If
objSelection.TypeText strPhone & " | "
objSelection.Font.Bold = False

If strFax <> "" Then objSelection.TypeText "F: " & strFax & " | " End If
If strMobile <> "" then objSelection.TypeText "M: " & strMobile & " | " End If
IF strst ="NY" Then
objSelection.TypeText "Los Angeles: Other phone number 1"
objSelection.TypeText "New York: Other phone number 2"
End If

Set objSelection = objDoc.Range()

objSignatureEntries.Add "AD Signature", objSelection
objSignatureObject.NewMessageSignature = "AD Signature"
objSignatureObject.ReplyMessageSignature = "AD Signature"

objDoc.Saved = True

That's it
Thanks scripting guys for most of the code

1 2 3 4 5 >>