About This Blog

What’s all this, then?

I intend to use this blog as a platform to talk about, and engage in discussion about, all things related to immersive computer graphics (what some might call “virtual reality,” but that’s a topic for another post), primarily from a developer’s rather than a user’s perspective.

Concretely, this means I will talk about insights gained or problems encountered while writing software, comment on things others have said, discuss my own opinions on how to do things the “right way” or the “wrong way,” post updates on software development, comment on new VR hardware as I get my hands on it, etc.

But why?

Primarily, because someone suggested I should do it, and made a convincing argument. But also because I have learned from posting videos to YouTube that being able to interact with viewers/readers via comments is useful, and my current static web page doesn’t support that, and I don’t want to make videos about things that are more easily talked about in text.

Why do I think I’m qualified to write about this?

I’ve been writing 3D graphics software since about 1985, including raytracers, renderers, and geometry modelers. Not long after, I developed my first anaglyphic renderer (which didn’t work so well, but that’s a topic for another post), and I wrote a renderer for single-image stereograms (aka “Magic Eye” images) when I went to university and started getting serious. Entering university was, incidentally, when I realized that I was utterly wrong when I thought that I already was an awesome programmer before (but that’s a topic for another post).

After getting my Master’s degree (with a focus on computer graphics, or rather computational geometry), I came to UC Davis to get a PhD. This is when I started getting into “real” VR: coincidentally, the UC Davis graphics group had just taken delivery of an early immersive display environment (IE), a so-called “Immersive Workbench” (see Figure 1), long since defunct. I started developing software for it because I thought it was the coolest thing ever, and because nobody else was doing anything with it — probably because there was absolutely zero software to drive the thing. My official research focus was scientific visualization, but from the beginning, I put a “VR spin” on any programming projects, and did further VR application development during the several summers I worked at Lawrence Berkeley Lab‘s visualization group.

Figure 1: What usable virtual reality looked like in 1998: A FakeSpace “Immersive Workbench.” It’s a reach-in (“fish tank”) VR system instead of a fully immersive one, but unlike VR headsets of the era, it didn’t make the user violently sick, and was practical.

Out of my frustration with existing VR development toolkits, particularly the cavelib toolkit I was forced to use at LBL, I started developing my own toolkit and called it “Virtual Reality User Interface,” or Vrui for short, initially as a higher-level library on top of cavelib. After a while I realized Vrui could be more efficient and portable without cavelib underneath, so I kicked cavelib to the curb and never looked back.

In late 2003, I was approached by several researchers from the UC Davis department of geology, who had gotten the crazy idea to apply for grant money to build a CAVE IE for their scientific use. We immediately started working together, got the money for the CAVE, and installed it in spring 2005, thereby forming the UC Davis W.M. Keck Center for Active Visualization in the Earth Sciences (KeckCAVES). Ever since, I have been working very closely with these researchers to develop custom visualization software to turn the CAVE into a scientific instrument. Instead of just using the CAVE to present the final results of scientific work by creating shiny “visualizations” (a word I don’t like to use, but that’s a topic for another post), our researchers use the CAVE throughout their scientific workflows to process data from more raw to more refined forms by becoming a part of the machine, so to speak. Here is an old video showing basic 3D interactions in the CAVE:

In 2007, KeckCAVES even branched out into performing arts, by providing interactive 3D visualization capabilities for a modern dance performance (“COLLAPSE – suddenly falling down” by Della Davidson et al.). This was only possible because our scientific visualization software was flexible enough to be used in a theater setting, and to allow dancers to control the 3D imagery in real time.

In 2008, I saw an early prototype of an IE based on a commodity 3D TV at a conference, and started working on that immediately. Fortunately, the Vrui toolkit was flexible enough to run on these IEs very efficiently, without any changes. Since then, KeckCAVES has branched out into commodity low-cost VR, by providing software and blueprints allowing others to build their own IEs for little money. Here’s a video showing 3D data visualization on a low-cost VR system:

Around the same time, I became interested in remote collaboration, i.e., the idea to connect spatially distributed IEs such that users in them can work together as if they were in the same place. This required two major components: a network infrastructure to connect and synchronize independent IEs, and a 3D video component that creates real-time “holographic” representations of remote users.

Early such 3D video systems were rather expensive, finicky, and decidedly low-res (see this old video, for example), but things changed in late 2010 with the arrival of the Microsoft Kinect game controller, which is actually a rather sophisticated 3D camera (what exactly I mean by “3D camera” is a topic for another post). I immediately got to work on a Kinect driver, and, with help from others, was able to turn the Kinect into a reliable 3D video capture device to be used in remote collaboration. Here is the video that made me Internet-famous for 15 minutes:

Here’s a good video showing remote collaboration between a CAVE and a low-cost environment based on a 3D TV:

In early 2012 I started playing with the other end of the VR continuum by building an Augmented Reality sandbox. It’s not an original idea, but I think it’s executed pretty well:

Starting around mid-2012, and (not coincidentally in the least) coinciding with me starting this blog, VR is in the middle of another push into the mainstream. Driven by the Oculus Rift consumer head-mounted display, a cottage industry of VR hardware and software development has suddenly sprung up, mostly from grass-roots efforts and coordinated by social media. In order to stay ahead of the wave (or at least not get pulled under), I have added native support for the Oculus Rift HMD and its built-in inertial tracker to version 3.0 of the Vrui toolkit:

As of 2016, commodity VR has crystalized around three major players: Oculus Rift and HTC Vive on the PC, and Sony PSVR on PlayStation. Vrui is now at version 4.3, with native (and very good, I might say) support for HTC Vive headsets:

All Vrui applications are now running on the Vive, which begins a new era for KeckCAVES: our software has always been freely available, but the potential user pool was limited by the high cost of VR hardware. There was always the option to run our software on normal computers in “2D mode,” but at reduced effectiveness. Now anyone can buy a Vive and a computer running it, and use our software the way it was intended.

Curiously, throughout all this, I have never been a member of the VR research community proper, in the sense that I have never published papers in VR journals, don’t really keep up with them, only know few other VR researchers personally, and don’t go to VR conferences. I have since found out that my thoughts about VR, and my ultimate goals behind using it, are somewhat at odds with the community (but that’s a topic for another post). In a sense, this is one major reason why I’m writing this blog.

So, am I qualified to write this blog? Let me know below.

43 thoughts on “About This Blog

  1. Pingback: One Developers Take on the Oculus Rift Dev Kit | HUD Space

  2. Hi Oliver, thanks so much for this blog! I love reading it. The time you spend sharing your experiences and knowledge is greatly appreciated. I’m a recent VR enthusiast and I have a project in mind. However I honestly don’t know where to start. I want to add 2 cameras to the front of an oculus rift and feed a stereoscopic image to the display inside. The intent is take a step toward developing augmented reality applications. Do you have any reading suggestions?

    • Not off the top of my head, unfortunately. It’s a viable idea, but tricky to pull off in detail. To work well, it requires very good calibration between the cameras and the Rift’s internal optics so that the virtual imagery matches the camera feed. You’ll also have to account for the differences in latency between the Rift’s and the cameras’ video streams. You should probably start with a basic text on AR, which should talk about basic calibration problems and approaches. It’s really not my area, so I can’t point you towards anything in particular.

    • Hi Nick,

      I’ve applied for funding to do this with the DK2 in the second half of this year. Just wondering how you got on since the above post?

      Might be worth us connecting at some point if this is still an area of interest for you.

      If you haven’t seen yet William Steptoe of the University of London has done a great job with the first Rift. Plenty of reading on his site.
      http://willsteptoe.com/

      Cheers,
      David

  3. Pingback: Happy birthday, doc-ok.org! | Doc-Ok.org

  4. Hey,
    i was very much impressed by your kinect hack back in 2010, has anything moved aheadf since then? I aam looking for some user friendly 3d video recorder app ideally using more than 1 kinnect to remove as much glitches as possible. RGBDToolkit is nice i wonder if you know any better? Thanks Zsolt

    • I’m not sure about “user friendly,” but my Kinect package has a recording+playback utility that works with any number of Kinects (or, rather, as many as the PC can handle). You’ll have to calibrate the Kinects with respect to each other as I’m describing in Multi-Kinect camera calibration. I’m not aware of any other recording+playback apps.

  5. Hey, I thoroughly enjoy your blog, but notice it hasn’t had any posts in a long while, just hoping to see if you are going to keep this up!

  6. Hello.
    I work for GINA (gina.alaska.edu) at the University of Alaska Fairbanks. I have built a Sandbox. It will be shown at the Alaska Surveying and Mapping Conference in March 2014.
    Thank you.

    • That’s great! I hope it works out well. Would you be willing to share a few pictures from the event for the “External Installations” page on my AR Sandbox web site?

  7. Hi, I am a French journalist and I am interested in your expertise. We’re working on a documentary about virtual reality and we’re going to E3 this year. Could we talk?
    Thanks, Laurène

  8. Hi. I did everythig exept kinect calibration and i think GPU is running properly (bec. i see running water..) But sometimes my screen turn black like broken phone screen..
    and other problem is how can i set the screen display over the sandbox, bec display is overflow to sanbox side wall. Thank you..

  9. Pingback: #3: Oliver “Doc_Ok” Kreylos on VR for Data Visualization & Scientific Research + Kinect-enabled, collaborative VR telepresence | Judderverse VR

  10. Hi Oliver,

    Congratulations, your research is awesome and very helpful. We are having problems with the projector calibration, we did all the steps and didn’t have a good result.

    The terminal show us this message: Some tie points have negative projection weights. Please start from scratch

    If we can have your help, we will appreciative it…!!!

    Greetings,
    Diego

    • Really enjoyed your post so much! Thank you for such an interesting blog and look forward to hearing about more exciting work!

  11. HI Oliver,
    I’ve been in the AR/Vr world for about a year now…building an ARVR Women group to promote gender diversity in the field. Now I’m finally able to focus exclusively on my own business. I’m focusing my work on retail applications. I have some questions for you about something I’d like to do..I think it’s pretty simple, but don’t know for sure.

    Anyway you could give me a ping?

    My twitter is @jodischiller.

    Thanks!
    J

  12. Hi Oliver,

    Discovered this blog a while ago, and totally loved the content. I am working on an expert roundup post about Virtual Reality. Would love to have your quote in there. Can I please have your email address so that I can send you the details. Alternatively, you can drop me a mail at nidhi@arkenea.com.

    Thanks

  13. I’m very interested in your work on the Oculus infrared LEDs, did you investigate why the Oculus infrared LEDs are not permanently on?

  14. Hello!

    Hope you are doing great. I was so interested to contact you and I truly believe that you are providing some real value through your superb content. Considering the fact that virtual reality is going to be an integral part of our lives in the time to come – it is mandatory that we take proper measures in order to advance this technology in the right direction. Most probably we would be able to revolutionize industries such as health, education, business, tourism and more. Your scientific contributions and development would definitely aid towards that. I can very very acknowledge that as a fellow engineer and VR enthusiast.

    We believe that your blog is a great source of information thus we have featured it in the list of top 50 VR websites for 2017. Here is the link: http://www.techtyche.com/50-top-virtual-reality-websites-vr-blogs/

    We hope that it would help more people benefit from your content.

    Regards
    Shayan Ahmad
    Founder
    http://www.techtyche.com/

  15. I would like to include some of your work, and images, in the book I am writing on AR (for Springer), and have to finish today. Please contact me directly with a return email address. I am at jon AT jonpeddie DOT com

  16. Hi Doc-Ok Team,

    My name is Anuj Agarwal. I’m Founder of Feedspot.

    I would like to personally congratulate you as your blog Doc-Ok has been selected by our panelist as one of the Top 50 Virtual Reality Blogs on the web.

    http://blog.feedspot.com/virtual_reality_blogs/

    I personally give you a high-five and want to thank you for your contribution to this world. This is the most comprehensive list of Top 50 Virtual Reality Blogs on the internet and I’m honored to have you as part of this!

    Also, you have the honor of displaying the badge on your blog.

    Best,
    Anuj

  17. Hey have to say this is one of the more fun about blogs I read so far
    Also start poking around your blog intresting stuff

    So want to say thanks for sharing 🙂

  18. Hello there,

    We’re interested in advertising on your site.

    Could you please let me know what advertising options you offer?

    Thanks for your time.

    Karen Smith
    Content Ambassador

    • Of course! Please have a look around my site and note what types of ads I run, and for what types of products and/or services, and then you can figure out how you could fit into my advertising scheme.

  19. Hi Oliver,

    I’m interested in hacking the eye images stream in the Vive Pro Eye.

    Have you attempted this, or have any advice regarding the possibility, and or a practical approach to achieving this?

    Great work on all your other stuff by the way – fantastic stuff.

  20. Hello Oliver!
    I’m reaching out on behalf of the indie game company I work for, Fanaticus! I came across your articles in the VR space and they always go into such unique topics! We have a drawing style game that utilizes some great creative mechanics, which led me to reach out.
    I’d love to have a conversation about you checking out our game or potentially advertising it.
    Hope to be in contact!
    Tori

  21. Hi Oliver. I can’t seem to register and the reset password doesn’t seem to work for the sandbox forum. Would like to ask some questions there for your recent pull package updates for the sandbox software. Thanks!.

Leave a Reply

Your email address will not be published. Required fields are marked *