More selected projects

Fairy Garden

A heirarchical misery simulator for 0 players.

produced by: Elinor Castle


Fairy Garden is a representation of the power of inaction and withholding of resources upon lesbian relationships and individuals. Rather than focussing on direct and overt homophobic/misogynist hatred, the piece attempts to articulate a sense of being allowed to slip through safety nets, fail at fixable or preventable crises and become isolated by disinterest and privation. A number of spores are cultured on several procedurally generated mushrooms, allowed to move around the space follwing a given set of rules determined by their "polarity", and then those that are not killed off by the system come together to tell their story. As in real life not everyone lives long enough to get to tell theirs, so often the piece ends having only told a few of the possible stories for each group.

Concept and background research

My grandmother and mother are both avid gardeners, and my childhood was spent helping them create artificial landscapes on varying scales. I find myself treating micro/macro distinctions as only superficially important with regularity, so the fairy garden appealed to me in terms of projection mapping onto a tiered shape because it evokes a sense of material slipping from one plane to another, and of reality being warped by scale and conspicuous construction.

I wanted to be able to juxtapose the experiences of straight men and women against those of lesbians in this space and I found what I was looking for in terms of polarity within bullet-hell shoot-em-up Ikaruga. I decided I would treat the walls of my garden like semi-permeable membranes that would protect some spores more often than others, based on how closely they resembled those spores.

I have a fondness for mushrooms in particular because while they often appear to be individual fungi they have complex root systems that connect them to one another and a single fungus can cover huge areas underground. I chose neon green and blue as my spore colours in line with the most common colours of bioluminescent mushrooms, the glow of which is sometimes referred to as fairy fire.

The "stories" delivered at the end are taken either from personal experience or from that of close friends. A list is included below for reference as while the text is just visible in person, it doesn't show up well at all on camera.

Green/straight stories:

  • It's so nice you stayed local so we could support you, family is so important
  • So when's he popping the question? I can't wait to welcome him into the family!
  • Well we did save up some of it but mum and dad helped out too
  • Boyfriend sounds so juvenile. You know it's really serious when you can say fiancee or husband
  • We'll come and see you every day until the hospital releases you. You'll be fine
  • For such an adorable couple I'm sure we can work something out
  • I knew you'd fit right in here as soon as you came can in for the interview
  • I'm sure you can work it out you're so good for each other!
  • Why don't you move back in with us? Just until you get back on your feet.

Blue/lesbian stories:

  • I mean obviously YOU'RE okay it's the ones that rub your nose in it I can't stand.
  • What's so much more interesting on your phone than talking to your family?
  • If you don't get on with her why are you still with her?
  • You can do whatever you like in your house but while you're under my roof you'll behave like a lady.
  • Is your 'friend' coming?
  • Well when you take starting a family more seriously we might be more willing to support you.
  • Do you think it didn't work out because you actually like boys?
  • So you want a one bedroom flat, but for both of you?
  • I'm sorry, the flat has been taken. Yes, since this morning.

Fairy Garden runs in openFrameworks using the ofxPiMapper addon. The program creates a single frame buffer which is then divided up onto the nine visible faces of three stacked cubes for projecting. Mushrooms grow at random points along the cubes' vertical faces, and spores are then grown randomly along the underside of the mushroom caps. They have a 1/5 chance of being blue, roughly representative of the number of LGBT people worldwide. Spores and mushrooms are both handled in a series of vectors that hold information about position, speed, health etc (and correspondingly, brightness). When the spores are fully grown the mushrooms fade away and the spores begin bouncing against the sides of the cubes and pulsating by passing a noise variable to the circles they are drawn from. When a wall is encountered, a spore will either bounce or pass through the wall onto another shape. Due to the way the cubes are laid out on the 2d surface this involves some transposition of speed and location in some cases. When a spore collides with the floor of the cubes it takes a fixed amount of damage and bounces back. The safest place to be is the top surface of the highest cube, but it's only possible to stay there if a spore consistently passes bounce checks against its edges. This is particularly unlikely for blue spores which have considerably worse odds of passing said checks than green ones. When a spore's health value reaches zero, that spore is removed from the simulation. Early feedback to the piece was that some form of death animation would help clarify what was happening to those spores, and as a result the spores now explode like arcade enemies when they die. After a fixed period of time all remaining spores are counted, and any cube face with surviving spores of a given colour reveals a story corresponding to the surviving spore colours.

Future development

Currently the stories have a very limited degree of stochasticism and pull from a bank of only one story per side per colour; I think the piece would be more engaging with more stories. For a longer exhibition I'd like to have some kind of cyclical component to the story phase, or to make the piece less clearly divided into acts. I think having stories pop up intermittently throughout the "floating" stage would be more interesting than having a separate storytelling stage, and given more time all the spores will die, so perhaps combining the stories and mushroom growing stages into the floating stage as random events would work better. I felt very constrained during this project by openFrameworks' drawString() function for printing text, and by the colour palette of the projector, so I'd like to explore different ways of presenting that information more clearly. The original intention was to have the spores float rather than move in straight lines and bounce, but I felt that achieving both membrane interactions and that kind of movement would have been too time consuming within this brief. The intensity of the blue I chose didn't translate well to the projection map and I think the piece suffers both in terms of clarity and aesthetic for this, so I'd also like to spend some more time adjusting the colour palette.

Self evaluation

A huge obstacle to this project was not understanding how to use objects in C++. I've used them in javascript before but I didn't have time to teach myself how to do so here and I think using vectors for everything was a cumbersome compromise. I'm also profoundly aware that my work has one very thoroughly-planned and thematically dense section to the detriment of the other two. I spent time working on collision physics and art style for the spore phase for too long into the process; had I planned better I would have alternated between working at the same level of complexity with all three phases. This is most noticeable in terms of documentation and cleanness of code. Failing to use ofColor was also a mistake I had no time to rectify, as I spent a lot of time needlessly tweaking colour values later on in the project. I'm also conscious that this was a project that was made for other lesbians and I didn't put a lot of thought into how easily parseable it would be who do not share that experience; I think some of the stories are verging on cryptic without context, some grounding in materialist queer feminism or relevant life experience. I'm not convinced this is necessarily bad inasmuch as writing for a limited audience is not bad in itself, but this piece was ultimately made for general display and I'm not entirely happy with how the piece communicates a complicated intracommunal topic to the wider public. I think the piece conveys its themes adequately, but that having the stories only be revealed at the end detracts from that somewhat. I feel like this piece has scope for further development, though I don't have much interest in working with projection mapping further as I think there are more interesting and effective ways of presenting visual media. This is the most ambitious program I've written in terms of scope and I feel like I've learned a lot about planning and scaleability as well as the mechanics of coding in C++.


Sega 2001, Ikaruga, video game, Dreamcast, Treasure, Japan