i've attended two theater pieces this year (thanks to [livejournal.com profile] _tove alerting me to them) in the category of "immersive theater," i.e. theater where the audience shares the "stage" with the actors, and multiple concurrent things are happening:

Her Things:
Her Things is an immersive theater and art piece -- a live video game, really. Participants will be invited to rifle through the objects and papers of "Poor Willa," a recently deceased turn-of-the-century recluse, to discover her story and more about her fate. Participants will be allowed to fully explore the space, touch and read artifacts in search of clues, interact with actors, as well as bid on certain objects by sharing their own memories as currency.


Tamara:
The barrier between spectator and actor is dissolved. TAMARA has been described like an elaborate movie set, with each audience member poised as a camera. The audience certainly has choices to make, journeying from room to room in Rodef Shalom Congregation, a magnificent stand-in for Il Vittoriale degli Italiani. As characters leave a room, which will you follow? Or will you wait and see who shows up? As in life, each is the star of his own story and the stories intersect (think Downton Abbey) with the audience free to drop in on their most dramatic moments.


the approach Her Things took to storytelling reminded me of Gone Home's: allow intimate interaction with the physical space to uncover a story piece-by-piece. it also included and encouraged interacting with the characters, meaning there was a lot of improvisational dialogue. this approach made sense for the "single room" stage, where all participants could observe all action simultaneously.

Tamara, on the other hand, took an approach to storytelling which seems like it should be possible in digital games, but i haven't really seen it. i think it's because what it did was, to put it controversially, anti-interaction. it wasn't about giving the viewer control over the course of the story -- it was just offering a finite choice at each character exit: stay or follow? so you could tailor your individual perspective on the story, but the play had a static script. it was a concurrent program, but not a reactive one.

i believe i've seen interactive fiction authors discuss the desire to make, if not the actual existence of, games that work this way, more or less -- at least following the general idea of "the player can switch between the perspectives of different characters throughout."

incidentally, i liked the experience of Tamara much, much more.
i've noticed some similarities in
1. playing games that involve a lot of long-term caretaking, specifically ones you play on devices that are more or less always on your person, such as Ingress and Kim Kardashian Hollywood and the iOS Sims game
2. Quantified Self sorts of ideas: making numeric systems out of personal self-care (exercise, work, sleep, etc.) through, effectively, body augmentation, and using those data to arrange goals and analyze progress.

for example, the process of tracking self-powered movement (walking, running, biking) with endomondo on my phone leaves marks in a digital space, which i then track and do some analysis on in a spreadsheet; in Ingress, my physical movement through space, punctuated with some calculated button-pressing, leaves marks in a digital space measured by the game's objectives. none of these activities is ever about "winning" in a "finishing" sense; it's all about maintenance and learning new strategies and building new habits.

all of these things use time as currency. in the kardashian game, taking actions requires energy points, which regenerate with time. in ingress, the same thing happens with XM, although you can also get more by moving through space. in the sims, you make progress in the game by completing actions, which take various amounts of time during which the sim doing the action cannot do anything else. (every action is atomic; there is no multitasking. even long-term tasks like baking and gardening completely occupy the sim's faculties to the point where another sim cannot, say, talk to them during this process. this is mitigated by the fact that you control a small army of sims and can be clever about dividing their labor.)

if ingress is Augmented Reality then so is QS. these are both ways of giving us access to the same space we didn't have before; ways of superimposing new layers of information on a structure that lies unchanged.

sometimes i refer to games/activities like this as "gardening projects." they are played with spurts of concentrated, calculated action, followed by periods of inattention and patience. you can only influence initial arcs of progression, nudging things in certain directions using predictive intuition, rather than directly control their course.

imposing a quantified/gamified structure atop my own life has been helpful to me in the past. in the months after my mom got sick, i had a spreadsheet i named "LIFE RPG" where i gave myself points for daily aspects of life: cleaning, socializing, working, exercising, and creating. they were instructions that felt external and thus trustable. it made an answer to that sinking feeling accompanied by the question, "what am i supposed to do?"
i wrote down some encouragement to draw things, mostly with myself as the intended audience, but maybe you will find it inspiring too )
let me tell you about some video games

naya's quest (browser, free, a coupla hours i guess), terry cavanaugh's new puzzle game about reasoning about nonsensical* isometric 3-space. it has a fantastically just-vague-enough-to-be-spine-tingling little running narrative and a lovely crescendo of "OH MY GOD WHAT IS HAPPENING TO MY BRAIN" at the end. (*well, there's a consistent logic to it, but it took me awhile to convince myself of that fact.)

868-HACK (iOS, $6, infinity time, but maybe 15-30 mins to get a grasp on what you're supposed to do) - this game has such a great combination of roguelikeish randomness and predictable, strategically defeasible behavior. manages to create that oh-shit-oh-shit feeling of timed games (specifically tower defense style games) while being turn based, so allowing you to be as contemplative or as reckless as you want. i play this regularly now as comforting downtime.

imposter syndrome (browser, free, 5-10 minutes) - the only IFcomp game i've played so far, definitely kind of heartbreaking/triggering (TW public speaking nightmares, internet harassment, sexism) - what i liked mostly was (1) the multiple endings (2) the scifi elements of it are kind of the dystopian inevitability of something like this short story i wrote once.
watchin' a lecture about twitter as an expressive medium. really like the bit about 17:40 in, as it pertains to what i mean when i talk about my love for artful irreverence of language:

"but the decision of how to place a comma wrongly can have just as much intelligence behind it as the decision of how to place a comma well. three commas are slower than one, and a space before a period is slower also. a sentence with no punctuation at the end at all seems to persist in the voice of the mind. it works as a sustain pedal - and it seems more suited to this place of endless, echoing, unfinished conversation."

edit moar:

~20:30:
"read these autobiographies while they are still happening and you'll get a
better sense of the arc of a day, and a better sense of narration, and a
better sense of what fresh, unprocessed thought sounds like. respect the
people whose stories you follow, and write down your own story if you feel
called to it.

"listen to me very carefully: there is no shame in writing about yourself."

~28:50:

"the other question is... why twitter? why should you waste your writing there?

"because innovative literature happens where people have room to play,
and it happens where no one is watching. it happens among groups that initially aren't taken seriously. it happens at the intersection of constraint of form and absolute freedom of content."

---

i've extricated these little serious bits from what's otherwise a very funny and whimsical talk; i recommend it if you have the time.

some of these words remind me of feynman's approach to science, like "Study hard what interests you the most in the most undisciplined, irreverent and original manner possible". there's a particular bit in one of his books (either "surely you're joking" or "what do you care what other people think") that i can't find a reference for -- where he's describing how some of his most important scientific breakthroughs happened when he thought he was fooling around with a small, unimportant puzzle, and he hypothesizes that researchers get less effective after getting tenure/an award/other recognition because they don't feel like they have license to work on anything except "big problems" anymore.
on the bicycle as a vehicle to understand marginalizaton


if you're able-bodied enough to ride a bike and otherwise have trouble understanding, from a visceral perspective, the terminology of feminist and antioppression discourse, i have a concrete recommendation: ride a bicycle as your primary means of transportation in a city where this is not the norm.

i don't claim this is a way to automatically transport the experiences of others into your head, and obviously like all analogies it's imperfect, possibly even treading on "oppression tourism" territory, but as a set of concrete experiences to discuss, i think it can help establish some common ground for the sake of getting basic terminology. by way of example, i give the following glossary.

marginalization: when riding a bike you are literally pushed to the margins of the road. if you assert yourself and drive in the middle of the lane, you are constantly put on the defensive and have to ward off motorists challenging your audacity to be there -- even when in fact it's completely legal and the place where you are safest.

victim blaming: people will constantly question your decision to go out, saying "it's too dangerous" and concluding that therefore you just shouldn't do it; anyone who does is taking an unnecessary risk, and if they get hurt, they "should have known better." what you wear (helmet? light/reflective clothing?) will get you further blamed in the case of a traumatizing accident.

[white/male]-as-default, [hetero/cis]normativity: by analogy, car-as-default. if feminism is "the radical idea that women are people," bike advocacy is "the radical idea that bicycles are means of transport." underlying assumptions in personal conversation, marketing, business planning, and urban planning, frequently make the assumption that "transportation = car", and you'll find yourself repeatedly having to think (or say) "hey, what about me?" furthermore, the fact that personal motorized vehicles are the default thing-for-going-on-roads in cities is more historical accident than the "natural" order of things.

microagression: one or two little things that happen (someone honking or yelling at you, someone passing too close or cutting you off) might be shakeable, but if you keep this activity up and endure it constantly, day after day, i guarantee it will wear on you. the person you wind up snapping at might not have even been the most egregious instance, and they may come away with the impression that cyclists are irrationally aggressive people -- because they don't have the context of every other tiny aggression you encountered across the history of your riding, making you constantly defensive and volatile.

intersectionality: it's entirely too easy to think that the issues you have a window onto as a cyclist only pertain to cyclists. and then you start catching yourself doing the same shit to pedestrians (turning in front of them, not stopping at stop signs) that you're upset when drivers do to you, and you start hearing about cyclists being dicks to other cyclists and pedestrians, or you hear a cyclist wonder why everyone doesn't just ride a bike (including the poor, elderly, and disabled?) and you (hopefully!) start to realize that getting around the city sucks for a lot of people and is a way bigger problem than just your subjective view. this is related to the idea that a workable feminism necessarily incorporates all axes of systematic oppression, not just those that incongruently affect women.

on the bicycle as a tool of autonomy


on the flip side of all this, for me personally, the bicycle has been a hugely, astoundingly critical component of my own sense of autonomy and independence. i mean, okay, in some ways it still represents a dependence, but it's a dependence on something i own and control, rather than a dependence on male friends to wait with me at bus stops at night or on someone to give me a ride home -- in other words, having my location be subject to the whims of unreliable external factors. i don't have a sense for how this would compare to just owning a car, but honestly i think it would still win, because of the increased flexibility (ability to stop on a whim, don't have to hunt as hard for parking, can go on trails, gives access to open air/adrenaline from exercise, etc).

in that sense, i think it's an incredible instrument of feminism, and certainly of my own happiness.

Object Jam

May. 22nd, 2013 11:21 am
A couple weekends ago, I wrangled a few friends (Rob, Tom, and William) into joining me for participation in OBJECT JAM, a neat little game jam proposed by someone on Twitter, wherein you invent games for physical objects (rather than for computers or consoles). I was thinking of it as kind of a retake of the kind of game a lot of us grew up playing, either with play-designed objects (toys) or by finding whatever was lying around on the floor or the ground. But most of the (visible) participants in Object Jam are people who've by now played (and made) a lot of video/computer games, as well as, y'know, grown up and developed different tastes and attention spans from what we had as five-year-olds (perhaps).

The result was one of the most fun 6-ish hours I've spent in the past few years. The best part about it to me in contrast to a workin'-on-computers game jam was that we were effectively all making games for each other and then playing them with each other. This jam felt fundamentally social. It's pretty easy to come up with some idea and post it on twitter, but actually assembling the pieces, testing it out, noticing some imbalances, and iterating on the design of something you wouldn't otherwise take so seriously... brought a lot of depth to it, made it into a bonding experience. There's probably nothing that makes me happier than making, sharing and discussing things with people that I like. The making doesn't even have to be collaborative; maybe even better if it's not.

Now some games! First, here are ones that I designed, implemented, and playtested:

FOLDING AT HOME

Game for piece of paper and n players (tested with n=2). Take turns folding the paper, not necessarily in half, until you can't fold it anymore (it does not lie flat).

PLAYTEST NOTES: We conjectured that this would be better as a collaborative game, "improvisational origami", where the goal is just to make something pretty. I tweeted that idea as the primary version of the game and described the above as an "adversarial variant."

MASHUP FICTION

Game for n players and n books. Players gather in a circle. Each player takes a book and opens to somewhere near the middle. Take turns reading the last full sentence on the left page, then turning the page. Stop when someone reads a sentence that's 3 words long or fewer (or when bored).

PLAYTEST NOTES: Science fiction books work well for this.

SIT

Game for chair and two players. Player One sets up the chair. Player Two must sit in it (butt touching chair, weight resting on chair) and maintain stability. Alternate until Player Two falls over and gets hurt.

PLAYTEST NOTES: this game is dangerous and surprisingly fun

LIVE ACTION FETCHQUEST

Game for post-it notes, William's house, and various objects within said house. Sorry, this one is not very cross-platform, but you could probably come up with something similar for the rooms and objects in your house. I put post-its on game-relevant things and announced the convention that pink = takeable, yellow = openable, and orange = information.

PLAYTEST NOTES: This actually worked pretty well for three separate playthroughs. Tom took a Vine of Rob playing.

---

Here are some games I came up with but didn't actually playtest:

DO NOT PASS GO

Game for any board game and 1 player. Set up the game. Read the rules aloud. Sit still & meditate upon the board. Tidy up after.

NOTES: Twitter liked this one, and one game designer I follow made some good suggestions for a multiplayer variant. I especially like the analogy between rules reading and guided meditation.

COINS IN A BOWL

A sort of minimalist betting game for n players with pocket change and 1 bowl. Players deposit all pocket change into a bowl. Everyone writes down a guess for the total amount of money in it. Reveal guesses. Closest answer gets the change, may trade for bills with other players. (anticapitalist variant)

SPICES IN A BOWL

Everyone secretly picks a spice from the spice cabinet and adds a couple of shakes of it to a communal bowl. Then, the bowl is brought to a gathering spot and passed around. Players may smell and taste the contents. Winner is who correctly identifies the most spices in the bowl.


---

Others' games:


  • TETRAHEROES made by Tom7 and William is a large-scale object adventure game built on the grass rug in William's living room. Here is a video recording of Rob and me playing it, which is pretty much my favorite thing on the internet right now.
  • a game by a dog!
  • full list of games tagged with #objectjam on twitter


--

Related thing: pervasive games
for the first time in my life, i did something for father's day: i finally got round to scanning several of the items pertaining to my father that i received from my grandmother during my visit to arkansas two christmases ago.

i was born in may 1986, and my dad died in october of the same year.

cut for large images )
sometimes i learn things about topology with pictures or by taping together pieces of paper. i think about stretching, shrinking, and numbers of holes.

sometimes i try to learn about topology by understanding a series of mathematical definitions. i think about partial orders, closed and open sets, frames, interiors, and neighborhoods.

at what point do these lessons converge?
this n-category cafe article on the mathematically "sacred" and "profane", while not particularly coherent, makes a bunch of really interesting points.

first there is this sociological observation about how mathematicians get to know each other:
When two mathematicians meet and feel out each other’s knowledge of mathematics, what they are really doing is finding out what each other’s bottom line is.


this clip doesn't really draw a distinction between a personal bottom line, though, and that of one's entire field. in terms of personal bottom lines, this rings true for me; the academic conversations i have typically go much better if we get each other's bottom lines out of the way (e.g. i might tell someone i want a programming language for IF, or a type theory for checking asymptotic complexity, or a clean setting where dependent functional and logic programs interoperate). but i'm not sure i could define what the research programme i associate with carries as its bottom line to the tune of "To the algebraic geometers of the sixties, the bottom line was the proof of the Weil conjectures." certainly for complexity theorists, the obvious bottom line is P vs. NP. but type theorists don't have an analogous sought-after result or theory to nail down -- maybe everyone has their pet problem (concurrency, interactivity, space usage, modularity, theorem proving) for which there is some hypothetical "holy grail" language, but certainly we aren't very unified about it. maybe this is part of the solidarity (and consequently marketing) problems that the PL community seems to have, perpetually; we can never really agree on what we're after.

the side remark about "duty" also struck me:

…of the three reasons for choice [because it is useful; because it is right; and, because it is my duty], the third alone is a complete reason. Choice is always choice to do an individual action. Why do I do it? The answer ‘because it is useful’ explains only why I do an action leading to a certain end: not why, among the various possible actions which might have led to that end, I choose this and not another. The answer ‘because it is right’ explains only why I do an action of a certain kind, specified by the rule which I obey; not why, among the various possible actions conforming to that specification, I choose this and not another. But the answer ‘because it is my duty’ is a complete answer.


at first this bothered me, because i wanted to object, "but who assigns you this duty? that itself is a choice" -- until i recast it as a description of how to execute proof search. suppose you have a bunch of clauses in your context and some goal C. any clause with C at its head is "right", but there may be many. any clause that is a precondition to such a clause is "useful", but only because it's an intermediate step. the only way to decide what part of your context to use is to give an algorithm like focusing which forces you to pick, and to follow through on your choice. :P

maybe this can be applied to life as well: the only thing that can really justify an action is a pre-determined choice procedure, and having one, even if it's poor, is better than arbitrarity.

also i think the line "If I show you how my new knife cuts through some wood, I may do so to allow you to admire the sharpness of the blade, rather than because I want two pieces of wood." is good to keep in mind for any discussion of math/programming.
tonight i made brownies and proved a theorem i have been working on for three years.
occasionally you'll hear someone ask, "are higher-order functions 'higher-order' in the same sense as higher-order logic?" here is a possible answer.

from my understanding of current logical diction, something like the following story is true:

once upon a time, humans invented lambda calculus. they said, "a function that takes a functional argument (or returns a functional value) is a higher-order function." they wrote that definition down, and then two different humans read it.

the first said, "ah! a 'higher-order' function is one that operates on a function. so, in general, for something to be 'higher-order' means it operates over functions."

the second said, "ah! a higher-order function is a function over functions. to generalize, a higher-order X is an X that operates over other Xes."

error! and from their teachings sprang many logician progeny of both lineages, and the confusion remains.

some examples:
- higher-order abstract syntax. "lam : (tm -> tm) -> tm" is higher order in that "oh look there's a left nested arrow", i.e. we're describing syntax in terms of function types (and for that reason may be better deserving of the abstract higher-order syntax coin).
- higher-order judgment. in twelf lingo we use this to mean, again, a judgment over open terms (like (tm -> tm) -> type) rather than what you might think following generalization (2), a judgment about judgments (i.e. a metatheorem).
- higher-order logic. if we squint for the sake of uniformity and pretend that by "logic" we mean "predicates", then i think it's accurate to interpret this as an instance of generalization (2), predicates over predicates. it certainly doesn't mean "logic about functional data", which is just propositional logic.

despite my NPOV efforts, it might be coming through that i'm a little annoyed with generalization 1. it just seems a little bit provincial or narrow-sighted, like the only thing that we could possibly want to get fancy with is the types of the things we describe, rather than the (quite literally) more judgmental-methodology-motivated notions of our system. of course, in practice, i use the jargon that will get me understood, but if i got to prescriptively reinvent it i'd change the word for generalization 1 to something like "functional" (where of course in this perfect universe, "functional programming" would be renamed to "value programming").
something you stop thinking about after awhile of using LF's context as your object context is where the context gets quantified in the statement of a theorem.

consider identity for an intuitionistic sequent calculus: "for any prop A, there is a sequent derivation of Γ, A => A." the proof proceeds by induction on A. but in each use of the induction hypothesis, do you get to pick Γ, or is it fixed at the outset of the whole induction over A? in other words, are you proving

"for all Γ, [for all A, [Γ, A => A] by induction on A]", or

"for all A, [for all Γ, Γ, A => A] by induction on A"?

you can do the proof either way, but, if you have monotonicity uniformly sprinkled throughout your rules (that is you get to keep whatever left-assumption you break down in each subgoal), then what you do after applying the IH is different: one (the former) requires weakening, and one requires instantiation of a universal quantifier. (inspiration of this post: i had students do it both ways on their constructive logic homework.)

my question is: which one are we doing when we do it in Twelf? i think it's the former because of all the ignored LF-lambda-bound variables, but i'm not positive. and relatedly, is there a way to express the alternative?
the SPIN paper, which we're reading for 712 (grad OS), drinks the PL koolaid:

"Our decision to use Modula-3 was made with some care. Originally, we had intended to define and implement a compiler for a safe subset of C. All of us, being C programmers, were certain that it was infeasible to build an efficient operating system without using a language having the syntax, semantics and performance of C. As the design of our safe subset proceeded, we faced the difficult issues that typically arise in any language design or redesign. For each major issue that we considered in the context of a safe version of C (type semantics, objects, storage management, naming, etc.), we found the issue already satisfactorily addressed by Modula-3. Moreover, we understood that the definition of our service interfaces was more important than the language with which we implemented them.

"Ultimately, we decided to use Modula-3 for both the system and its extensions. Early on we found evidence to abandon our two main prejudices about the language: that programs written in it are slow and large, and that C programmers could not be effective using another language. In terms of performance, we have found nothing remarkable about the language's code size or execution time, as shown in the previous section. In terms of programmer effectiveness, we have found that it takes less than a day for a competent C programmer to learn the syntax and more obvious semantics of Modula-3, and another few days to become proficient with its more advanced features. Although anecdotal, our experience has been that the portions of the SPIN kernel written in Modula-3 are much more robust and easier to understand than those portions written in C."
in the past week or so, as mentioned (in brief) previously, i've been learning a lot about the development of how we came to understand the second-order lambda calculus, data abstraction, and eventually modern-day module systems. as a frequent SML user, i think i have (and had before this week) a good intuitive grasp on how the module system works, but only recently have i come to have a deeper understanding of what's under the hood, logically speaking, and how it got that way.

i want to try to explain just the surface-scratching essentials of this logical and historical gem, as an expository exercise. i'm primarily interested in telling you about the dialogue between mitchell-plotkin and macqueen in the two papers linked, but i may also involve (and contrast) the modern take in f-ing modules*, which we discussed in RG yesterday. all of these papers are quite good, so read them if you want, but with any luck you won't need to refer to them for my explanation to make sense.

mini logic lesson )

*looks like i didn't get to this. if i do a sequel i will probably talk about it as well as phase splitting. should i do that or was this boring/badly explained? moar y/n?
yesterday i learned two new games.

1. "google ghost": designate one person to type things in to a google search bar. go around in a circle. the first person says a word, with optional space character after it. then you proceed around the circle, each person saying a character (usually a letter or space). the typist enters each utterance into the search bar, and as soon as google suggest has no suggestions, the person who said the last character loses and picks the next start-word. the best part is hearing all of the pruned-away suggestions every time someone picks a branch.

2. "add-on": another climbing game, sort of like the dual of climbing-horse, where people take turns making moves and simon-says-style repeating all previous moves and adding one at the end. have not actually tried this one yet.
climbed for a long time today. majority of time was spent playing the climbing-"horse" game, where you pick a VB (very easy route) and try to do it with fewer holds than the person before you until no one can do better.

seminar was awesome today, because we discovered that the well-known classic result known as the church-rosser theorem, as originally described and proved in church and rosser's "some properties of conversion", is in fact describing properties of a "strict" lambda calculus where bound variables must occur in the body, and some of the central results are in fact false with the admission of such functions (most clearly seen from considering [λ_.M] Ω, which has a normal form that's not finitely reachable via all reduction paths). crazy!
it would be neat if there were a database that classified songs by their chord progressions so that you could look up all songs that use a particular one.
this visual representation of lambda calculus (with animated reduction) is kind of cute.
by the way, if you ever want a backtrace in smlnj, here's the ticket:

    CM.make "$smlnj-tdp/back-trace.cm";
    SMLofNJ.Internals.TDP.mode := true;


apparently everyone i've talked to has always been as lazy as i am about doing a google search to discover this, so i thought i'd point it out.

Profile

chrisamaphone

August 2014

S M T W T F S
     12
3456789
10111213141516
17181920 21 2223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 1st, 2025 08:22 am
Powered by Dreamwidth Studios