Exploring multisensory descriptions in Inform7

Over the past week I’ve been experimenting with different ways to make an interestingly playable game where the player’s point of view can be multisensory in various ways. So, for example, a character who is hearing and sighted would experience visual, sound, touch, and scent based room descriptions, while a Deaf character would not get the sound descriptions.

One way is to use Touchy Feely extension by Quantum Games. I ended up forking this and adding a few things to fix a couple of errors in the extension, and then adding more options as default descriptions for items. This extension builds in some commands like smell, touch/feel, listen, and taste. You can set the sound of a room, a person, or an object very easily just like you set the (visual) description.

With those rules, and a few others, I started writing rooms like this:

The Bedroom is a room.
The description of the bedroom is
"[if the player is sighted]A small room with white walls and some posters hanging up. The bed has a colorful striped bedspread and paisley sheets. The doorway is in the west wall.[end if]
[if the player is hearing] There is an air filter humming loudly in the corner.[end if]
[if the player is not sighted and the player is not hearing] A small room with a bed in it. The west wall has a wide doorway.[end if]"

The sound of the bedroom is "A loud air filter in the corner fills the room with white noise."
The scent of the bedroom is "The air in here seems very clean and fresh."
The bed is scenery in the bedroom. The description is "A soft, comfy bed. You give it an experimental bounce."
The pillow is scenery in the bedroom. The description is "A nice, soft, squishy pillow."
The bedspread is scenery in the bedroom.
The bedsheet is scenery in the bedroom.
The air filter is scenery in the bedroom.
The doorway is scenery in the bedroom.
The walls are scenery in the bedroom.

Things that are scenery aren’t described until you examine them. I wrote a general search command called (explore, or tap ) which conveniently lists all these “scenery” aspects of a room for non-sighted characters. Sighted characters have to examine them one at a time.

The problem with this method is that it is clunky and I’m repeating various elements of the room description. Ideally, I’d be able to replace a bunch of Inform7 behavior so that:
– Each room (and thing) can have a visual, sound, etc description.
– The game checks if the player has those senses
– The game concatenates the various sensory descriptions appropriately

This turns out to be difficult. I got into reading the Standard Rules (which, from the Inform7 IDE, you can see as an extension) and then realized what I wanted to do was basically happening in the Carry out looking (this is the room description body text rule): section of code. I thought maybe I could hack in a check on the sound of the room and print that.

But! This code refers to the Inform6 core of the game, with

To print the location's description:
(- PrintOrRun(location, description); -).

I tried copying THAT and doing something like PrintOrRun(location, sound), which didn’t work because location and description here are constants from Inform6, I think.
Not sure how to pursue this further. Maybe in future as I get more familiar with the guts of Inform.

So, I tried another way. I suppressed the room description body text rule like so:
The room description body text rule is not listed in any rulebook.
And copied it and pasted it into my example game with a slightly different name.

Carry out looking (this is the room descriptions body text rule):
if the player is sighted:
if the visibility level count is 0:
if set to abbreviated room descriptions, continue the action;
if set to sometimes abbreviated room descriptions and
abbreviated form allowed is true and
darkness witnessed is true,
continue the action;
begin the printing the description of a dark room activity;
if handling the printing the description of a dark room activity:
now the prior named object is nothing;
say "[It] [are] pitch dark, and [we] [can't see] a thing." (A);
end the printing the description of a dark room activity;
otherwise if the visibility ceiling is the location:
if set to abbreviated room descriptions, continue the action;
if set to sometimes abbreviated room descriptions and abbreviated form
allowed is true and the location is visited, continue the action;
print the location's description;
if the player is hearing:
say "[sound of the location][paragraph break]";
otherwise:
say "[feel of the location] [scent of the location] [taste of the location] [paragraph break]";

Because I’m not using the “print” function the sound and other sensory qualities of the room are described under the actual room description. That might be OK but now I need to learn how to elegantly write a room description that is broken out into visual, sound, and other qualities. I also need some kind of bare bones description that doesn’t show to the player unless the player character is deaf-blind. This will take some practice to learn to write well, and some more refining of how I show which bits of the descriptions.

Note that I will probably be adding in low vision and hard of hearing (by taking the visual and sound descriptions and munging them a bit.)

Frivolous Friday night post

Some things that I own are extra satisfying beyond spark of joy into soul bonded dragon telepathy. Current favorite object, my tibetan wool poncho in shades of soft blue, purple, and brown, with a hood and wooden buttons and a front pouch pocket, long enough and wide enough to go halfway down my legs while I’m sitting down, over both arms of my wheelchair, and covering my backpack on the back of the chair. Pouch is ideal for phone and a handkerchief and even my notebook and pen (for my observations in and around BART stations.) It is like having a cozy tent in the rain, and, if not too rained on, excellent to wear in the chilly mornings on the couch while I drink my coffee. I got it for 35 bucks in the tibetan hippie stuff store in Berkeley.

Also bonded thoroughly with my Jafa boots (style 2159) with buckles, side zippers, blue jean blue with shiny black toes and heels, and special orthopedic inserts. Jafa and Naot shoes (particular soles) and crocs are the only things my feet and ankles can currently tolerate. And, these boots are so natty, so dapper, lots of joyous detail, no weirdly unnecessary femmy touches just like, fancied up with straps and buckles. Obtained from Citi Shoes on Irving in SF, where I swanned in fresh from powerchairing Golden Gate Park like a tiny hurricane, and experienced a funny moment. The people just leaving were somewhat taken aback by me, my hair, my chair, and my magnificent poncho (cannot blame them).

“I LOVE YOUR HAIR” one of them gasped. The shoe clerk zeroed in on what struck her most. “I love your NAOTS” she said, raising her eyebrows at my amazingly neat, detailed, grey and darker grey boots with businesslike, yet also punk, buckles. As if to imply she — unlike those yoiks — appreciated the finer things in life, and the finer points of my personality. “I’ll be RIGHT WITH YOU.” Sometimes I get followed around stores for bad reasons, like the grocery store security guard suspects I’m going to abscond with a whole mop and some Tide squirreled away in my undercarriage, but in this case I was sized up more correctly as a shoe connoisieur, in other words a good mark. I gazed about me with awe. This was a store to nearly rival Astrid’s Rabat on 24th. Someone understands my painful feet and my desire to have cute as fuck shoes, all at the same time! Oh joy!

The other shoe clerk, a callow youth, approached me. “Can I ummmm help you with ummmmm anything,” he said, rolling his eyes like a nervous horse, wondering if I was about to add some sweet sandals to my hoard of shoplifted under-poncho goods and probably also wondering why a crippled lady needs shoes anyway and if he was going to have to take my shoes off for me or something weird like that. “I’ve GOT THIS. I’m on it. Nope, nope,” said the first shoe clerk lady coming out of the back with a hiss and an eagle eye for her commission. The callow youth melted into the back, whimpering. What can I say. The amazing Jafa boots fit perfectly, she got me the most crazypants german orthopedic soles I’ve ever experienced which also cost the damn earth but, whatever it’s my feet; and also polished up and weatherproofed the boots before I got out of there.

Both the poncho and the boots gave me very good service today in the drizzly cold rain. Huzzah!

Building accessible infrastructure into writing and coding style

As you may be aware by now, faithful reader, I am obsessed with my game, which is set in the Bay Area on and around the BART train system. It is science fictiony and magicky, with time travel and weird stuff abounding. I set out with the intention that the player should be able to pick a mobility level and sightedness, possibly in elaborate gradations but for now, at a minimum viable level, the player can choose to be walking or a powerchair user, and blind or sighted, in any combination. For the powerchair character, they can’t do stairs and that’s about it. The blind player (simulated at this testing phase by providing the player a pair of wraparound mirrorshades) will have the “look” command replaced by listen *(maybe) or all room, object, action, and NPC descriptions will have non-sight-based descriptions.

Just as a note, I have not written the system yet for cane tapping but that will likely be integrated.

I am finding it interesting to try out the alternate description route. For example here is a super easy case where the description is written to make it very flexible, with only one word difference in the description:
The description of Calle 24 Northwest Corner is "A busy corner at a busy intersection. You can [if player is blind]hear[otherwise]see[end if] a steady stream of cars, buses, and people passing by."

Or, a little bit longer example,

A flower seller is a person. In Calle 24 Southwest Plaza is a flower seller. The description of a flower seller is "[if player is sighted]A short, smiling woman in a baseball hat and a red checked scarf pushes her wheely cart full of roses and carnations. Her jacket has a ladybug pin.[otherwise]You can hear a short woman just next to you, fussing over a metal cart.[end if]".
Every turn when the player can see a flower seller:
say "A flower seller [if player is sighted][one of]beams at you with a huge happy grin[or]watches the people passing by[or]smiles as she stops to talk with a friend[or]offers you a little bunch of carnations tied with string, saying 'Flores para ti?[otherwise]calls out, 'Flores!'[or]'[or]shares a coffee with a friend, chatting[or]fusses over her bunches of flowers, arranging them nicely[end if][as decreasingly likely outcomes]."

It becomes clear to me that I have to train myself to structure the experience of the reality of the game in particular ways. I might establish a convention (enforced with tests) where each thing defined in the game is required to start with a description for the blind point of view character, then have a description for the sighted. Each clue for the puzzle needs to be playable both ways, as well, and both should have a richness and depth of experience that makes the game fun & action compelling, hinting at possible avenues to explore. So, it will affect how I design the puzzles and clues as well as just some sort of “layer of extra text” to think through. One result is that talking with other characters will likely be more important than it might have been otherwise.

This shows very clearly how important it is to design an environment (whether it is a game, a novel, a class, a web site, software, a real life building, or a city street ) with the point of view of different people in mind. Having written only 6 sample rooms and couple of NPCs and objects and their behavior, I’m very glad that I’m doing this now, and not trying (as so many designers, programmers, and architects do) to staple on a half assed ramp or some probably flat braille a month before finishing a 2 year long project.

Soothing voyage into San Francisco Bay

I am now a subscriber to “SeaTube”.

Best place to watch the ships coming in and going under the bridge, maybe Cliff House if it’s cold but otherwise, at Land’s End where there is a little paved overlook and bench to sit on, MarineTraffic app open to see what each ship is carrying and where it’s from and under what flag. I used to like taking pictures for the wiki of cargo ships when we lived on the houseboat!

Happy Discardia!

I did some decluttering today, setting out some clothes and books on the free shelf outside and throwing a bunch of things away. There are also several bags of things to go elsewhere (to friends, to my sister, birthday presents for birthdays coming up, stuff that needs some sort of errand to deal with it) so that those things aren’t on the living room floor.

From underneath the bed I hauled out a box the size of a couple of shoeboxes full of junk that had been cleaned out of drawers probably years ago. More than half of it was trash and the rest is now put away.

Cleaned out under the kitchen sink where it smelled funny and was full of junk. Cleaning supplies are more organized now. Half the paper bags stashed down there are now recycled.

I also ironed my handkerchiefs, which I find oddly satisfying, and laid them neatly into a tiny cherrywood drawer.

Huzzah!

Danny just came in, looked around, and went, “Holy shit! Low level defragmenting, reformatting!” (Very true. That’s exactly what it’s like.)

In game progress, I added a ticket reader and BART ticket. The ticket is a device, which may seem odd, but swiping it turns it on and off to signify if you’ve paid or not. There are “switching on” and “switching off” actions in Inform7, and they’re separate, so they needed some extra logic to handle a new more generic verb (swipe) that flips the state from one to the other, depending, while not giving any weird extra messages about it.

So many good ideas in the last few days – I have a big file of ideas to stuff into the story and its infrastructure.

It’s helping to scope out issues to work on in github, with milestones, so that I can bite off small things to work on when I’m tired or only have half an hour. The complicated stuff has to wait for the weekend.

While reading the Standard Rules defined in Inform7 I came across this amazing line of code:

The darkness witnessed is a truth state that varies.

Kind of spooky, isn’t it?!

Pacifica side trip

After work I went off with seelight to have a sandwich and catch Pokémon at the beach. We looked for whales (none) and discussed geography, geology, clouds, games, and she told me there is a novel about magical BART. Or something. I only found this decolonized BART map so will ask her later about the book.

A woman standing by us at the cafe counter when “Funkytown” came on the radio sighed and said “You just want to put on those roller skates!” and I had just been thinking the same thing and remembering myself swinging about the roller rink with my feathered hair, my blue eyeshadow, my metallic weave buttondown shirt, white jeans with my name embroidered on the pocket, and a skinny stretchy gold metal belt (you know what I mean? sort of snake textured, like a cord where one side is flat). The belt buckle was a green roller skate. Probably, I was also drinking a “suicide” which was getting a soda with all the soda flavors mixed together. The junior high mocktail of my people. You felt badass skating up to the counter, like the fucking Continental Op but 3 feet high and on skates, leaning on one elbow to mutter to the bartender, “I’ll have a suicide“. I had mentally put the lady at the counter in a “older person” category as she had long grey hair and was leaning on a cane; go figure, we are likely less than 5 years age difference; my hair is half grey and I’m in my wheelchair. I enjoyed the moment of our gentle mutual reminiscing. The song is so perfectly evocative of a specific time.

A walk down the pier, where we watched fishermen, the sunset, the waves, the fog, the stripey layers of clouds that looked like both Jupiter and lasagna when photographed with my phone camera up to one lens of my binoculars.

sunset through a rounded lens

On the way back to land, Claire was like omg there is a … Grundleoot or …. I’ll be damned if I know what it was, but some powerful pokemon I had never even heard of, as the pier debouched into the street. We decided it was too tough for the two of us. But right around the corner a little knot of people were under the streetlights in a familiar configuration, a half circle, thumbing their phones with fervent concentration – they were catching the whatever it was, in a raid. We joined the stragglers and caught it too. The group then went off to reconvene at a church somewhere to the south to get a Kyogre, hitching rides with strangers and timidly Friending each other on the app. Tempting but…. I was tired. Yay now I have, well, one of those. Grundhorn? Groundlarg? I don’t want to get up and look at my phone.

Rewiring brain for new code

What can I say – I worked on my game all day again today. It was great. The feeling of seeing the entire huge structure holographically and knowing (more or less) what to do and how to break it down into pieces is just glorious. I’m all fizzy with ideas at really random times.

I spent some time trying to understand some excellent advice on the interactive fiction forum and halfway got there. Then needed to chill out a bit and let it percolate, so I worked through some of the examples in the inform7 manual and played around. At some point I realized a different way to approach the problem and plunged back in, making my magic elevator a room again instead of a vehicle.

Finally got that working around 6pm. But only imperfectly. Then had another epiphany, threw it out and refactored it again and now it is seamless! I thought of some good improvements and noted them as issues for later.

However, I still have to solve the original hard problem because my rideable vehicle (ie a wheelchair) has to be able to enter and exit another vehicle (the train.) It’s still satisfying to have the elevators work so neatly, in the meantime.

Danny and I went grocery shopping, he cooked (lamb with mint sauce and roast potatoes) and I cleaned up. He is still muttering into his beard about Lisp and stuff but I was too sunk into my own thing to know what about. A cosy and fabulous weekend.

Coding, swimming, biergarten, chocolate

A really nice day. I worked on my game nearly all day and the time just flew. I’m feeling deeply obsessed! Danny is obsessed with Lisp and Scheme so we are just quietly muttering to ourselves like toddlers doing parallel play.

Yatima took me swimming at the JCC and I did some real laps. First time in a long time too. It’s good going with someone else, it’s just more motivating and feels like nice social time rather than a boring lonely chore. The JCC is pretty nice, especially the locker room which has a sauna and steam room. I steamed, then saunaed. Sauna is my favorite, getting into a sort of dead horse pose with my legs going up the wall, feels great on my ankles.

Then Danny and I went off to Biergarten to hang out with friends and I let all the kids (maybe 8-11 year olds? ) try my powerchair and they were all taking turns zooming around (the bold ones) or cautiously spinning on speed 1 (the shyer ones) It’s fun to see how their faces light up and they are like OMG I’M DRIVING! I’M A ROBOT! WHEEEEE! at 4 miles an hour, which is pretty much how I feel in the chair as well. They were going around the little park there on Octavia and even took it over to get ice cream. Anyway, I thought it was super fun (always have) and it is sort of normalizing disability & mobility stuff and they’re not going to harm anything… they were reasonably cautious and didn’t run anyone over. Really… is there anything nicer than the feeling of indulging children, especially when it is a crowd of benevolent adults looking on all sharing that feeling.

Then Cory taught me a 1 minute physical therapy exercise to detach your nerve fibers from the fascia or something like that, sounds great, fucking bring it because my leg nerve is horrible. Fuck a fascia, fuck a leg nerve, fuck a sciatica, etc. Also every tendon. So we did a weird little leg kicking ankle flexing dance sitting on the picnic table with me going Ow! fuck! ow!!!!! and then notching down my flexing ambitions even for the 1 minute thing. I will be giving it a try (adding it to my pantheon of other one minute exercises which I can invoke while feeling restless or painful). Cannot tell if it just helped or if the buzzing feeling now is OMINOUS and means doom. Always hard to correlate but time will tell.

Home again to deeply contemplate how I can modify the “implicitly pass through other barriers rule” so that my wheelchairs and elevators in the game work together correctly. Danny is in the process of maybe realizing that using gnu stow may do what he was about to write in Lisp. He sounds a little sad about this.

On the bus on the way home I was chatting with a guy in the front of the bus with me (also in a powerchair) and we were like both eyeing each others gear. He and his friend were from Ireland. Then he was like do you like chocolate? Being kind of high (I wasn’t while I was at the bar, but then, figured why not make the bus ride more tolerable…Vape in my pocket…. what the heck) I was like “Oh ummm well yeah, why, is my face covered in ice cream because I was actually just eating chocolate ice cream”. No it was not but he gave me a fancy chocolate bar from Dandelion. As pickup lines go this is a pretty good one and I did not know how to refuse the badass chocolate bar. I mean. Also, he complimented my sexy wheels and told me to share the chocolate with someone I love and I was like Um like maybe my husband who is sitting right there LOL. Now I have this awesome chocolate and we need to be friends but I was too stoned to do anything clever like exchange social media names or whatever, instead, staring at the chocolate bar like a doofus and mumbling. The end!

Oh but one more thing. This flyer from yesterday’ event for Public Domain Day at the Internet Archive, of things created in 1923 newly (re)entering the public domain. It’s a nicely printed large yellow poster or broadsheet by queer.archive.work, with a photo of a sculpture by Nancy Elizabeth Prophet, with a poem by Jean Toomer handwritten over it:

Within this black hive to-night
There swarm a million bees;
Bees passing in and out the moon,
Bees escaping out the moon,
Bees returning through the moon,
Silver bees intently buzzing,
Silver honey dripping from the swarm of bees
Earth is a waxen cell of the world comb,
And I, a drone,
Lying on my back,
Lipping honey,
Getting drunk with that silver honey,
Wish that I might fly out past the moon
And curl forever in some far-off farmyard flower.

I have that book somewhere. It’s a good one!

Triage day in a couple of ways

Work had a lot of bug triage today among other things but then after work I went off to the 3rd of 6 classes in the Neighborhood Emergency Response Team training. It was triage day at NERT class too. We got a video on pandemic flu, the gist of which was, wash your hands and cover your mouth when you cough (hilarious electronic music, closeups of a person coughing, freeze, zoom in, turn it to photo negative or some wacky filter effect, cut to other person giving serious side eye to the coughing person as if plague was leaping right the hell out of their mouth!) Then START – Simple Triage And Rapid Treatment. We went over some examples and then some people went out of the room to prep to be the rescue team and 20 others went up on stage (or whatever you call it at the front of a church) and arranged themselves artistically as disaster victims. The rescue team then came in to check them and tag them with triage tape (remembering to tear off a bit and pocket it for each person to record how many were triaged to where.) I will probably do some online practices for START triage (there seem to be lots of them!)

I enjoy the class as a sort of meta thing to think about, how they came up with the most basic possibly useful things to get across. Like 24 hours of basic training but for this very specific temporary purpose. What do you choose to teach? Is there any hope of cramming something useful into random people’s heads? Will it stick? In a disaster I think the more official first responders would want to mobilize whoever seemed useful and on the ball and was on the spot. But, between the first days of whatever it is, and the time when Red Cross/National Guard or whoever get there, maybe this program becomes useful, and/or, maybe it attracts and sucks in the sort of people who want to help and meddle but might without some direction be more likely to rush in and get killed. So it serves that purpose too (to kind of soak up those people.) It’s also interesting to think about which principles from this training are applicable in general, in less extreme circumstances, as … assessing a situation and basic leadership skills I suppose.

Humorous incident, which I will mildly obscure in the world’s longest paragraph, no one patted me THIS TIME (the training is full of nice church ladies who like to pat a wheelchair user and fuss about them pointlessly) but during the 10 minute break I laid down in the little nook of a pew where I was sitting with Danny and Ada and my feet on Ada’s lap, reading stuff on my phone and playing pokemon (feeling tired from my long day and because I have a sinus headache) I knew this would be likely to happen but it doesn’t make it any more fun when it does, one of the Nice Ladys came wittering up to “check if I was okay and needed any help” OK so, number one, I’m sentient and know if I need something or not and would do something about it if I did; number two I’m obviously there with my family and what kind of assholes would they be to just like, ignore me if I were … fainting or dying or something? In actuality she was partly bothered that I was doing something a bit unusual that I should not be doing (lying down in the pew) and partly just unable to deal with her own basic discomfort for my being there at all, which is super obvious and annoying to me but not always visible to others. And she wanted also to perform her role of authority figure in some way, at me, as a result. Like the other lady who kept patting me the first two days (who hate-whispered “you’re WELcome!” at me when I didn’t act right when she told me my bag was on the ground or something – which I actually did say thank you but i didn’t like, SMILE I guess, because I was recoiling from her touch) she didn’t like that I didn’t respond correctly (with the right sort of performative gratitude and kowtowing and probably also not the right sort of self deprecating middle class white lady femininity) Because I kinda looked her up and down a little bit too long before saying, “Well you’re certainly super ready for an emergency!” with chirpy sarcasm. “I just had to make sure that you’re alright blah blah” (Yes I understand I’m being scolded.) “I’m just lucky you didn’t whip out a tourniquet!” and I start cracking up. “Witter witter witter twitter whisp oh well *breathes heavily* it’s just so GREAT that you’re HERE and THANK you for BEING here and we UNLOCKED the DOOR for you over by the RAMP this time I mean we are really GLAD to have you HERE, THANKS” (Remembering Suzette Haden Elgin’s explanations of that speech emphasis pattern as hostility.) Yes… yes i’m sure it took like twelve committee meetings to achieve that dangerous miracle of unlocking the side door which the 15 year old independently went in to unlock for me the first two nights of class; it took about 3 seconds to do… I waited a few beats too long again to let her just work it all out of her system and finally said “Yup well thank you for organizing things.” I mean…. go thank all the other people in here! Fuck… this is why I never like to be part of anything organized unless it is a bunch of fucked up anarchists.

But I am great in a disaster, so go figure. Hope the patting committee spins its wheels for like the next year trying to build Awareness of Helping The Disabled. (Too tired to come up with hilarious acronym for it.)

The firefighters and EMTs on the other hand are just great. A+ for them. They don’t act weird. They have probably met a wheelchair user before and had a normal human conversation.

Mommy, What’s a Funkadelic?

Reading George Clinton’s book Brothas Be, Yo Like George, Ain’t That Funkin’ Kinda Hard On You?: A Memoir & it’s so entertaining. Of course Clinton can tell a great story, just a fantastic writer. I’m listening to Funkadelic as I read.

I spent the afternoon working from Noisebridge & then stayed a little to work on my game. Wrestling with the rules for rideable vehicles and elevators that are also vehicles (ironically, FIXING AN ELEVATOR in a game partially set in Noisebridge where I can only get in when the elevator is fixed, which it was, which I hoped would be good mojo for my game-elevator conumdrum) Wandered around answering the door, taking pictures of the walls, of signs, finding old things in new places and new things several layers deep, admiring the projects and wondering what everyone is into these days. It got so I could tell looking someone over whether they were there for the whiteboarding practice workshop group (fresher faced, in sweaters), Noisebridge regulars of one sort (scruffy with bikes and several duffle bages – to the consoles and beanbags!) or another (sinking deep into their laptops, muttering about Electron) or some intersection, and also I clocked (silently but to my entire satisfaction) the European hacker tourists (As if fresh off the mothership, straight out of CCC). The giant laser cutter hummed in its lair, there is most definitely a tiled, fire-shielded welding corner, the NGALAC hulked in its corner by the window, a crapton of nice looking musical equipment set up by what used to be the kitchen and a Virtual Reality tent of some sort in the back classroom. Everyone was nice. It even smelled ok.

I have a cold and worked kinda long hours and feel a bit… muted…. head splitting … so tired. So that’s all I have to say for now. Hope I feel better for Friday as I want to go to the Internet Archive celebration of free culture, the Grand Re-opening of the Public Domain.