Studio Blighty working in Second

Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the last few weeks I’ve been sharing a series of short posts on some of the high level concepts I covered which will hopefully be useful to other people new to virtual worlds. The previous post talked about how you can structure the world so that everyone can move around easily to find everything that they want. This post talks about how virtual worlds can become the workplace of the future.

Not long after joining the Oculus Rooms team a couple of years ago, I first heard Michael Abrash talk about his dream of a virtual office where he could collaborate with colleagues from around the world in VR. My immediate thought was that of course this would happen: I had already done it very successfully for years. This note is an attempt to distribute that past future more evenly.

When I started working at Linden Lab in 2005 I was living in the UK and working from home. After a day of hacking on Second Life‘s server infrastructure I would spend several hours every evening in Second Life working with my colleagues who were in San Francisco in real life.

One of the first engineers to arrive at the San Francisco office was Zero Linden who was a big fan of pair programming. As soon as he was online we would meet in our virtual office where our avatars would sit next to each other and we would discuss software architecture and test cases in Second Life while we used a shared editor to hack on C++ or Python in another window . Over time we started using our virtual office space to host office hours for other engineers with questions about the Second Life server and our initially spartan virtual office grew to include experiments in using Second Life to visualize our work and parts of the Second Life software architecture.

After an hour or so of pair programming with Zero to hand off the code I’d been working on during the UK daytime, other Lindens would start arriving at the San Francisco office and we would start using Second Life for larger scale team meetings. Even without tracked headsets, the 3D positional audio and instantly recognizable avatars made these meetings more successful than video conferencing. Because everyone was in Second Life together I felt far more present than I typically do using video conferencing to join a meeting in Menlo Park as the lone participant in London. Everyone was an equal participant in every meeting.

I expect this to be a common model for collaboration between remote workers in VR: the virtual space provides a forum for communication, conversation and annotation while existing applications, editors and tools are brought in to VR to provide familiar and powerful ways to create content together. I’m particularly excited about the possibilities for people to collaborate on very complex problems at the limit of human comprehension like large scale software development which are often hard to discuss in real life, but possible to visualize, understand and explore together in VR.

While the creators of virtual worlds are likely more open to meeting in them than average, I can imagine many people with remote colleagues also being open to using virtual worlds to allow everyone to contribute more effectively in team meetings. Virtual worlds will be especially valuable in meetings which require a lot of media presentation or recording as that can be more easily automated than in real life.

As Linden Lab became more international with offices in Brighton and Singapore we started holding regular company all hands in Second Life. While these were often plagued by technical troubles due to the high attendance pushing the software to its limits, they were also great opportunities for remote employees to meet people they might not have seen for months and for serendipitous conversations to occur in the hallways outside the conference rooms, just as they do in real life.

This is also a use case I expect to become important in VR and something that is already better supported by Oculus Venues than it was in Second Life. After attending OC3 and OC4 in person I was disappointed that I couldn’t justify the time away from my family to attend Oculus Connect 5, but delighted that I could attend in Oculus Venues where I had a better view of Hugo speaking on stage than I’d had in real life. I am sure that VR can enable myriad opportunities for networking and serendipitous conversations which don’t happen when people just catch up on conference talks on YouTube.

After working for years both on and in Second Life it is clear to me that using VR for work collaboration is both very valuable and very possible. It’s also clear that there is a lot of overlap between the social and work opportunities for VR. The Linden Lab all hands in Second Life looked a lot like the Accelerating Change conference in Second Life. The office hours held for Linden Lab engineers were so successful I started holding office hours for people building in Second Life. The time I spent working with Osprey Therian on Combat Cards in Second Life was just as rewarding and productive as the time I spent with Zero Linden working on scripting APIs. A lot of the most valuable use cases for VR will combine work and fun and we should beware false dichotomies. Any Metaverse worthy of the name will be both the future of work and the future of fun.

Small Places Loosely Joined

Wed 23 September 2020 by Jim Purbrick


Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the next few weeks I’m sharing a series of short posts on some of the high level concepts I covered which will hopefully be useful to …

read more

A Tall Dark Stranger

Wed 16 September 2020 by Jim Purbrick


Over the past few years I’ve spent a lot of time helping people new to virtual worlds understand how they work. Over the next few weeks I’m going to share a series of short posts on some of the high level concepts I covered which will hopefully be …

read more

The Conversation Around Content

Wed 09 September 2020 by Jim Purbrick


Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the next few weeks I’m going to share a series of short posts on some of the high level concepts I covered which will hopefully be …

read more


Tue 08 September 2020 by Jim Purbrick

Before my recent post about leaving Facebook, it had been a while since I’d updated The Creation Engine and it turned out I had some housekeeping to do. After pushing the Pelican output to I got a mail from GitHub saying that …

read more

0 to 1

Thu 20 August 2020 by Jim Purbrick

Facebook badge

8 years ago London was hosting the Olympics and I met Philip Su for the first time at Browns in Covent Garden to talk about the engineering office Facebook was planning to open in London. By the end of this year Facebook London will have thousands of people working in …

read more

This blog is 10

Mon 02 July 2018 by Jim Purbrick

Just over ten years ago I set up The Creation Engine No. 2 after previously blogging on the original Linden Lab hosted Creation Engine and before that on Terra Nova. So, while I’ve been blogging for almost 14 years, 10 years of The Creation Engine No. 2 seems like …

read more

Replicated Redux: The Movie

Tue 22 May 2018 by Jim Purbrick

The recording of my recent React Europe talk about Replicated Redux is now online and I’ve written several other posts describing designing, testing and generalising the library if you would like to know more about the details. If you’d like to play the web version of pairs or …

read more

Replaying Replicated Redux

Fri 10 November 2017 by Jim Purbrick

While property based tests proved to be a powerful tool for finding and fixing problems with ReactVR pairs, the limitations of the simplistic clientPredictionConstistenty mechanism remained.

It’s easy to think of applications where one order of a sequence of actions is valid, but another order is invalid. Imagine an …

read more

Building Safety in to Social VR

Thu 26 October 2017 by Jim Purbrick

Last year I hosted a panel on creating a safe environment for people in VR with Tony Sheng and Darshan Shankar at OC3. I commented at the time that the discussion reminded me of the story of LambdaMOO becoming a self-governing community told by Julian Dibbell in My Tiny Life …

read more

Testing Replicated Redux

Mon 31 July 2017 by Jim Purbrick

Opening a couple of browser windows and clicking around was more than sufficient for testing the initial version of ReactVR pairs. Implementing a simple middleware to log actions took advantage of the Redux approach of reifying events to allow a glance at the console to reveal precisely which sequence of …

read more

ReactVR Redux Revisited

Tue 04 July 2017 by Jim Purbrick

There were a couple of aspects of my previous experiments building networked ReactVR experiences with Redux that were unsatisfactory: there wasn’t a clean separation between the application logic and network code and, while the example exploited idempotency to reduce latency for some actions, actions which could generate conflicts used …

read more

Generation JPod

Sat 03 June 2017 by Jim Purbrick

I’ve just got back from Kaş where I spent a lovely few days celebrating Pinar and Simon’s wedding and while there spent a few hours reading Now We Are 40: a thoughtful and entertaining look at everything from house music to house prices from the perspective of Generation …

read more

2² Decades

Thu 20 April 2017 by Jim Purbrick

Several years ago when we were in 100 robots together, Max was celebrating his 40th birthday. When I said that mine would be in 2017, it felt like an impossibly far future date, but, after what feels like the blink of an eye, here we are.

Along with many other …

read more

VR Redux

Wed 04 January 2017 by Jim Purbrick

Mike and I have been talking about how to easily build simple networked social applications with ReactVR for a while, so I spent some time hacking over the Christmas break to see if I could build a ReactVR version of the pairs game in Oculus Rooms. Pairs is simple and …

read more

Creating A Safe Environment For People In VR

Mon 31 October 2016 by Jim Purbrick

I was very happy that Oculus found time at OC3 to host a panel on creating a safe environment for people in VR. As social VR becomes more popular over the next few years it will quickly have to learn how to keep people safe together in shared environments. Some …

read more


Sun 21 August 2016 by Jim Purbrick

At the 3rd Party Dev State of the Union at EVE Fanfest 2016 earlier this year, CCP FoxFour drew my attention to a limitation of the current approach used by crestmatic to generate CREST documentation: it only discovers resources always reachable from the API root from the perspective of the …

read more

Strange Tales From Other Worlds

Tue 10 May 2016 by Jim Purbrick

At the end of last year, Michael Brunton-Spall and Jon Topper asked me if I would like to give the opening keynote at Scale Summit as I had “lots of experience scaling weird things”, by which they meant Second Life and EVE Online. I immediately thought of The Corn Field …

read more

Towards A Generic Media Type System

Sun 17 April 2016 by Jim Purbrick

The early days of RESTful hypermedia API design tends to involve lots of homogeneous collections. In the case of CREST vnd.ccp.eve.Api-v1 pointed to the logged in vnd.ccp.eve.ccp.Capsuleer-v1 which pointed to a vnd.eve.ccp.CharacterCollection-v1 of contacts which pointed to many vnd.ccp …

read more


Fri 15 April 2016 by Jim Purbrick


3 weeks ago I spent a few hours with photoshop working on the Story Bird logo that Linda made a while ago to make it suitable for print. 2 weeks ago I spent a few hours researching the best way to convert the 24 bit 48 Khz Story Bird mixes …

read more
Fork me on GitHub