The Most Portable VR Workstation

With the consumer Rift and Vive coming out… (err, now, oops) I figured I should finally get around to publishing a write-up on my portable VR rigs. Last year, I built one based on a Pelican 1430 case (gallery, parts list, kit writeup) that allowed me to travel with a DK2 in a single package that would fit underneath an economy airline seat. I never had a problem traveling with a carry-on backpack and this rig as a personal/laptop bag.

Also, fits under an Economy Seat

Honestly, this worked much better than I expected, and I lugged it around 4 continents without any issues either with airport security or with the hardware itself (astounding considering the parts were all friction fit except for a single 3D-printed clip for the motherboard and screws drilled into the inner lip of the Pelican for the graphics card). The biggest negative of this setup was that it was a bit on the heavy side. Fully packed, it was usually just shy of 8kg (18 lbs), which even with the top-of-the-line Tom Bihn shoulder strap, was a bit tiring. (The Pelican case by itself was 2.6kg!)

The biggest reason for swapping this setup out, however, is that both the consumer Rift and the Vive kits are too big to fit in the Pelican case, so the form factor just didn’t really make sense anymore. The Rift CV1 is the more compact of the two (if you can unscrew the tracking sensor from the stand), but the HMD headband/headphones make it very brittle and will require a bit more thought for packing up (some sort of hatbox with custom foam?). The Vive Pre, despite the extra components actually packs up w/ very little fuss into a small bag:

Now, before I go further, I’ll just mention that if you simply want the simplest VR-ready PC solution, you can order one of the Oculus-recommended or Vive-recommended systems. If you’re looking to build your own/find the cheapest system, you can check out the /r/Oculus “System Build Megathread” (worth a mention is the HP VR PC deal that pops up every so often – you get a lot of hardware for your money). There are lots and lots of options.

If you need a portable system, however, your options are more limited. If you don’t want to build a custom system, then you have basically two options: you can now choose to buy one of the few laptops that are officially recommended for Oculus compatibility that run “desktop” Nvidia GTX 980 GPUs, or pick from a couple vaguely compact Mini-ITX systems.

If you go with the 980 notebook solution, there are a few models out right now, and some more coming out “soon”. AlteredQualia has a pretty complete list laptop models. You should expect to pay $3000-3500 for these systems. One very important thing to note is that these laptops throttle aggressively on battery power and can only run VR content when they are plugged into external power. All the laptops with these GPUs are at least 17″ and it’s worth noting that they are both larger by volume (6L+) and heavier (3.8kg+) than the custom build I’ll be getting to.

Note: You might be able to get away with a non-Optimus 980M laptop, that can be more reasonably priced. If that will work, then the SAGER NP8658-S/CLEVO P650-RG (which supposedly doesn’t have Optimus) would actually take the portability crown – it’s a 15.6″ laptop that is <2.7L and 2.5kg. Also, once next-gen Polaris/Pascal GPU parts make their way into 15″ laptops (come Computex?), laptop form factors will probably be preferred to a portable desktop system if they can run sustained without throttling.

For a pre-built small form factor (SFF) PC, you have basically two “smallest” options. The Alienware X51, which is 10.4L/5.5kg, or the MSI Nightblade MI2, which is 10.2L/8kg. IMO, both of these are unacceptably large and heavy for a truly portable system (by which I’d define as pleasant enough to shoulder-bag or to put into a backpackable system), but I’ll put these out there just for completeness.

Update: MSI’s Vortex G65 (video review) is a 4kg, 6.5L (268mm tall, ~190mm diameter cylinder), $4K system.

We’re almost ready to get to the build, but again, in the interest of saving your time, here’s a nice little table that shows your options:

As you can see, the two custom cases that are available are much smaller than the pre-built SFF systems. While the Logic Supply MC600 (review) is technically a smidgen smaller volume-wise, and is also a bit cheaper, I went with the S4 Mini for a couple reasons. The S4 case is the passion project of a SFF enthusiast and I’d been following along on the case development for quite a while (this little 4-episode mini-doc is great if you’re into hobbyist hardware), so it was nice to support that kind of thing. But also, from a technical perspective the case design is great. It has well-finished and mostly rounded corners, making it very bag-friendly (it was designed to be carried around to LAN parties, etc). It also comes with a default powder-coated finish that is tough as nails (again, perfect for travel). And lastly, being all aluminum, it’s a bit lighter than the steel MC600, while probably being more sturdy.

I’ve been naming my workstations after the Ono-Sendai cyberdecks – this is ono3, and here it is with some props for size reference:


Mostly, I simply moved the items from my Pelican case into the S4 Mini case, but there’s some details that might be worth noting:

  • Final weight for the complete system is 3.4kg. It fits in my 31L Ortlieb MountainX w/ all the rest of the stuff I carry, meaning that I can carry-on the actual VR gear in a separate bag – ideally, I’ll find a hat/bowling ball bag or something that can carry both.
  • All the systems listed except for the MSI Nightblade MI2 use external DC power supplies – the 330W or 350W PS’s will add about an extra liter of volume and extra kg of weight. The HP Voodoo/Firebird 350W is significantly better than the Dell 330W and tends to be cheaper to boot. DC power supplies are actually preferable since it makes external battery power a breeze (tune in next time…)
  • I use an Intel Core i7-4790K CPU. This is a “95W TDP” rated part, but measuring power usage from the wall, there was over an 80W difference from idle at 800MHz to running w/ Turbo disabled at 4GHz. When Running at 4.4GHz Turbo, max power usage went up by another 50W before thermal throttling (neither the Zalman CNPS2X or the Noctua NH-L9i coolers can handle anywhere near that much heat dissipation). If you’re building a new system, I’d recommend a 35W or 65W TDP Skylake, which should be more than enough CPU horsepower for VR workloads
  • The fastest current mini-ITX sized GPU is the R9 Fury Nano, however despite it’s seemingly reasonable 175W TDP rating, its instantaneous power draw can cause system resets (video of tests) w/ the HDPLEX and HP Firebird/Voodoo 350W power supply combo. I use a Galax GTX 970 OC card that’s reasonably priced, and despite not being officially a mini-ITX card, fits fine (better than some of the shorter, but out-of-spec width cards, I imagine)
  • If you buy an S4 for use as a VR workstation, make sure to request HDPLEX mounting for your S4 (some less screws to remove, an extra drill hole). You’ll also need an HDPLEX w/ 6+6 PCIe power, so be sure to request that in your ordering notes (easier to order from HDPLEX directly vs Amazon). Also, be sure to watch the S4 Assembly Video first before assembly. Putting together your own system isn’t hard, but there’s a few things things with the S4 that are a bit tricky. You might also want to ask Josh to assemble the power switch (which may require soldering, if you just order the recommended bulgin switch) or I believe he’ll also assemble entire systems for a fee…
  • For accessories, I travel w/ a Pure Pro 60% keyboard (a great 60% that has proper arrow keys) and a slightly-overpriced, but ultimately quite nice GeChic 13″ 1080p IPS screen (USB-powered, HDMI input; a topic for another post)

ono3 internals

Here’s a sheet that has the internals of the Pelican system, and what changed with the my S4 move:

For those looking for more details (and for a preview next post where I talk about DC-power and backpack mounting, hopefully before Vive deliveries…), you can check out my build log on the SFF Forum.

Update: here’s my writeup on battery-powering the system.

Update: as of November 2016, here are your most portable options:

  • There are now several <2kg laptop options that have GTX 1060s. The MSI GS63VR, the Aorus X3 Plus v6, and the Stealth Blade (warning, reports are that it thermal throttles too much for stable VR)
  • For a slightly smaller footprint (and a sweet OLED screen) but slightly over 2kg, there is the Alienware 13 R3
  • There’s a new small non-laptop option, the Zotac ERX480, EN1060, and EN1070. These barebone systems start at about $1000 and they won’t actually save you much weight (it’s also around 2kg) or volume (it’s actually 2.6L say vs 1.7L for the GS63VR), but if you don’t need the actual laptop bits, you might save a few hundred bucks (maybe, you can probably minspec a 1060 laptop about the same). You can get a reasonably priced priced 1070 as an option here though, which isn’t possible with the laptops.

Some Stuff

VimR is a new OS X native vim app. Pretty cool.

Interesting looking affordable hand position tracking/future haptics interface (discussion:

I mentioned in my last post buying a crappy keyboard to use. It’s been making me itch for a better travel keyboard. There are some good 60% keyboards…

I’ve spent a bunch of time the past couple weeks diving back into node.js and into node-webkit. I started building a prototype in “native” node-webkit, but went back to separating the core app as a traditional (express-based) web app so that it can be used both online and locally more easily.

Between that and work, I haven’t been exploring Berlin as much the past few weeks (plus the weather has been sort of wet and cold), but I’ll try to be doing some of that the next couple weeks before I end up back in the US.

Location Set By GPS

For those that are interested, I’ve launched a new travel blog: Location Set By GPS where I should be updating more regularly.

I haven’t been writing as much as I should, but a couple short notes:

  • I wrote my first Slack bot and am convinced that it’d be a killer app (and they’re not so far away) if they would implement a way for non-technical end-users to easily create their own. (think Excel Macros, IFTTT, Pipes)
  • I’ve been working with inline editors. Currently Raptor, but saw two interesting WP related things. One, a pay-editor called Barley that looks pretty slick, and the other being the WordPress Front-end Editor in development
  • My DK2 finally arrived in Los Angeles, now it just needs to be shipped to Berlin…

Featured on Flickr

Late last night I started noticing something funny – I was suddenly getting a stream of Flickr notifications on my phone (I’ve actually since temporarily disabled notifications since they got a bit out of control). I jumped onto the site to see what was up, and to my surprise, there was one of my photos sitting on the sidebar. A click through lead to the blog post (the only CC licensed one!). Even neater, it’s also currently the splash image on the main blog. Here’s the pic btw if you’re too lazy to click:


While I’ve had some links from the dev blog in the past, this is actually the first time I can recall any love from the main blog (after 10 years, finally! 🙂 This also coincidentally coincided w/ hitting 1M views (not sure if this was just counting from when the stats system started) total.

While I rarely look at the stats, I figured this merited some special attention, so after a full day (Flickr’s internal stats segment on UTC), here’s some tidbits:

  • Total traffic was about 25-30K views
  • Less than 100 visits came from the Flickr blog! Most of the rest (~25K) came from the Flickr site itself (sort of makes sense but the sidebar links to the blog post so who knows what’s up)
  • Only 1,088 of the views went to the specific picture. It acquired 233 likes. (21.4% of people who saw it liked it?!?)
  • Probably most interesting, is that over a dozen other photos had 300+ views and over 50 other photos had 200+ views that day – this is an incredibly long tail, and I think while there’s been much bellyaching about the new Flickr design, I think that sort of engagement has a lot to do w/ how quick/easy/rewarding it is to page through streams.

It’ll be fun to see what all these new followers think about my China pics (I’ll be uploading in the next couple days).

My Amnesia Fortnight 2014 Picks

Today’s the last day to vote, so figured I’d post my picks for the 2014 Amnesia Fortnight.

It’s not the most ambitious idea, but I think this is the most likely of Pendleton Ward’s pitches that will be a fun game in 2 weeks:

There are tons of great pitches (wish I could vote for more than 3!) but here were the ones I ended up picking, weighted against cool Rift experiences.

2014 Personal Data Storage

A few years ago, I went ahead and built a NAS w/ 4x2TB drives, about 7TiB of usable storage (interestingly enough, 2TB drives are the same price as they were 3 years ago). I had a separate 2x3TB external setup for backup, as well as way too many external drives (about 10TB of loosies). Later, I also inherited another microserver (w/ the same 4x2TB setup) from work as we switched to two Synology DS1812+‘s in the office. And I also have an old Drobo Gen 2 that’s still ticking along.

As you might surmise, my personal storage situation has been… loosely managed. I have a spreadsheet that helps a bit, but it’s always a mess as I run out of space on a drive and the nice clean schema gets all out of whack. Recently I decided to try to get a better handle on things, and acquired 5x4TB of external drives to help rejigger things. This was a good start, but as the drives on my main NAS were giving up the ghost, and as I was digging through my backups, backups of backups, and other duped files, I realized I probably needed a new NAS to help work things out.

The state of dedupe/file organizing tools is the topic of another long blog post. I’ve used Disktracker off and on, which is ancient, and not quite what I want, but seems to indexing tens of millions of files the best. The general state of desktop file management/indexing/duping is quite sad however, especially if you’re interested in consolidating and comparing entire folder structures/partial drive backups. (as far as I can tell, there’s no good tool for that).

In any case, after a late night of clicking around, I decided that as the Drobo 5N was pretty reasonably priced, and that as my old Drobo was still working fine after almost 6 years, and people online (and Drobo themselves) seemed to think that the performance was much improved, that it might not be a bad way to go. I picked one up about two weeks ago.

So, how is it? Well, for general large file copying, it seems fine (I can get about 80MB/s transfers on my netwrok). However, my primary use case involves lots of rsyncing and dealing w/ small files, and here, the Drobo 5N is, as far as I can tell, pretty pathetic. You can read some more details, but even with the mSATA accelerator (I am using a 128GB Plextor M5M which is specc’d for 76K write IOPS), rsyncing maxes out at all of about 700 IOPS.

I *just* finished rsyncing my Drobo Gen 2 yesterday, and I have a 4TB drive that will hopefully be done in the next day or so.

Still, this setup I think is good enough as I prep for moving about. We’ll revisit this in a few years, I guess.

Pythonista and iOS Automation

While in general, iOS is pretty nifty, it has some pretty annoying limitations, particularly in regards to inter-app communications (more specifically, the lack thereof). While Pythonista doesn’t complete fix this terrible situation, it does provide some really interesting workarounds.

I’d heard of Pythonista when it first launched, but mostly ignored it since it just seemed like just another Python REPL. Now, it is a Python REPL (2.7) and editor, and it also includes its own 2D graphics and multitouch libs so you can make simple interactive apps with it. Where it starts to get really interesting is that it also includes a bunch of modules, that exposes the iOS clipboard, contacts, location, notifications, etc.

Mostly importantly, it has urllib and webbrowser module support that supports iOS URL callbacks. Pythonista itself supports its own URL scheme of course, lending itself to being called remotely.

Another useful app to use in conjunction with Pythonista is Agile Tortoise’s Drafts. It’s a text editor built specifically to interface with other apps and can serve as an easy briding tool.

There are a fair number of tutorials/guides/scripts available online.

First, some general reference:

And some useful scripts:

Specific HOWTOs:

Making Safari Usable

One of the things that Activity Monitor’s “Energy Impact” fields have made obvious is that Safari 7.0 is significantly more energy efficient than both Chrome 30.0 or Firefox 27a1.

After regular usage, Safari has an Average Energy Impact of about 4-5 5-6 vs Chrome and Firefox hovering at about 8-9. For comparison: Airmail averages about 3, Spotlight is about 2, and Dropbox 0.75. Playing a 720p H.264 MOV in Quicktime Player is about a 9, and playing a 720 H.264 MKV in VLC is 20+.

Recently I’ve been migrating away from Chrome and back to Firefox, as the former has gotten more sluggish, and the latter has gotten a lot faster (Chrome is still my preferred browser for dev and the only option for SSBs), which actually has left me in a good place to try switching to Safari, as I’ve pared down my “necessary” plugins:

  • 1Password 4 – 1Password 4 is a huge improvement and the new way it works w/ browsers (as a simple frontend that interacts w/ a menubar app) makes all the browsers extensions work equally well (previously, the Firefox plugin would constantly freak out). With all the recent hacks, having unique passwords is more important than ever and I can wholeheartedly recommend 1Password.
  • Adblock – Safari only supports Adblock, not Adblock Plus but they both work well enough
  • Lazarus – if you’ve ever lost something you typed into a text box due to a browser close/crash you’ll want this. Available for Chrome, Firefox, and Safari
  • Evernote Clipper – I use Evernote for storing everything. Chrome’s extension is newer/fancier (and has some unique features) while Safari and Firefox are both an older version (but serviceable). I sort of like how the older version works so I’m not really complaining, although it is a bit curious.
  • Pocket – I’ve been using ReadItLater/Pocket for years. All the plugins add a “save to pocket” to the context menu, which is pretty much all I want. The Chrome version is a bit nicer since it has a colored icon in the context menu that actually makes it noticeably easier to us.

I also am using QuickStyle for Safari, which is like Stylish for Firefox or Stylebot for Chrome, but that’s more of a nice-to-have.

The most annoying thing I’ve found so far with using Safari, and probably the biggest reason I’ve never stuck with it, is that CMD 1-9 are mapped to the bookmarks bar and not switching tabs. It’s confounding (especially as I hide and don’t even use the bookmarks bar).

The solution for this is a SIMBL plugin called SafariTabSwitching – there is an installer on the Github page so installing is a snap, and the latest version is updated for Mavericks and is working great.

There are still a couple other niggles (only a single tab unclose), tab-close focusing is different, both Chrome and Firefox have a very useful contextual status bar (ie, when you mouseover a link, the URL shows up in the bottom left), so we’ll have to see if switching to Safari gives enough battery life to make it worth it. I’ll probably be updating this in a week or two w/ how it turns out.