Breaking Up With Git LFS

After using Git LFS on and off for over two years, even going through one major version change, I’ve decided git LFS is not for me, at this stage. Here’s how I took an existing repo using Git LFS, and removed it to return to a vanilla Git repo.

Briefly, Git LFS is a way for Git to manage large binary files such as large textures/audio/video, typically found in content development pipelines. Git itself isn’t really meant to manage large binary assets, and most git server implementations (like GitHub) reject files above a size limit. I’ve blogged about Git LFS before, almost a year ago, when I determined it was the least-bad of my options.

Why I decided don’t need Git LFS
– Onboarding engineers is harder
– Sometimes it breaks in surprising, unrecoverable ways that require re-downloading the repo. Usually something goes wrong with the smudge filter.
– Installation and managing versions is unreliable (see previous blog post)
– Accidentally running a normal git operation on a git-lfs repo without git-lfs installed can break the repo unrecoverably (locally). This can happen if you accidentally use the wrong shell. I have done this several times.
– I’m only using it for a handful of almost-never changing files: big textures for prototyping assets, audio and video. I can instead gitignore these and sync via Dropbox.
– I’m paying extra for it (one Github “data pack” @ $5/month)

How I broke up with Git LFS:

1) I copied my git-lfs repo folder locally, and then pushed it to a new repo on Github while experimenting.

2) I compressed files that could be compressed further.
Turns out I had a great deal of *.tga files in my Unity repo. Both TGA and PNG are lossless formats. Some time back in the day, game engines preferred TGA; something about alpha depth, but to Unity and other modern engines they are indistinguishable.

I wanted to bulk convert all the tga to png, while maintaining Unity’s .meta files references. Turns out this is pretty easy, thanks to this Stack Overflow response to me here.

3) I excised lfs files from my git history.
To remove lfs from a repo, I couldn’t just do it in the modern day, I had to be a revisionist historian; these files never existed ;) Unfortunately, this means that if I rewind my repo to before the lfs removal commits (which I tagged), some references will be broken. But, at least the history will be there for diagnosis.

git-filter-branch is the traditional way to remove unwanted files from your git history. However, it can be slow, and bfg-repo-cleaner is a shockingly feature-packed alternative

I used this command:
bfg --delete-files *.tga *.TGA *.tif --protect-blobs-from master

4) I uninstalled git-lfs from the repo, I think.

I couldn’t find any documentation that gave me a clear answer on a clean uninstall of git-lfs, so here’s some things I did, some of which may be unnecessary.

I ran this command in the repo:
git lfs uninstall

I deleted some lines with lfs in them from .git/config

I deleted the .gitattributes file, which contained the listing of all the files I used with lfs.

However, once I did all this, the folder .git/lfs exists still with 2.5 G in it. I know that git does lazy, occasional garbage collection, so it’s possible that this hadn’t been triggered yet. I just removed the folder.

5) I gradually pushed my new repo in parts.

After bfg, nearly all my git repo history had diverged from the remote on Github. I had to force push the new repo (this is a dark-aligned force power, btw). This didn’t work initially, with the error “The remote end hung up unexpectedly”

Some answers suggested I increased my buffer size, with:
git config http.postBuffer 524288000

This did not resolve the problem at first.
This post suggested I push the repo history in parts.

It’s unfortunate this process is so manual. My repo had 477 commits, from looking up my rev list with:
git rev-list --all --count

However, HEAD~477 isn’t an accessible commit, probably due to merged branches in my history.

Apparently this is my first commit accessible this way:
git push -u origin HEAD~305:refs/head/master --force
I finished the push with
git push -u origin HEAD~105:master
git push master

6) I tested that git-lfs via cloning without git-lfs.

.git/lfs folder was present, but empty, when I cloned again. Suspicious, but it seemed gone.

7) I resolved billing issues with GitHub support.

After deleting the original git-lfs repo, it took a couple hours for my lfs data usage to disappear. The usage even then didn’t go to zero – turns out there was another repo I forgot about still using lfs and had to contact GitHub support to find out. Unfortunately this usage bar doesn’t tell us which repos are using the quota.

Posted in technical | Leave a comment

POV Edit: Star War’s Obi-Wan Kenobi

I’ve taken Star Wars I-VI and cut out every scene that Obi-Wan Kenobi didn’t directly witness. I wasn’t trying to make a movie, and the end result has some bumpy transitions, but in the spirit of this upcoming standalone film, I wanted to get to know Obi-Wan Kenobi’s life better.

I’m calling this a “POV Edit” because I think you could do this for any character, in any movie. The rules are simply to cut out any scenes the character doesn’t witness directly. If the character gets knocked out, the edit just jumps ahead to when they wake up again. I also cut out scenes that Obi-Wan didn’t witness directly, but heard about later.

This edit is the answer to the question “What does Obi-Wan experience and know about the world?” Parts of the final edit are just as disorienting to us and they would be to Obi-Wan, with major events happening off-screen and out of his control. Because I think a lot about non-linear narrative in theatre and games, this helped me think about how to use lack of information, or possibility for misinterpretation when designing this type of media.

But let’s talk about the edit. The final cut is 3:35.
48 minutes from The Phantom Menace
63 minutes from Attack of the Clones
64 minutes from Revenge of the Sith
33 minutes from A New Hope
6 minutes from The Empire Strikes Back
3 minutes from Return of the Jedi

Major stuff that Obi-Wan doesn’t see:
– Tatooine Qui Gonn/Anakin seduction
– Almost all awkward Jar Jar
– Padme/Anakin seduction scenes. It’s actually spookier because it seems like Anakin has magic seduced her. All Obi Wan has seen is Anakin confess he’s distracted by her.
– Anakin/Palpatine
– Lots of Yoda/Windu political context scenes
– C3PO/R2D2 misadventures

A recurring theme throughout Obi-Wan’s story is powerlessness despite best intentions. Anakin gets dropped in his lap, and seems to be able to do really creepy stuff when not in Obi-Wan’s presence. I use the term “seduction” above for both Qui-Gonn and Padme, because Obi-Wan hears second-hand about these people he knows well developing an infatuation with Anakin. There’s one funny sequence on Tatooine where all Obi-Wan is just hanging out on the Naboo royal ship, and gets a series of increasingly enthusiastic phone calls from Qui-Gonn about this kid he’s hanging out with.

– Especially in the prequel movies, lots of climactic movies involve cutting between simultaneous action scenes. For example in The Phantom Menace, it’s between the Duel of the Fates, the dogfight next to the Trade Federation station with Anakin, and the Gungan-Trade Federation battle. In these, we’re just spending time wherever Obi-Wan is, which often seems more boring, pacing-wise. I think this is more a general film note than a POV note.
– Sometimes characters show up at “just the right time”, which feels like a Deus Ex Machine, without having knowledge that Obi-Wan didn’t witness. e.g. Yoda has a feeling Dooku is escaping in Attack of the Clones, and then confronts him seemingly just in time. This sort of reminds me of some of the complaints of Neal Stephenson’s writing, where major events happen outside the main POVs. I think this is great – someone isn’t in pause mode if they aren’t in your life.
– Did Obi-Wan see Count Dooku fight Yoda? It seems like he passed out some time after Yoda entered the room, and woke up sprightily just as it was over. I left the fight out of the final edit, but it seems vague.
– It’s ambiguous whether General Grevious died in the intro of Revenge of the Sith. During his escape, all the escape pods are launched, which to Anakin & Obi-wan, seem like an unlucky malfunction at the time until Obi-Wan deduces that it’s Grevious. What a guy! The scariness of this POV is way cooler than in the original film, which shows both sides of this action sequences.
– Padme starts to go mad as she’s dying, while Anakin is also becoming Vader. Is our audience extra-smart to be able to tell that Vader is becoming Vader off-screen? I believe they can be.
– Obi-Wan’s first line ever is “I have a bad feeling about this”
– Obi-Wan is the first Jedi we see the Order 66 order given to.
– At the end of Episode 3, Yoda says to Obi-Wan, “I will teach you to commune with the spirit of Qui-Gonn”, and we cut to like two decades later in A New Hope as Obi-Wan creepily Jedi screams to spook some minor Jawas. So things have not been going hot for Obi-Wan.
– Obi-Wan never gets to talk to Leia as an adult.

Notes on the POV Edit process:
There’s some cuts I had to make which felt arbitrary. As Obi-Wan is a jedi, there are some scenes he doesn’t directly witnesses but he senses. For example, in A New Hope, I include the shot Alderaan blowing up because Obi-Wan directly reacts to it in the next scene.
Character vs Action scenes seem to have different rules
Establishing shots are okay and good. Establishing shots that feature other notable characters without Obi-Wan (e.g. Mace Windu) are not okay as they sometimes contain plot information Obi-Wan doesn’t have.
I haven’t bothered to make any smooth transitions at all. If I tried to make a couple elegant ones, then I’d have to do it everywhere. Lots of scene transitions have weird cuts with background audio and music because they’re taken out of the original movie. This type of edit is primarily informational.

If someone created metadata for movies on a per-scene basis for which characters were included, we could generate these edits automatically, which would be sweeeeet.

Other potentially interesting POV Edits:
Hans Gruber in Die Hard
Godzilla in any Godzilla movie
Aragorn in The Lord of the Rings
The Terminator in The Terminator
The Shark in Jaws
Prince Edward in Braveheart

Posted in art, commentary, creations | 3 Comments

Deep Fryosleep

(a summary of a drunken conversation from last night)

For the voyage across the stars, deep freezing is bad for most biological organisms. Ice crystals, when they form at the microscopic level, can pierce and break cell walls. Animals that endure deep cold and space successfully[0] do so by removing all the moisture from their bodies first [1].

Tardigrades are really small, like half a millimetre. What happens if you wanted to take all the moisture out of a body of a human? Probably (we were drunk) not much good. Inspired by that scene in The Abyss [2], let’s replace our bodies’ water with some other liquid. Oil doesn’t freeze. That’ll do.

To safely transit across the stars, people will have all their bodily water replaced temporarily with oil. The best way to do this is in some kind of deep fryer [3]. While you’re there, you want to seal in the people while they’re sleeping, so it’s safest to include some bread crumbs so the resulting deep fryosleep cocoon is covered uniformly.

There’s a danger that there will be lurking beasts in the stars or on the planets we’re heading to, who will jump at the chance to nom some human tendies. Even on our planet, not everyone likes every flavour, so the key is to flavour the exterior of your fryosleep cocoon different from the people next to you. I chose Honey Mustard. Someone else chose Ultra Hot.

0: Tardigrades!
1: Removing all your body’s moisture to survive an extreme environment is also a plot point in Three Body Problem.
2: Where to go really deep in the ocean, they start breathing a pink liquid that oxygenates your lungs similar to air.
3: Like a bacta tank for flavour.

Posted in Uncategorized | Leave a comment

Studying Narratives in Small Spaces, Part 3: Conversations

At the Augmented & Virtual Reality roundtables at GDC 2015, there was consensus that moving a player through space made them uneasy. While in the future, I’m sure we’ll discover interesting tricks to ease the transition, what if we aren’t worried about that, and instead an entire interactive narrative experience happens in a single space?

This multi-part series examines inspirations for interactive narrative design in small spaces. These reviews are going to at times sound oddly mechanistic, as the goal is to focus on moments of potential narrative agency and player interaction. There is a separate movement towards Virtual Reality film, where one would semi-passively take in narrative in a virtual environment, but, as usual, I’m more interested in the interactive stuff.

In part of the series, let’s look at narratives that are one long conversation: 12 Angry Men, Circle, and The Man From Earth.

12 Angry Men

12 Angry Men is a well-known ensemble cast scene in the form of an argument between jury members discussing the guilt of the accused. Initially, all except one jury member thinks the accused is guilty, but the one dissenter brings the rest around until the unanimous verdict is not guilty. The setting is a single room, all 12 members around a large board table, while some side conversations happen in the adjacent bathroom. The time of day is mid-afternoon on “the hottest day of the year”, and the temperature continually rises during the play. I reviewed the 1957 movie, but this production had an interesting history, with its first iteration being a live teleplay on CBS in 1954. Only later was 12 Angry Men adapted for the stage, and then a movie.


In Circle, 50 people, unknown to each other, wake up in a dark room, each stuck in a red outline on the floor. Every two minutes, someone is killed by an energy emanating from a dark sphere in the centre. The group discovers they can mentally and anonymously vote for who dies next. They quickly reach a consensus to initially vote for the older people first, which buys them time to try to figure out what is happening. In this game of artificial scarcity, people must convince each other of their self-worth as their number is reduced from 50 to 1.

The Man From Earth

A professor has several of his friends show up at his house as he’s packing up to move on from his career to another stage of his life. On a whim, he tells them that he’s a Cro-Magnon, and has been alive for 14,000 years, moving from life to life so people don’t notice his immortality. He’s encountered many historical figures, and even been a few historical figures. The entire conversation takes place in his living room, with some brief moments outside. He initially poses his immortality as a hypothetical, which his academic friends eagerly take up as a thought experiment. When he tells them he actually is 14,000 years old, many get offended, but are eager to continue the conversation. To ease tension at the end, he tells them it was all a joke, though events at the end of the movie make it clear it was not.


All of these conversations take place in real time without major time jumps. The setting shows gradual progression of time. In 12 Angry Men, it starts hot and gets hotter. In The Man From Earth, the sun is setting and it gets darker and colder, while people crowd closer to the fireplace. In Circle, the setting is artificial constant; however, frames of the film start packed with people, and as people are killed off, frames are mostly filled with black negative space. 12 Angry Men particularly feels like a claustrophobic pressure cooker. The focal length is actually slowly reduced over the course of the film. In a Virtual Reality setting, similar effects over an hour could occur by having the set slowly shrink, or the lighting slowly change angle or colour.

“Show don’t tell” is a common maxim in storytelling. The settings for all these films are mundane; a board room, a living room with a fireplace, an dark room with red markings on the floor. Each of these films features every character giving rich narrations, of what happened in the court room (12 Angry Men) of his meeting with the Buddha (The Man From Earth), or of their dubiously honest biographies (Circle). There are long shots in each film of just a character’s face, speaking. I am constantly impressed with how engrossing these movies are, where if you get slightly distracted, you miss a really rich description. This is a surprising contrast to “show don’t tell”. Are these just well-written movies? Maybe. In 12 Angry Men, and Circle, the characters are captive, whereas in The Man From Earth, characters describe themselves as “trapped by the story”.

“Stage business” is a term for incidental physical activities that actors can do to occupy their hands, express their character, or maintain physical interest. The Man From Earth has the most stage business; the professor’s friends show up with assorted picnic-like food. Later, they serve whiskey and get closer to the fireplace, surrounding themselves with blankets and sweaters. In the middle of the movie, furniture movers show up to take all the couches and tables to the thrift store. For several minutes, all the characters need to stand up and walk around to avoid the movers, before settling back on the floor as the professor’s story continues. In 12 Angry Men, a prop floor plan showing the apartment where the murder took place is briefly taken out, and they adjourn for a bathroom break, where there are a few one-on-one conversations in the bathroom as jurors try to convince others to their side. Jurors are continually wiping sweat from the heat off themselves. Jurors use body language heavily to represent their opinions, leaning forward or backwards, or moving to the side of the table of people they agree with; they can also leave the table to lean against the wall or stare out the window. In one quietly intense scene, as one juror is monologuing, every other juror slowly turns to face away from him, to show they disagree.

All that people can bring is their individual perspectives, and impressions based on their appearance. In The Man From Earth, every character is an academic, which sort of makes it feel like a Robert J. Sawyer novel. They call out how perfect of a group it is to judge his story, a biblical literalist, a medical doctor, a philosopher, an anthropologist, a psychologist, and archeologist. One of the characters has a clearly faltering body and is dying of poor health and old age. He accuses the main character of possibly stealing everyone else’s life force. In Circle, everyone is judged first by their appearance, and later how much of a story they can muster up for why they shouldn’t have to die. Then they find out someone has had cancer, and debate killing her next. Turns out one guy only speaks Spanish and someone quickly decides that they might as well kill him since they can’t talk. They decide a while back that a pregnant mother and her other child (the only one in the group) will probably tie for last, which means one of them will have to kill the other, which is traumatic, so they determine they should make a choice between them earlier.

In 12 Angry Men, by stark contrast everyone is very similar in appearance: older-than-middle-age average-looking white professional men who live in New York wearing business clothes. You could assume this was the nature of casting in the 50s, but it becomes interesting how diverse the perspectives and opinions are, given that everyone starts looking similar. From these tiny differences, erupt a diversity of viewpoints. Some characters are loud, and grab your attention, which makes it more interesting when a quiet character gets their turn for your attention. A surprising theme in this movie is the abject hatred of poor people for being poor. The cast is entirely white, including the boy on trial, and if this movie was filmed in a later era, I suspect there would be tense moments across race lines as well, but the underlying feeling of many on the jury is that poor people are bad for people poor, and probably criminals. Sports are still a metaphor for manly man American relationships.

Stray Notes:

– The Man From Earth would be a great LARP. Come up with an absurd claim about yourself, and then try to defend it in front of close friends. Similar to the game Two Truths and a Lie.

– 12 Angry Men still has a “star”, Henry Fonda. The camera focuses a lot on him, and he seems inexplicably competent in expressing himself, like a distracting Mary Sue.

– In Circle, they briefly develop a theory that maybe they are all on trial and are supposed to judge each other. You could possibly implement this in a multi-user vote-off Chatroulette format.

– In The Man From Earth, he introduces his crazy claim as a hypothetical first. He says “What would it look like if a Cro-Magnon managed to live to present day?” They discuss this for 20 minutes or so before he says “I am immortal”. I think this is a great demonstration of how to convince people of seemingly implausible facts.

Other Small Space Narrative Posts

Posted in art, commentary, small-space-narratives | Leave a comment

Books Read 2017

The absolute coolest book I read this year was Vernor Vinge’s A Deepness in the Sky


Roadside Picnic – Arkady and Boris Strugatsky – Jan 12, 2017

Jonathan Strange and Mr. Norrell – Susanna Clarke – Jan 27, 2017

The New Bottoming Book – Dossie Easton & Janet W Hardy – Feb 14, 2017

Beyond The Rift – Peter Watts – Feb 15, 2017

The Second Machine Age – Erik Brynjolfsson & Andrew McAfee – Feb 17, 2017

Hydrogen Sonata – Iain M. Banks – Feb 25, 2017

Ready Player One – Ernest Cline – March 6, 2017

A Deepness in the Sky – Vernor Vinge – March 20, 2017

The New Topping Book – Dossie Easton & Janet W Hardy – Apr 14, 2017

Smut Peddler 2014 – Apr 22, 2017

The Quantum Thief – Hannu Rajaneimi – Apr 27, 2017

Zeroth Law (Digitesque Book 1) – Guerric Haché – May 9, 2017

How to Appear Perfectly Indifferent While Crying on the Inside – Jay Winston Ritchie – May 11, 2017

Star Wars 26: Yoda’s Secret War: Part I – Jason Aaron – May 12, 2017

First Angels (Digitesque Book 2) – Guerric Haché – May 30, 2017

The Rise and Fall of D.O.D.O – Neal Stephenson and Nicole Galland – Jun 17, 2017

The Last Wish – Andrzej Sapkowski – Jun 18, 2017

Arrows of the Queen – Mercedes Lackey – Jun 19, 2017

The Witling – Vernor Vinge – Jun 21, 2017

Sapiens: A Brief History of Humankind – Yuval Noah Harari – Jun 29, 2017

Crossed: A Tale of the Fourth Crusade – Nicole Galland – July 2, 2017

The Painter of Modern Life – Charles Baudelaire – July 11, 2017

Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture – David Kushner – July 26, 2017

Bioenergetics Primer for Exercise Science – Jie Kang – July 27, 2017

The Mythical Man-Month – Frederick P. Brooks, Jr. – Aug 4, 2017

The Lean Startup – Eric Ries – Aug 6, 2017

The Left Hand of Darkness – Ursula K. Leguin – Aug 10, 2017

The Night of January 16th – Ayn Rand – Aug 11, 2017

Steven Spielberg: A Retrospective – Richard Schickel – Aug 14, 2017

Can Jokes Bring Down Governments? – Metahaven – Aug 20, 2017

Rainbows End – Vernor Vinge – Sept 4, 2017

The Man Who Sold the Moon (short story collection) – Robert Heinlein – Sept 7, 2017

The Five Love Languages – Gary Chapman – Sept 8, 2017

Ingress Origins – Niantic – Sept 16, 2017

Digitesque: Second Contact – Guerric Haché – Sept 28, 2017

Old Man’s War – John Scalzi – Oct 7, 2017

The Ghost Brigades – John Scalzi – Oct 17, 2017

Seven Against Chaos – Harlan Ellison, Paul Chadwick, Ken Steacy – Oct 18, 2017

The Crying of Lot 49 – Thomas Pynchon – Oct 26, 2017

The Sundered Realm, The War of Powers #1 – Robert E. Vardeman, Victor Milan – Nov 2, 2017

Stephen King – It – Nov 16, 2017

Debugging Teams: Better Productivity Through Collaboration – Brian Fitzpatrick & Ben Collins-Sussman – Dec 9, 2017

Crysis Legion – Peter Watts – Dec 23, 2017

Artemis – Andy Weir – Dec 24, 2017

Posted in Uncategorized | Leave a comment

Wonderful Projects I Did With Microsoft’s Kinect

Microsoft has ceased manufacturing the Kinect. Here’s some projects, art and research, academic and industrial, that I could only have done with the Kinect.

The Role of Physical Controllers in Motion Video Gaming, 2011:
Paper here.
Video here
A study where I empirically compared the cognitive/physiological effect of Wii-style versus Kinect-style versus hypothetical 6-dof controller-style (cough VR) motion video gaming.
Inside scoop: Even though this work was at Microsoft Research, I actually did this work before a Windows SDK for the Kinect was actually available, even internally. So, my first week of work was building a system that streamed Kinect data from developer Xbox hardware to a PC. Thus began my long history of hacking novel hardware and software to make interesting demos before it should be feasibly possible. I even had the Kinect for Windows SDK team ask me later how I did it, assuming I’d somehow done their work already for them!

Kinect Fusion, some of the first real-time SLAM in 2011:

I’m in the video demoing some of the capabilities from 6:00 – 6:40

Tweetris, 2011:

A two-player video game where players made shapes from the game Tetris, with their bodies. This is what got me interested in building experiences that turned players into actors, in a shared public setting. Basically the origin of my interest in digitally-augmented participatory theatre games for novice performers.
The team for this was pretty big. We did the original Tweetris installation at a Toronto-based arts festival called Nuit Blanche. Derek Reilly later remounted it several times in Halifax at a similar festival called Nocturne.
Myself and collaborators wrote a pretty in-depth study of player behaviour, which won an award (pardon my horrendous beard, etc. etc., grad school).

Kinect Body Paint, 2012:

Built at a Microsoft-sponsored jam session at the Pervasive 2012 conference

Shapeshifter, inspired by Tweetris, that I worked on with Kyle Duffield until late 2013.

While it worked well as an art installation, most people’s living rooms were too small for Shapeshifter’s intense kinetic movements, so we shelved it. I’ve dreamed of bringing it back some day! Sidebar: this was already from an era where I was a wayyyy worse programmer. I was a good research programmer, but a bad video game programmer, since I was easily bogged down in continually re-inventing the wheel/creating a better mouse trap. I’ve since become way better, but that’s a topic for another day.

Background Activity, a Kinect-Captured Dataset of typical living room gestures. Published 2015.

This felt like the most serious, useful research I ever did. Details here:

Improv Remix, my PhD thesis, published 2016.

Where I built a system for improv performers to record and replay their movement. Sort of like a loop pedal for improv comedy, with some Tupac hologram thrown in there. Credit to theatre lighting and projection designer Montgomery C. Martin for making the holographic part work. One of the curious constraints from this project was that I had to write a library to detect whole-body gestures from behind the users. For this, I invented a UX paradigm called the Vitruvian Menu, which you can read about, among other things like theories of interactive theatre, in my PhD thesis.

Replacing live performers with virtual avatars, 2016

Here combined with a Vive, I can swap out someone’s body with a live motion-captured avatar.

Live motion capture in virtual reality theatre (Raktor), 2017

As part of Raktor, I implemented a way for actors to puppet virtual avatars as part of a live stage show. You can see me puppeting a wizard in the demo reel, and later Jasper puppeting a fairy. Unlike other mocap systems, even real cheap ones like Vive trackers, there’s nothing to put on or take off when using the Kinect, which made it perfect for quick, spontaneous running around on stage taking control of virtual characters.

Posted in commentary, games, me-news, research, theatre | Leave a comment

Downloading a TV episode I had already paid for, in a different country

:| :| :| :| :|

Posted in moments, travel, yak-shaving | Leave a comment

Nomadic Immersive Digital Experience Creator Kit

15″ 2015 Macbook Pro (the last one before USB-C)
2x lighting cables. Second one is 2 metres long; helpful for AR debugging.
Wired mouse (helpful for 3d modelling or level design work
Various chargers, including a battery charger
3D printed phone stand (critical for AR work, thanks @philnelson)
Bridge HMD + Structure Sensor + Charger
Bridge 6dof Controller
Gear VR + Samsung Galaxy S6
Game Controller (for Minecraft in Gear VR, for playing on airplanes)
iPhone 6S (my normal/ARKit dev work phone)
2x Bluetooth iBeacons (Estimote, XYFindIt)

Wallet (includes credit-card size bottle opener/multi-tool)
Proof that I’m a resident of Canada (crossing into the US has been weird in the past):
– Hard copies of ongoing contracts
– Sublet agreement for a place in Toronto

Notebook, blank pages
D20/D&D Dice Set
Graphic Novel “Ingress: Origins”

Toiletries case, including folding toothbrush
Sugar pills (just in case)
Advil (just in case)
Emergency migraine medicine (expensive, prescription, just in case)
Deodorant (Old Spice)
Lock (for gyms)

Rolling suitcase
Yellow REI computer bag with padded laptop section (so useful)

Biking-oriented, sweat-wicking jeans (Duer L2X)
Snapchat Spectacles
3 pairs of underwear
3 pairs of socks
Various wizardy shirts and jackets
Workout clothes
Workout shoes
Various leather things
Leather belt

Posted in travel | Leave a comment

Immersive Theatre Roundup: D&D Yoga

Yesterday, I saw/experienced the show “D&D Yoga”, in the Toronto Fringe Festival.

This is a literal combination these two things, which worked in some surprising ways, didn’t work in some surprising ways. It is a yoga class, run by a real-life yoga instructor Christine Desrochers, during which you go on an actual Dungeons and Dragons adventure, with dice rolling and character sheets and hit points and an inventory. Here’s my character sheet:

dnd yoga char sheet

This is immersive theatre at its most experimental and Fringiest. You should see it.

Other people have written reviews about the show, and I’m specifically going to cover the immersiveness of it. I haven’t done much yoga, but the meditation/yoga I’ve done has always been about bringing your mind to a place of suggestiveness and relaxation, that particularly allows you to feel, temporarily somewhere else. There’s the typical “imagine yourself on a beach” or “imagine yourself in a forest, with birds chirping”. These are mainstays of meditative/yogic experiences. In a typical D&D setup, this immersive, imagination-provoking information is delivered while everyone is sitting, with their eyes open, probably with a beer in hand, while at least one person is looking over their character sheet and doing needless math, and another is requesting the volume go up on a Skype connection.

The most immersive parts of the experience were when the yoga instructor was guiding us through poses related to our dungeon crawl: pushing a boulder out of the way, climbing a wall, shimmying through a crack in the rock, hiding against a wall from goblins, trying to escape from flesh-eating vines (I rolled a Nat 20 and got to notify the party early). This made me wish for more narrative exercise experiences, where my imagination is engaged while my body is being used.

When I run or play D&D sessions, it’s highly banter-y. People interrupt with insane ideas, there are jokes, the tone is that people are encouraged to try to do things and it’s the job of the DM to let them know if they shouldn’t. You’re encouraged not to self-censor. This felt at-odds with an experience where a Dungeonmaster/Yoga Instructor is guiding you through poses as you’re doing a dungeon crawl. In typical D&D, you could say: “Instead of rappelling down, I’m going to use my bag as a parachute”, and it’s up to the DM to come up with a roll for that, while everyone laughs. For this type of show, it would be an un-yogic experience to pause and have the Dungeonyogamaster come up with a suitable roll and pose for you.

Just by itself, the one-shot campaign designed for the show is quite clever. Like I said above, it has to feel interactive without too much player intervention, and it even includes a clever twist in the end, at least in my playthrough. It makes me want more immersive theatre exercise. More! I demand anyone that reads this make more in that genre!

We were given a class in the beginning (Warrior, Rogue, or Mage). Each had a separate attack yoga pose, as well as out-of-combat yogic abilities. (I’m not joking; this was tightly done and I’m giggling at how literally hilarious this design is). One awkward thing was that we had to roll our dice, on the ground, before doing our attack pose. I kept forgetting to roll the dice before, and when we went through to see how everyone did, I had to reach down and roll quickly. It makes me wish for some sort of in-hand dice.

Posted in commentary, theatre | Leave a comment

Splitting a big, single-page pdf into print-size pages

I’m currently putting together a grant application. This means I need to get together documentation and press for what I’ve done. I need to submit this all on printed physical paper. URLs or pdf files by themselves are not enough.

I’m on macOS. Normally, you can just print a webpage to pdf from the browser. However, for some crazily-made websites, this doesn’t work and creates broken formatting. I had to use a plugin (which I now forget, because I’ve since switched computers and it was a few months ago) to print these broken webpages. The plugin outputs the page as a single page large pdf, like so:

Screenshot 2017-06-28 10.17.09

Unfortunately, this is not “ready to print” yet.

The Problem:
I have several single-page pdfs with page sizes that are much larger than 8.5″ x 11″. I want to split these into pages so that they’re ready to print on a 8.5″ x 11″ paper. Fortunately, the layout of the big pdf is such that we can split it into a single column; we don’t have to have split the page left-to-right, only vertically.

Trying to find a solution:
Nothing seems to do this out of the box. In fact, most of the current pdf management tools seem unprepared for non-standard pdf page size.

This is a hard-to-Google problem, in that all the ways to specify it are ambiguous for the purposes of a search engine. Is there a general term for these kinds of problems? When you search for “splitting pdf” or “crop pdf” or “separate pdf pages” the results assume you want to take a pdf document with several pages in it, and remove some of the pages, without affecting individual pages themselves.

macOS’s Preview app’s print dialogue won’t let me print a single page pdf onto multiple pages. When I try to adjust scale of a single pdf page, it crops the page rather than lets it overflow:

Screenshot 2017-06-28 10.26.35

I thought I could maybe use lovely command-line tool image magick convert to take each single-page pdf and crop it into a series of 8.5″x11″ pages. Unfortunately, looks like my source pdfs all have varying widths. While it may be possible, there’s no immediately convenient way to measure the width of a source pdf and split it into semi-overlapping tiles of a given ratio.

I heard that Adobe Acrobat would let me crop pdfs. I installed it via homebrew cask, which is how I install any application whenever possible. After installing it, I that the cropping pdf feature was only available in Acrobat Pro. Cropping a pro feature!? Seems crazy, but given how arduous my search had been so far, maybe that’s not actually that crazy.

Fortunately, I’m already paying for Adobe Creative Cloud at $50 USD/month.

I found the pdf splitting interface in the print dialogue (more on that later). However, Adobe Acrobat won’t print to pdf. And, Adobe won’t print to macOS’s print dialogue – trying to do this crashes Adobe Acrobat. Adobe Acrobat would only print to real printers that were connected to my computer, which I couldn’t do because I’m sending pdfs to a print shop via email.


So, I needed to make a virtual printer that showed up in my print dialogue, but actually printed to pdf. I found one called VipRiser. Here’s the virtual printer:

Screenshot 2017-06-28 10.40.15

With VipRiser, you can choose where the pdf goes. I tried setting it to Desktop, and then Downloads, which VipRiser accepted, yet when I tried to print, it would hang for a bit then told me it “couldn’t find the folder”. So, I selected the “Open in Preview” option instead. Then, after the resulting pdf opened, I could save it to the desired location. This yak is a Matryoshka doll.

VipRiser worked fine after that, but it froze if my Mac ever slept. It also hanged for a shockingly long time while printing documents of only a few pages, like 30 seconds.

Now that actually outputting a document is solved, lets go back to the Adobe Acrobat print interface. Under the “Page Size & Handling” Tab, select “Poster” to choose your tiling options.

Screenshot 2017-06-28 00.11.48

On the right side, you can see the dotted lines cut the big single page into 3 pages. However, the top of the first page isn’t aligned with the top of the original page. I couldn’t see how to fix this. I just decided to accept this and hoped it wouldn’t make my application look too weird.

You can see I set the “Tile Scale” to 60%; I found this out manually. Note in the page visualization on the right, it tells you the document size is “8.5 x 33 inches”. If you make the Tile Scale one bigger, to 61%, it changes the page layout so it’s 11 inches wide, ignoring the Orientation setting:

Screenshot 2017-06-28 00.11.58

But then it worked. Holy shit.

I come across these sorts of “I just want to do a simple thing” deep dives more often than I’d like, so I’ve started a new category: yak-shaving posts. If you aren’t familiar with the definition of yak shaving:

[MIT AI Lab, after 2000: orig. probably from a Ren & Stimpy episode.] Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you’re working on.


Posted in technical, yak-shaving | 3 Comments