Linear VR experiences

These early experiences with my head in an Oculus Go have left me wanting more.  All of these are linear. That is, they are not interactive other than the ability to look around. They are all good introductions to 360° experiences. But leave you after a while wanting or needing more. There will be creative pressure on producers to come up with something different or have compelling story, as binocular 3D and 360° look around alone only hold gimmick value for a short time. After which there needs to be enough motivation to bother sticking your head in a VR headset.

The Missed Spaceflight

https://www.oculus.com/experiences/gear-vr/1231174300328686/

I hadn’t set up parental controls on the device, and so was careful to set up the start of the experience before handing over the headset. In my opinion, the easiest VR experience to share for any family, young and old. That’s a coverage from 10 through to 75 years and in each case it was their first experience with Oculus Go, and a very positive one.

I did find that the text titles at the start are placed too close to the viewpoint, making them unreadable. A few seconds later they are gone and the experience commences with superbly detailed rendering, audio and movement.  A very nice, smooth, impressive introductory 360° VR experience.

Face your fears – Stranger Things

https://www.oculus.com/experiences/gear-vr/1168200286607832/

A very nice example of a 360° rendered experience. There is no interaction, but the scenes are instantly recognisable to fans of the programme and coupled with the sound scaping there are plenty of jump scares. A certain member of my family who is a fan of Stranger Things didn’t sit through the whole of the experience for it being ‘too scary’.

Lego batman

https://samsungvr.com/view/sDrBlQe0peI

SamsungVR is one of the many media player apps designed to deliver 360° VR video. The Lego batman is a neat, entertaining and humorous experience with some excellent attention to detail.

Blade Runner 2049: Replicant Pursuit

https://www.oculus.com/experiences/go/1558723417494666/

Another very cool, short, simple 360° linear experience. There is initial interaction, to set the sound level, and decide on subtitles on or off. Subtitles are rendered when needed on a panel that follows head movement. Unusually the interaction is made not by the laser pointer, but by looking at the button to press and pressing the Go’s track pad. The 3D rendered environment is very clearly computer generated but the movement is super smooth, purposeful and not rushed. The rain is a nice touch. The sound scape brings you in, I found myself returning to watch the film again after this experience.

Summing up

I enjoyed this initial dip into VR and appreciate the huge amount of work that has gone into these to get the attention to detail and feel of the experiences right for each franchise. I’d happily consume more of the same. They do leave me craving more interaction. In fact, while these are all free to view, I would want something more when it comes to paid content. Technically I am assuming the main content of each are pre-rendered  with elements such as the subtitles in the blade runner example laid over the running video. I am looking forward to playing with the tools used to create some aspects of these and delving into the production processes.

Posted by creacog in 3d, Oculus, VR/AR, 0 comments

Oculus Go – my first use

VR momentum is building and Facebook’s recent release and current heavy marketing of Oculus Go could and should succeed in bringing VR to a far wider audience. This is a relatively inexpensive self contained unit, requiring a mobile for initial setup then only wifi access to the internet. There is no dependence on external hardware such as a PS4, XBox, High power PC or wrapping a more expensive smartphone with cardboard and lenses. I was expecting some rough edges but the overall experience is pretty impressive.\

OculusGo boxed

Unboxing and first view

It is very neatly packaged and simple to set up. Strapping on the headset, I was impressed at how responsive the view is. There is no noticeable lag from head movement. Some visible banding did make it feel like sitting close to an old CRT, so it is possible to be distracted into viewing the pixels. Glancing around, rather than moving one’s head, results in a blur and a colour shift. Pointing your head at anything you want to look at brings it into focus, but that movement takes a little getting used to.

As someone who needs reading spectacles, this may be a complicating factor in the visual artefacts I described. I have the supplied spacer in place.

The controller (akin to a laser pointer) is impressive. This little AA powered grip, with trigger, touch surface, back button and oculus button is remarkably easy to use. It can be seen in-VR and calibration is quick and simple. – Just point forward, look forward and hold the Oculus button to centre the VR world in front of you.

 

First application installed – Netflix

OculusGo Netflix screen shot

The rendered lounge gave really good first impression of VR.  I felt myself reach for the remote and wondered why i couldn’t see my hand. It was painless to set up and connect to my Netflix account. The lounge is neat, and with lighting that dims as you interact with the TV.

But that’s it. I’m not sure of why I would use this to view standard 2d programming. The visual resolution is too low – far less than my conventional TV. Even away from home, I’d find conventional displays such as my laptop or mobile phone offer a far better and more controllable visual quality.

There are a number of UX issues with the app. One such is the swipe action of the controller being inverted from the normal when vertically scrolling through program thumbnails.

Second impression – Samsung VR and behind the scenes of Mission Impossible: Fallout

The first problem with the Samsung VR app is that it requires the user agree to an extremely long set of  terms and conditions. I wasn’t aware of  the swipe gesture on the controller at this stage, and it was impossible to advance through the text using the laser pointer and trigger. Even had i managed the swipe, from a UX point of view, this kind of document is next to impossible to consume in a VR environment such as this. It is necessary to agree to the terms and conditions to proceed.

Following, more red-tape. Permission requests to access to the Mic to record audio and to access  my library of content. I was only expecting to view a video, so I couldn’t understand why the application would be requesting those permissions. No context or explanation is given. They turn out to be optional. But only be hitting ‘deny’ do you find that out – i.e. the application continues to run. There is no obvious indication of what functionality may be lost by denying the app these permissions. So, in my mind there it is clear that UX is in the early stages of research for VR applications.

Once past all of these barriers, the view recorded by stereoscopic cameras anchored to hard points on helicopters recording Tom’s own stunt sequence present an excellent and exciting view. On my first viewing, my internet connection was particularly slow and the resulting compression artefacts detracted from the experience. Any distortion or ghosting around object edges seems far more prominent within a VR environment. The simple trick for crisp clear quality is to download and play back from local storage whenever possible – or subscribe to faster network access.

To be continued…

Posted by creacog in 3d, Oculus, VR/AR, 0 comments

Summer 2018

A note to self, looking back on my last post to see what actually was achieved since.

Step 1 – “Get some tooling” – CHECK. Applied to ageing personal web stuff.

Step 2 – “Read up Jeff Patton’s User Story Mapping” – CHECK. The key catchphrases stand up no matter what: “Build the right product”, “Shared understanding” and adding my own twist “develop the greatest effect soonest”. Definitely worth a second read and reference.

Step 3 – “Play with Docker” – PARTIAL CHECK. Our lead developer has built an excellent Docker based infrastructure at work, bringing greater reliability and efficiency. My home kit isn’t compatible yet, so Vagrant will suffice until I update.

Steps 4 and 5 – We did set about using JIRA, Confluence and Bitbucket and bringing legacy projects to them

Sadly it is time to move on from my employer, my next steps are to ensure I dedicate more time to:

  • Family
  • Exploring new tech – AR and VR of particular interest as it gains momentum as Oculus Go continues the process of bringing it mainstream
  • Gaining more Product Management experience, and Agile
  • Photography – In camera, editing and restoration – creacog on Flickr
  • Tidy up this blog – so much has changed in the last 6 years

Then possibly freelance until finding the next permanent role.

Posted by creacog in Agile, Personal, Product management, 0 comments

New year 2018

Personally speaking, 2018 is going to be a year of getting at least some Agile and DevOps adopted at work.

Step 1 – Get some tooling… Kicked off with Vagrant and commenced updating the brain from my previous php5 use to 7. So far so good.

Step 2 – Read up Jeff Patton’s User Story Mapping- Which does seem to stand up to it’s strap-line: “Discover the whole story, build the right product”. From reading this, “Shared understanding” will be my new catchphrase for the year.

Step 3 – Have a play with Docker…. first problem is my otherwise trusty old mid 2009 Mac Book Pro:

$ sysctl kern.hv_support
kern.hv_support: 0

So there’ll be no Docker practice on this machine.

Step 4 – Introduce work to some supporting tools: (JIRA, Confluence, Bitbucket)

Step 5 – Start using this stuff – Plenty of legacy work projects to migrate, and a couple of home projects.

This might be the excuse needed to justify updating my otherwise very long-lived Macs.

Posted by creacog in Developer, Personal, UX, 0 comments

Long time no speak

Was 2012 really the last post from me?

In that time lots has happened in the world, especially the last few weeks! So far as this blog is concerned, I’ve been in permanent employment as a Digital Project Manager for about 4 years. So there’s neem a lot less time spent programming and nearly no time with Flash. Which, for the kind of projects I was using it for, is now truly dead. Of course niche requirements remain, and major sites still use it’s video capabilities, but much of the world is coming to the El Reg way of thinking of this and pretty much any other browser plugin.

In its place we have html5, the canvas and WebGL, ironically catching up to where flash was 4 years ago – but with a much worse language. Can’t help thinking how much more advanced browser interactivity would now be had ECMA Script 4 been adopted to advance javascript. Adobe AIR never really worked particularly well for me – especially on the HTC Desire I got for the purpose of testing. So despite investing a huge amount of time and cash in ActionScript development, it will be a rare day those skills are put to direct use in the future.

Looking back over the articles published, the one with the most traffic is the one that was most off-topic, and connected to the 1980’s tech of my teenage years: resurrected my tascam porta 05

Looking forward, since flash programming is mostly off the agenda, future subjects are likely to include:
* Photography
* Project Management
* Interactive media – websites, mobile apps, IoT etc
* General bits of tech that interest me

Posted by creacog in Personal, 0 comments

Hello iPhone

I dragged myself into the smartphone era in 2010 with a HTC Desire. After a number of years use, it is time for a change. In the end, I found the Desire quite slow, Flash compatibility wasn’t all that useful and being dependent on the Network to eventually deploy updates frustrating. So I am happy to move from Android to iPhone with a nice new iPhone 6s.

Hello iPhone 6s
Posted by creacog in Apple, 0 comments

Mac Pro Wake from sleep, restarts instead

A couple of weeks ago my Mac Pro (Early 2008) started failing to wake properly from sleep – basically it would boot from scratch rather than awaken.

PRAM zapped and all the usual stuff you see written across various forum. Then at the point of installing a replacement backup battery, I noticed a bright red light on one of the RAM risers.

Cutting a long story short, one of the RAM modules has failed. Checking the system profile, 4Gb of installed RAM is missing. The mac has wisely ignored the failing bank of RAM, but it would have been nicer if it had also alerted me to the fact prior to looking inside.

End result: physically removed the modules on the failing bank and now sleep/wakeup works as normal again. Fingers crossed the memory supplier will replace the failing package on their lifetime warranty.

(Update: August 2018, I should have updated this at the time, but Crucial sent a replacement module very quickly and that has worked without fault ever since – the machine is still in regular use at time of writing)

Posted by creacog in Apple, 2 comments

Flex4.6 mobile maxChars bug/problem and workaround

Bug-note to self, and workaround while waiting for the bug-base to migrate from Adobe to Apache.

I’m using in a Flex 4.6 mobile project and found that setting the maxChars property to 512 caused exeption:

Main Thread (Suspended: ArgumentError: Error #2006: The supplied index is out of bounds.)
flash.text::StageText/set viewPort [no source]
spark.components.supportClasses::StyleableStageText/updateViewPort
spark.components.supportClasses::StyleableStageText/commitProperties
mx.core::UIComponent/validateProperties
mx.managers::LayoutManager/validateProperties
mx.managers::LayoutManager/doPhasedInstantiation
mx.managers::LayoutManager/doPhasedInstantiationCallback

However setting maxChars to something much smaller (e.g. 10) was fine. From experimentation, seems that the biggest number to which maxChars could be set without causing the problem was 481. I have no idea what that number relates to. Anyway the database field my TextInput corresponds to is 512 chars max so that’s the number I need.

The workaround:

Setting maxWidth on the TextInput seems to solve the problem. But rather than insert a constant I want the TextInput to flex to the width of it’s container, so the following seems to avoid the problem:

<s:TextInput
id        ="textInputId"
maxWidth  ="{skinableContainerId.width}"
maxChars  ="512" />

The future of Flex :

Posted by creacog in Flex Components, Spark components, 1 comment

Thanks for the Macs

The passing of Steve Jobs last week, like others, caused me to reflect on his impact on my life via Apple.

I was a child of the 70s and teen of the 80s. I wanted to fly aircraft and was into science (fiction and fact) and electronic music.

Science fiction was full of computers : from Star Wars, Space 1999, BattleStar Galactica, Buck Rogers and Blake’s 7 etc

As for science fact, the first significant event I remember well – being allowed out of lessons to watch the first Space Shuttle launch on tv. Around that time the school had 3 computers. Two Commodore PETs and a ZX81. I got into trouble for not doing my homework to write a program to tie a tie. It was only ever to be a series of print statements that had to be read out for the teacher to type into the PET. I had a go at blagging it, reading from a blank page in my note-book and I was caught. Despite that fail, my interest in computing was sparked and all my savings went towards a ZX81. Followed a couple of years later by a ZX Spectrum and input of many listings from the likes of Sinclair User and Your Computer.

I gradually became aware of Apple via occasional appearances of the Apple II on the likes of the BBC Computer Programme / Micro Live. It had an immediate reputation of being a cutting edge machine but massively expensive. Similarly the original Macintosh was far beyond anything I could afford, so my next machine was to be a Sinclair QL. Although the QL was still not a GUI machine, Mac was already an influence causing me to create my A-Level computer science project on the QL, a GUI music sequencer. Admittedly it was just a graphical menu system driven by cursor keys, but this was the start of my interest in UI programming.

In my first year at University I bought my next machine – an Atari ST 512. Finally something with a GUI. A decent machine for the budget, and useful for games and as a music sequencer. It had a WYSIWYG word processor, but output looked a bit rough by the time my Epson LX-80 had printed. It was no Mac.

My 3rd year at Uni was industrial placement. I spent my year with ICI programming VAX FORTRAN on a DEC VAX 6310 cluster running VMS. All the UI work was text menu based and occasionally command-line. I was then well prepared for a career of programming in an industrial environment. However I was saving up deciding on a new machine for my final academic year where I knew I’d need to write up my final year project. I bought a number of issues of MacUser – everything about Mac oozed quality and I longed for one.

So in 1991 I managed (strangely) to get a discount on my first Mac by trading in my Sinclair QL. I was sad to see the QL go, but very happy to welcome a Macintosh LC and StyleWriter with WordPerfect for Macintosh. A really good machine which I retain to this day. Although it hasn’t been out of it’s box for a while.

WordPerfect came with student discount and a competition. I entered and won. The prize : A new Macintosh LC! Once sold, the initial net cost of my first Mac turned out to be pretty small. Other than completely underestimating how long it would take to print out my final report at full quality on the StyleWriter this machine was a good choice. While others were messing tweaking PCs, the Mac just worked and the print quality was great.

Through MacUser I was once again a lucky competition winner. The Prize: Flight to San Francisco with tickets to attend MacWorld Expo 1993. I had only been abroad once before so this was the trip of my life to that point and the exhibition at the Moscone centre was the biggest I;d ever seen. My least expensive purchase during the trip, but the most valuable, was a copy of Macintosh Human Interface Guidelines (ATL). I haven’t read it in some time but while all the examples in the book are specific to the look and feel of Mac System 7, I recall it includes reasoning and many principles which remain useful today.

By the end of it’s useful life in about 1994/1995 the LC’s memory was increased from 2Mb to 6Mb, vRAM increased from 256K to 512K, hard disc increased from 40Mb to 500Mb, an accelerator replaced the 68020 cpu with 68030, a 17inch monitor replaced the tiny 12inch original, AppleCD 150 CD-ROM drive was added and I saw QuickTime running for the first time. Ok, the drive was single speed, discs loaded via a caddy, and the video was postage-stamp size – but it felt revolutionary. Also many hours were spent in the world of MYST – CD-ROM based game.

Back in 1993 being the owner of a Mac and having an interest and knowledge of user interface principles helped me win my first job in ‘interactive media‘. A startup company formed to develop applications teaching English as a second language. We started with an empty office, my Mac LC and PhotoShop, soon replaced by a Quadra 800 and we choose MacroMind Director with which to develop our educational games.

Since then and to date I have always had a Mac as my primary machine and usually a PC to target-test. My work programming interactive media has taken me from small town small company through to London multinational PLCs and now to working freelance. I used System 6 through System 9 and Mac OS X from 10.1 to 10.7 and loved it – every improvement every step of the way.

I am no Apple fanboy. I don’t buy everything Apple produces (no iPad no iPhone). I grumble when things don’t work. I didn’t agree with everything Steve Jobs said but Macintosh in particular has been good to me every day for the past 20 years. For that I thank Steve Jobs and the teams of people he brought together to make it happen. I hope we (Apple staff and customers) all learned enough from his example to keep up the momentum. His passing has given me a kick in the pants to go and get more stuff done.

Posted by creacog in Apple, 0 comments