Vim Motion Graphics

So I’m a fan of this program called “Vim”. Vim if a text editor that, among other things, lets you move your cursor around the screen really really quickly.

I wondered what it would feel like if my Vim cursor left a trail — like a pebble skipping along the surface of a water. So I decided to build a (very limited) prototype. Here’s a screen cap of that prototype:

If you want to try the prototype out yourself, you can do so here. Warning — it does seem to chop a bit in Firefox, so I suggest trying it in Chrome:

Why prototype this?

My initial impulse was simply that I felt the desire to create something pretty. I like the feeling of flying around quickly with Vim, and I wanted something that helped me express that feeling.

Once I built this and felt how my fingertips fired impulses around in a Vim buffer, I got inspired. I couldn’t help but wonder if there was potential for more than just an aesthetic value. If this simple effect existed in a proper version of Vim, could it also serve a functional value?

In a limited way I think the answer is yes. This would be useful anytime I lose my cursor. Maybe it’s because my Vim Motion was bigger than expected. Maybe it’s because I’m disoriented after my buffer scrolled elsewhere. Maybe it’s because I hit a typo. For whatever reason, I think a simple ripple would help me get my bearings.

But I also wonder if these ripples could hold semantic value. Perhaps ripples could reflect off the edges of the file. If your buffer were at the end of the file, you’d get a ripple reflection off the bottom edge of the screen. If instead you were mid-file, the ripples would exit off the bottom of the screen signifying more space down there. This could also help signal if you are in a soft-wrap or no-wrap condition.

My mind also wanders to other types of effects that I’d love to at least try out. Maybe I only crave this because sometimes Vim is so fast that I wish I had some transition to help me better understand what I just did. Anyhow, here are some other thoughts:

  • When you delete large chunks (typing “da]” to delete an entire bracket pair), see a ripple visualization that outlines the extents of what was just deleted

  • Command line mode (hitting “:”) will ripple from down below

  • Different ripple colors for different modes (normal, insert, visual)

  • Visual mode to cast large ripples as per the geometry of the entire selection

  • Tiny ripples to indicate inertia of last motion. For example: “i” for insert would cast a mini ripple backwards, but “a” for append would cast a tiny ripple forward.

Is this even possible in a real Vim environment?

I have no idea! All I know is that it’s not possible for me to complete in any reasonable amount of time. This is why I decided to blog about it — to note how far I got before completely abandoning the concept.

That said, the premise I think is at least a theoretical possibility. The prototype design treats the Vim buffer as a 2d graphical array, with each “pixel” being the width and height of a single character. In principle, a grotesquely hacked Vimscript should be able to power this with a sufficiently powerful computer. How grotesquely hacked, and how powerful the computer needs to be, I have absolutely no clue.

Another possibility is building something for Atom, which is built upon common web technologies. In some ways CSS sounds like a smarter way to approach this problem. Again, no clue what the level of effort would be here either.

The last idea I had would be to run a transparent Vim window on top of another window that somehow knows cursor location and can render graphics using a different, more sane graphics library.

A few VR180 videos...

So over the past few months I’ve made a handful of VR180 videos. Here’s the playlist so far:

My favorite video in the playlist is when I captured Icon Sleepy Tut. Happy I was able to get footage of him in stereoscopic VR180.

Also, at my urging my good friend and very talented photographer / videographer Eric made a VR180 reel of DC which turned out beautifully.

I have thoughts on a few other videos I’d like to produce. I know weird people who know how to do weird 3d things, and think just filming doing cool stuff could be nice.

Another neat aspect to having a VR180 camera is that I’ve been taking 3d shots of my family and they’re turning out quite nice. This Christmas I’ll be getting my dad a “Retroviewer”, which is essentially a “View Master” but with 3d photos I made. I haven’t seen them yet (I know, I’m late for Christmas), but I’m really hopeful that they turn out well, and if they do I may order one for myself.

XOXO, my experience + VR photos...

How I found out about XOXO

Many years back, I somehow stumbled upon I actually can date it to 2011 because I remember the blog post I saw was a link to the House of Cosbys. A comedy sketch created by a relatively unknown Justin Roiland that, for a variety of obvious reasons, hasn’t really aged well, but was still packed with sparks of brilliance.

Anyhow, was a blog that managed to stand the test of time, and at some point I caught wind that the owner of the blog, Andy Baio, was running a conference. I was on the fence about going in 2016, but was living in NYC and had a hard time justifying the flight to Portland just for a conference.

Then, after the conf was over, I saw some amazing talks from 2016 and started kicking myself. My favorite was a talk by Jenn Schiffer. Also a fan of the talk by David Reese. Started looking back in the history and found this fascinating and sometimes bizarre gem as well by Justin Hall.

Anyhow, now that I live in Seattle, when the announcement for the 2018 conference popped up, I decided to go.

So on Thursday I left for work early to drive down to PDX to catch the conference.

It was by far the best conference I’ve ever attended. While the talks were great, the crowd was the main attraction. Everyone was a creator, and they tended to approach their own crafts with genuine human curiosity and interest. Also, people were abnormally kind and nurturing and gave others the space needed to share what they were up to, no matter how weird their way of thinking was…

Speaking of weird ways of thinking, I spent my time sharing what I’ve been fascinated by and curious about recently: VR photography. I had with me my VR camera along with my VR photo viewer:

With this setup, I would take a VR photo, and then pull out this VR headset out of my pocket and let people see themselves in this VR standard. And what’s so amazing about this VR standard is that you can see what just occurred, in 3d, and at full scale. The act of shooting my subject, transferring it to my phone, equipping this ridiculous VR headset to my phone, and sharing — all of that became a nice cozy ritual, which sorta felt like the ritual of a Polaroid. It also packed a nice wow factor when people finally saw themselves in full scale 3d.

So the photos I took were of some really amazing and interesting people, but one challenge of this type of photography is the setup it takes to view. Recently, I’ve discovered that a great way to sidestep this challenge is through gifs that wiggle between the two different lenses of the camera. So if you don’t have a VR headset and and want a glimmer of the 3D-ness of the photos, here are those gif representations:

If, however, you do have a Google Cardboard, or are willing to buy (currently only $3 over at Best Buy), you can peep the original, full-scale 3d photos in this album. To view:

  • Install “Google Photos” onto your phone

  • Click on the 360 icon on your phone when looking at the photo

  • Click on the Cardboard icon in the lower right corner of the image

  • Load your phone into your cardboard

At the conference, I got to dance w/ some really great shakers and movers, too! Portland has really REALLY stepped up it’s game in the dance scene over the last few years, and I saw some locals get down at a funk night while I was there. I also got to share a dance session with others at the conference, both at the funk night as well as at the party the last night of the conference, where there was a big dance circle.

I usually dislike dancing with strangers. I almost always abhor dancing with tech conference crowds. It’s often lots of awkwardness and pretension. But the dance party at the closing night of XOXO felt like we were at a wedding or something, just people who were genuinely happy having a good time and sharing and creating. I really still don’t understand how it was such a great environment, and I’ll be scratching my head for a while tryin to figure that out.

Anyhow, I’ll keep gushing about this conference for a few months, I’m sure. My wife rolls her eyes now when I bring up XOXO because I talk about it so much. As in, apparently it’s recently become my new “one time at band camp” moment.

Seattle VR Hackathon being announced -- in VR180

This last weekend I went to XOXO festival and had a totally bananas incredible time. I'm nowhere near through processing it as I met so many incredible and fun people, saw some phenomenal talks, and learned just boatloads.

I do eventually hope to blog more about the festival and how amazing it was, but real quickly I wanted to post this. Here's a photo and video I shot with my VR camera that I wanted to share ahead of everything else cuz of the timely nature of the message.

This video is a VR180 video.

It is compatible w/ most VR, including cheapo $5 systems. Click here for instructions.

So yeah, the Seattle Hackathon is coming up! That’s Oppie, the Seattle Hackathon mascot, being puppeted by Eva Hoerth, who I ran into at the XOXR Meetup. Consider attending the hackathon! Or, if you’re inclined, mentoring for it!


Truthfully, the photo format, is kinda awkward to deal with. The left & right eye images are linked through a unique VR180 format, which you can only separate w/ OSX or Linux. The distortion makes things hard to deal with. And while the images are nice and big (4k / eye), it can makes the handling a bit more cumbersome…

Well, at some point I remembered a cute trick I’d seen somewhere on the internet before. Just wiggle between two cameras, and you can instantly 3d-ify a stereogram... no 3d glasses required!

So this .gif ping-pongs between the left and right camera lenses. Check out how 3d this 2d image looks!


On the topic of blogging...

I realized recently that as much as I do it, I don't actually like chatting on social media.  Like, there are some aspects that are exciting... the freshness / liveness / the exhibitionist nature of it... but I've recently found it to be tedious, at least for what I want from the internet.

I was a pretty active blogger back while blogging was a more commonplace thing to do, and I really enjoyed doing it.  I think one of the main reasons I enjoyed it was because of why I did it.  I began blogging was because of a habit I picked up in college.  I went to art school, and an important part of my creative process was simply sharing work.  When I graduated I lost the rigid structure of weekly critiquing sessions imposed by my teachers, so I simply looked for something else and blogging filled that role.

I began, I think, by sharing incomplete ideas... ramblings.  Just things that I could tell were a part of my process -- my fascinations.  I didn't worry about appearing boring because the artistic process is often oh-so-painfully-boring.  I didn't strive to blow people's minds or change my audience's opinions.  I didn't even really have an audience in mind.  I just wanted to air out my thoughts a bit, I guess.

At some point along the way I met internet fame.  Nothing huge, but enough to excite me and make me aware of the potential eyeballs around what it meant to be on the internet.  Enough to make me want to be more concise and respect my audience in a new light.  Admirable, sure, but it started to mean that I'd not just let loose on what I loved because I was afraid I'd lose audience.

Oh, also, social media blew up -- which I think did something to how I engaged with the net -- like all of a sudden I was given a role to play.  While I used to be some dude who just shared as a part of my process, I let social media change me so that I became hyper-self conscious.  After all, I had this very 👍likeable and subscribable👍 identity to live up to.

Anyhow, I'm writing this because it fascinates me, and because I'm realizing that I really miss blogging... like, the type of rambly blogging I used to do.  So I think I'll return to this old format of internet publishing and work on keeping true to what I came here to do in the first place -- which is to give a status update on my progress.

So yeah -- that's where I'm at in my process.  I expect to be rambling a lot more on this blog shortly.  We'll see...