T-SQL #126 – Dreaming of Both Blue & White Gold

T_SQL_Tuesday

Introduction

This series is part of a long tradition of something created by Adam Machanic and the torch has been passed on to Steve Jones. Thank you Adam and Steve!

And this month’s T-SQL #126 topic is being hosted by Glenn Berry. Thanks Glenn!

“Your mission, if you choose to accept it, is to write about what you have been doing as a response to COVID-19. Maybe you have joined the SQLFamily FAH team. Perhaps you have been printing “ear savers” using 3D-printers like Tim Radney. Perhaps you have been donating food or doing some other sort of volunteer work. Whatever you have been doing, now is your chance to talk about it and publicize it!”

The Problem

How many times a day do YOU wash your hands with soap and water?

What if you were born and lived in a poor area where water was a precious, dreamed of commodity? In a survival situation of life and death, one can survive ~45 days or longer without food but only 72-120 hours without water.

Then you are told there is this invisible killer, spreading quickly like dust in the wind, affecting everyone in its path and killing anyone who can’t fight it?

Washing your hands SEVERAL TIMES A DAY with soap and water is your primary defense to save your life and the lives of those around you. And suddenly wearing any kind of mask or facial covering and maintaining a physical distance from everyone, including your family members becomes crucial.

But you don’t have any spare soap or water to wash your hands.

People struggle to find safe, clean, drinking and cooking water every day.

There is a report of a potential dramatic increase in starvation of biblical proportions about to hit the impoverished. There is also a real danger that more people could potentially die from the economic impact of COVID-19 than from the virus itself. Why? Because they were already marginalized before the pandemic hit and now they cannot afford or have easy access to water and food.

The Challenge

Get clean water to those in need who are forced to live off-the-grid.

Dune

I am a fan of Dune. I am fascinated by the concept of stillsuits and windtraps to capture and condense water vapor into liquid water. And I love The Science of Dune too.

Enter Stage Left – Blue Gold – Water

I have to limit this blog post to one area for the sake of brevity so I’m choosing to focus on water and my thoughts over the last few months. Gold is a valuable element and now we are presented with a take on that concept, blue gold – water.

Both the book and movie Blue Gold:World Water Wars; NEVER mentions atmospheric water generators (AWG) which I’ll get to in a moment. I find that blatant omission odd and conspicuous by its absence. Friendly heads-up: note the book and movie have an extreme pro-activist slant. I like the idea of water as blue gold so I’m sticking with that label.

In Colorado, I see these water exchanges at Wal-Mart and hardware stores. Primo runs about $7 for a 5 gallon container of water.

Food for the Hungry has already had programs in place to concentrate on clean drinking water for the poor and WASH.

But now with COVID-19, the need for access to clean water for drinking, cooking, sanitation but now especially for washing hands, has taken on an epic emphasis literally overnight. Crops and livestock are suddenly taking a backseat to preserving human life. And as mentioned above, it will send many into further desperation and suffering. In many countries, farmers’ markets are a great way to support local farmed and harvested crops and livestock. But when those are shutdown in poor countries due to the pandemic, there are no other places to sell your crops and livestock!

I began thinking about freezing and storing water during the winter months for later use. Here in Colorado in the winter, we experience freezing temperatures at night (and during the day) for several months.

More about the blue gold mining techniques in a moment.

Enter Stage Left – White Gold – Ice

One technique is to essentially use off-peak electricity rates to make ice which is then used to augment air conditioning.

Commercial unit: CALMAC icebank. I contacted them a while back and these things run about $15k for the smallest unit.

Ice Bear tried to do residential units but alas, they went bankrupt.

Problem? These things are expensive.

My idea? Use nature’s free cooling during winter and windmills (not wind turbines) to power air handlers to move freezing air over ice making equipment. Store it in an icehouse and then use that ice to condense water in a passive AWG once the dew point is above freezing and only when the humidity is at its highest for that day, usually just before sunrise.

What is the Dew Point?

Dew point and psychrometric chart. So if one can exploit the dew point, one can make water from air. But it is not easy…

1.21 Gigawatts??? 75,000 Drops In A Gallon???

Squeezing a usable quantity of water from air requires a heart-to-heart realization of how hard this is.

1 cu meter or yard of air contains anywhere from 2 to 5 drops. One needs 75k/drops to make ~4 liters or 1 gallon.

Imagine going for a walk. You are holding a large box in front of you. With every step, you fill the box with air. It would take roughly 15,000 steps to move that much air through a system to get to 75k drops. And that is provided one can squeeze ALL of the 2-5 drops out and not have any left!

Enter Stage Left: Todd’s Active AWG

I’ll admit this idea is expensive but it would last for many years if not generations with proper care and maintenance.

Put solar-powered AWG on top of a flat top water tower. Also, I wanted to create a massive solar still ON TOP of the water tower for harvesting and purifying rainwater too. It is called a water pyramid. (PDF). Put the solar AWG inside the water pyramid too. And to purify the distilled water from the solar still further by running it through a biosand filter and ideally zapping it with some ultraviolet light as a last step.

Enter Stage Left: Solar Ice

What? How is it possible to use heat to make ice? Truth is stranger than physics. My vision would be to 3D print these machines to dramatically lower the cost. These ice blocks too could then be stored in an icehouse to support an ice trade. The ice can also be used as a passive AWG by placing it on top of several upside-down CPU coolers. Water will condense on the coolers.

Enter Stage Left: Todd’s Solid State Passive AWG

I want to open-source this idea so I can’t get into details at this time. However, I will tell you this: it uses technology over 100 years old. It really does have ZERO moving parts. It uses renewable energy but not like you might think- no wind turbines or solar cells. It does make ice and a lot of it.

Last but not least, I came up with what I’m calling an Amish freeze dryer. Yes, you heard that right: a zero electric freeze dryer which uses the invention above.

Conclusion

So when people talk about creating water from air, creating ice, freeze drying excess food like milk, eggs, fruits and vegetables, and what they did to help other people during the pandemic, I polished up some old ideas and created some new ones. Someday I hope to build all of these inventions and help and show others in extreme poverty how to do the same.

Millions of people around the world do NOT have easy access to safe and clean drinking water to use. AWG(s) and ice can be used to create water where it is needed.

I hope you have enjoyed reading this blog post. My passion for affordable, scalable, sustainable, and appropriate technology to address food, water, clothing and shelter is something I hope to continue dreaming, inventing, and writing about.

Posted in Uncategorized | Leave a comment

You Only Have Moments to Live

[The second in a series of my new life hack: Mindfulness Based Stress Reduction (MBSR). First one here]

You Only Have Moments to Live

Ask anybody on the street (!) what that means and I bet you’ll get an emotional response.

When I was in high school, I was into aphorisms. Short sayings.

One I came up with was:

“Nothing Makes Me Happy”.

Ask anybody on the street (!) what that means and I bet you’ll get an emotional response too.

First, “You Only Have Moments to Live” is the title of a chapter of a book I’m continuing to read, Full Catastrophe Living. (Hint: the title is a reference to the book, play and film of the same, Zorba the Greek).

As first blush, one might think it is a rather cold thing to say in the midst of the current COVID-19 pandemic.

Nothing could be further from the truth. It is about living moment to moment. Not as the world is coming to an end so get hedonistic and live FOR the moment.

No, it is about choosing to live IN the moment. Breath by breath. Moment by moment, knowing that new moments are coming at us all of the time, like a slice of time in a river of time.

Like being non-judgemental in watching your thoughts and your body’s reaction to things.

We need to unplug- and I’m saying on a daily basis besides sleep or naps. From all screens and headphones and just slow down. Not like on a vacation where some of us still worry about e-mails and tasks piling up.

No, I’m talking about on a daily, even hourly basis. I have some 3M industrial ear muffs and when I put in earplugs then don the muffs, I can literally hear and feel my own heartbeat in my ears. Listening to my breath and feeling the expansion and contraction of my breath becomes real easy.

Doing the 20 Breathes Practice (part of Week 1 exercise, main link to page here) has been a challenge since I started learning about MBSR. I like to work and code and want to keep going and get things done. I can’t always do it as a personal goal every hour on the hour. If I unplug, then it takes time to get my head of steam back up to pick up where I left off. To each their own.

In these trying times, I’m making the sacrifice for my own mental health and to not let the pressures of the world overcome me. I believe in God. And I have also been praying more than in the past. We are all in this together.

I love this quote from Dune, “I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.”

Nothing Makes Me Happy

Second, “Nothing Makes Me Happy” sounds like something someone would say that had no hope or had given up on life.

Again, nothing could be further from the truth. I researched and tried several meditation-style techniques when I was a lot younger. One of them was trying to empty your mind and keep it emptied. Nearly impossible I might add.

I’m into sci-fi and back then thought what would the ultimate version of that look like? I have a penchant for Nth-degree imagination at times.

Thought experiment: You are in a self-contained time machine. You can breathe normally and your ship is dead quiet, zero light emitting from anything. Your machine is encased in a transparent shell and you can see all around you. Machine has been programmed to go back in time then back to present reality in 15 minutes real-time.

You go back in time before the Big Bang, moments before the creation of the Universe. Before the fall of Adam and Eve.

There would be nothing- no starlight, no molecules, just absolute nothingness extending infinitely in all directions.

Resting in that state for a while gives one peace, at least it did for me. Re-stating it: “Resting in the Great Nothingness Before the Big Bang Makes Me Happy”

I remember doing that a few times in high school. And when I opened my eyes, oh my gosh! Colors were suddenly super-vibrant and my senses were super-sensitive. End experiment.

Keeping Our Collective Wits About Us

The trials and tribulations of this world (especially during this pandemic) are shorting out our nervous system. Sometimes it feels as if the positive mental health of our leaders, friends, ourselves, and families are all of a sudden a rare commodity in the middle of a storm that feels like it has no end in sight.

20 Breathes Practice isn’t going to find cures for diseases. But it can give us a much needed break to unplug and re-set during the day. It is a skill which can only get better with continued practice over time.

Just like diet and exercise, no one can do MBSR for you. You cannot outsource aspects of your mental health. You have to take a sincere and active role and do it for yourself.

And yes, myself and others who pray, are actively praying for a variety of things as one can only imagine.

Posted in Uncategorized | Leave a comment

Full Catastrophe Living (And Getting Into MBSR)

Catchy title, yes?

It is actually the title of a book I am currently reading and getting into about Mindfulness-based stress reduction (MBSR).

While I am a strong, practicing Christian, I was initially hesitant to dive into anything that is remotely wu wu.

The author does make overtures to dharma and the Buddhist concept of compassion in addition to other things but I really like what I’m reading so far.

Here in Aurora Colorado, we have the incredible and growing Anschutz Medical Campus. It is also the location of the National Mental Health Innovation Center which I found out that they use virtual reality (VR) in the treatment of mental health!

Using technology like VR to help people rings a deep chord with me. So I’m interested in helping them in the future like maybe a free game jam style event and partnering with other local game dev(s) especially with VR skills to pitch in.

In looking into their past projects, I stumbled across ResponderStrong which helps to improve mental health supports for emergency responders and their families. And in their self-help section I found an eight week MBSR audio course (FREE) here.

While I am just starting out, I can already see just how much my mind is racing 🙂

The exercises via the PDF(s) are helpful, I’m reading the chapters of Full Catastrophe Living reading assignments, and the meditation recordings are good too. And practicing! So while the Penn Medicine course is a separate MBSR course than what Jon Kabat-Zinn teaches in his book (he makes a ton of references to the accompanying CD(s)), it is still a great course that I have found so far helpful to me.

Trying to do the 20 Breaths exercise every hour has been beneficial. It forces you slow down and steer your attention (which is prone to wonder!) back into focus. Sometimes I don’t do it every hour because I’m working on something. Sometimes I do it when the opportunity hits. Starting a new habit is hard.

Now with a lot of advice good and bad flying around about detecting early signs of COVID-19 (like difficulty breathing), learning MBSR in the midst of this pandemic has brought me a new appreciation of living moment by moment- focusing on attention, breath, breathing, and body.

 

Posted in Uncategorized | Leave a comment

TSQL Tuesday #123: My Life Hack – Flowing in the Morning

Introduction

This month’s T-SQL Tuesday was created and is being hosted by Jess Pomfret and the concept for these once a month blog posts was originally created by Adam Machanic; the torch has now been passed on to Steve Jones. Thanks for hosting Jess!

T-SQL Tuesday #123: Life Hacks to Make Your Day Easier

Flow

Have you ever heard the expression, “In the zone”? Or you are just so into something that you don’t notice the passage of time?

It is both a unique state of mind and physical state of the human body. Truth: I am addicted to the flow state. It would be awesome to be able to maintain flow for your entire waking life but alas, that is not how it works. Just like deliberate practice, one needs to manage when to be in flow and when not to be in flow.

I have read and re-read this book on Flow: The Psychology of Optimal Experience (and his other book on Creativity too) many times.

 

Not every morning but on many a morning, I do the following:

Get out of bed. Count my blessings. There are many people who never got up (read they died in their sleep).

Grab coffee. Nothing fancy, strong and black works for me. Drink two cups. Think about what’s coming up that day or soon.

VR and Volunteering and Oculus Quest Availability

For those who don’t know, I’m into virtual reality (VR). I help lead COVAR and the Denver/Boulder Unreal Engine Group here in Denver. I have several VR headsets, all Oculus based.

Sadly, the Oculus Quest has been on backorder since before Christmas and with the outbreak of the coronavirus in China affecting and killing people, it is also disrupting product supply lines.

It is unknown when the ‘Quest will become available again in 2020.

Enter Stage Left – TiltBrush

Now the fun part.

I put on my ‘Quest with a generous space around me, don my AfterShokz headphones, launch my Jazz station on Pandora, and I jump into TiltBrush:

I prefer to use my ‘Quest instead of my desktop rig as I love the freedom of wireless and don’t have to worry about tangling cables.

While I am nowhere near the level of expert like Rosie Summers, I do love to draw and paint in 3D. Check out her demo reel:

My latest exploration has been geometric shapes. TiltBrush allows you to take pictures from within. Here are a few images of things I have done:

It is a huge challenge for me on what I want to draw/paint as there are only invisible wire guides (capsule, cube, sphere), straight edge and ruler settings. There is no drawing compass.

So I had to attempt to memorize how something is made then attempt to re-create it and figure things out.

Starting out with basic shapes like hexagon and octagon.

Years ago I was really into Unit Origami (also called modular origami). I used to make things and give them away as gifts. Some of these structures take hours to make.

Trust me, this is way beyond simple paper airplane folding. It requires perfectly cut square paper, intense concentration and meticulous attention to detail.

My plan is to get experience with more shapes in TiltBrush and begin to build the individual pieces and then assemble unit origami structures in VR. Might even post them to Poly. By the way, if you think writing and posting blog posts can be intimidating on what others may think, try sharing art 🙂

And yes, of course I have thought about building SQL Server execution plans (i.e. create all of the operators and assemble them) in VR as a teaching and training tool.

Conclusion – And Now You Know

This is one of my life hacks- getting into a flow zone before the start of my formal day job. It’s a great way to wake up, literally get the creative juices flowing and start your day!

Someday I should blog about my journey with lucid dreaming as another source of my creativity and imagination too. Another time.

Posted in Uncategorized | Leave a comment

Looking Glass – TSQL2sday #122 – Imposter Syndrome

This month’s #tsql2sday topic on Imposter Syndrome is being hosted by Jon Shaulis Thanks Jon!

Definition

One can find the formal definition of Imposter Syndrome here.

Do I suffer from it? Sometimes I feel like I do; yes- especially during job interviews. I have been working with SQL Server for many years and while I will acknowledge up front that I STILL do not know everything about it that I think I should, I know enough to be dangerous. Or do I?

Why Do I Want to Jump Off?

I’ll share an experience I had many years ago. It really bothered me when it first washed over me. This has happened only two times in my life.

When my family went to the Grand Canyon and on the overlook, I felt an odd feeling that I wanted to jump off.

When we went to the Royal Gorge Bridge here in Colorado, I felt the same thing when I looked over the railing in the middle of the bridge.

This didn’t make any sense to me at all. I’m a normal, mentally healthy and stable person so why would I have these strange and odd feelings?

There has even been a study about it: An Urge to Jump Affirms the Urge to Live.

So why compare and contrast Imposter Syndrome with high place phenomenon (HPP)?

Because I think sometimes we can’t rationally explain these odd feelings based on inputs and other thoughts. We fall into the trap that we have put in the thousands (!) of hours so surely we must know a lot about our career field. And yet sometimes we just can’t believe that we have really earned our success when compared to our own individual progress over the many years and even comparing ourselves with our peers with similar number of years of experience.

So we fear being found out, that we have been believing all these years in fake it till you make it– but never did make it! Been faking things since last millennium (when I started working with SQL Server)! However, during a job interview as both an interviewer and interviewee and doing a true technical skills test, fake people can be eliminated pretty quick. In fact when I was interviewing people as a DBA Manager, the technical skills test I created shocked me at times- so many people talked a great game but when asked to do things in SQL Server Management Studio, they froze up or panicked, couldn’t type T-SQL, etc. It was even embarrassing and sad at times. But that was part of the interview process- can you perform under pressure?

Conclusion

I think it is natural to feel like we do not know a subject top to bottom. Do we know enough to demonstrate competency with a specific skill? Can we learn new things and immediately apply them? Do we trust our own imagination, creativity, and troubleshooting skills? Can we jump in and not know anything but trust in our past to figure things out? Another reason why great FSO people are so valued in startups.

P.S.

Learn like there is no tomorrow and your life depends on it!

This year I’m learning many things that right now I don’t have a clue about other than I know I need to learn them.

For me, the “Do or do not” is to focus on the actual doing. You do not improve skills by just reading about skill improvement. You have to do the hard work. Are you willing to suffer crippling, humiliating defeat time and time again to reach that one win? You have to learn the material. You have to immediately practice and demonstrate competency. You have to keep it sharp or you will loose it. You have to practice it everyday. Even Yoda endured failures… And succeeded in the end!

Posted in Uncategorized | 2 Comments

On Building SQL Memorial

Background of Idea and Intended Audience

At my age I’ve been to more funerals that I would like. Friends, family, acquaintances. From a variety of causes. Everybody handles death and grief in their own way. For me one of my coping mechanisms is to build things that honor the departed; it is often a type of catharsis for me. It helps me to say goodbye until we meet again if we ever do.

The first death of someone I knew in what we call the SQL Family was Ken Henderson, author. I first saw him at my first PASS Summit here in Denver back in 2007. I had also heard of Jim Gray and recognized his name on a lot of whitepapers and his strange disappearance and massive search efforts. Then Bob Rumburg- I used to work with Bob at a previous job and who I’d see at Denver SQL Server User Group (DSSUG) meetings. Then Alan Weber, a super smart guy who always sat in the front row at DSSUG meetings and always asked lots of deep technical questions. I usually heard about other deaths via e-mail or my primary social media platform, Twitter.

Then Tom Roush. I knew he was fighting cancer and I loved his stories. His death hit me particularly hard and SQL Memorial was born. I did a special version of images from Twitter and Facebook about people commenting and sharing things about Tom.

Since then, I’ve maintained it over the years and while I’m thankful we haven’t had lots and lots of people in the #SQLFamily pass away, each one stings and hurts.

Present Day – 2020I won’t bore you with all of the gory details, hours of suffering trying to figure things out which are WAY OUTSIDE of my wheelhouse from my daily job of working with SQL Server.

All of the tears I’ve shed over the years just handling the material (both looking at and saying real names of people; I’ve personally known many of them) and not just giving up but pushing through with wet eyes at times.

It has recently come to my attention that there could be a desire for others to maintain this and I’m totally cool with that. Either this exact version or a completely whole new version.

Recently I found out about Phil Robinson and someone else who passed away years ago, Kent Tegels. Both of them have been added.

Here is the latest version of the video as of 02Jan20.

This post is more of an overview with a few specifics thrown in than an exact Step by Step technical guide. It is my tribute to the departed to be shared with the #SQLFamily.

Bill of Materials

I have had some inquiries as to how I make SQL Memorial. So this is a peek behind the curtain of what it takes to bring it to together.

The video game engine I use is Unreal Engine 4 (UE4) from Epic Games.

The ocean material (waves) comes from World of Level Design.

Marble texture comes from the free Starter Pack with UE4 and the static mesh is of my own making by combining some starter meshes together into a single mesh.

Frames are from the Framed Photography Pack on the Unreal Engine Marketplace (not officially updated to 4.24.1 but seems to work).

Text on the meshes is from ZText on the Unreal Engine Marketplace too.

All images have to be a power of 2 like 2048×2048. I use GIMP to re-size both the picture and the canvas then export out of GIMP into the picture’s original file format.
When I import them into UE4, they come in as textures. I then create a material from them, then create a material instance. This is for performance reasons. Then apply that material instance to the appropriate frame.

Background music comes from Epic Zen Garden.

All spoken audio is of me recording using a Focusrite 2i2 (thanks for recommending it Jorriss!) and Audacity.

Final video is created by running UE4 from within the Editor using a Standalone Game mode, the Level Blueprint set to play a Level Sequence on EventBeginPlay and captured using OBS Studio.

Please note that GIMP, Audacity, and OBS Studio are all open-source. Please support open-source software financially when you can!

Recording Audio

I lay down all of the audio into one single project. Then copy just that individual into a seperate project. Then export as .WAV file. When complete, import into UE4 and then create Cue(s) for each. In the Level Blueprint, select the named trigger volume and set the trigger volume OnActorOverlap event to play that specific cue.

Thinking Outside of the Box

Right now this a completely manual process. In order to fully automate it in an easy to maintain procedure would require a ton of work. For a handful of folks who have passed, this has been acceptable to me. If however we need to add hundreds of people to the SQL Memorial, then we should look at automation in some capacity.

A limitation of UE4 is the fact that the in-game non-linear editor known as Sequencer unfortunately cannot export audio into a video format. Meaning I can playback a sequence in-game but if I try to export into a format for upload to YouTube, it does NOT capture the audio. Bummer, but they are working on it.

In the meantime, I’ve had to come up with a couple of embarrassing, n00bish hacks. I can just see some game studios or expert UE4 folks just shaking their heads, rolling their eyes at me, as I’m sure there has got to be a better way than what I’m about to explain.

All I can say is that as crude as it is, it works but not as well as I would like.

Old Version: strafe right/crab right into position, activate trigger volume, and wait for audio to play, then finish, pause for reflection. Then onto the next display. Repeat. Record the whole thing using OBS Studio.

New Version: parent First Person Character to a Camera then use Sequencer to build precise moving and stopping in a Level Sequence. When the camera/character passes through a trigger volume, the audio will play. Record using OBS during sequence-only playback.So the old way required me to be super sensitive and speedy on the keyboard using WASD navigation. In order not to jostle the camera, I had to use only the A and D keys during a run-through and time starting and stopping several times.

The new way uses some recently acquired Sequencer skills and a hack by attaching my character to another camera. I put everything into a Level Blueprint for now.I had to re-position the trigger volumes (an invisible wireframe which raises events when something overlaps into its space, like a character).

In Closing

SQL Memorial will have more additions and improvements as the years go by. That is to be expected. But we can take time to remember those who have passed away and I hope this project can help to keep their memories alive in our hearts.

Posted in Uncategorized | Leave a comment

Building and Deploying Projects in Unreal Engine to the Oculus Quest

Background

Over the years I have successfully deployed my own Unreal Engine projects to: GearVR, Oculus Go, and Oculus Quest.

But it wasn’t always easy or straightforward. “Official” documentation often contradicted itself. Searching on the internet for error messages often times resulted in even more frustration as the message was a side effect and not the root cause of the problem.

Hence the need to create and share this blog post to help others trying to do the same thing but with fewer banging your head against the wall sessions.

While I will be referencing both Unreal Engine and Oculus documentation but using my own screenshots, I am also going to show a different path that I have recently tried out and haven’t seen any issues with it.

It involves using the Virtual Reality template project- but note that it does NOT say it is for Oculus Mobile. It has worked for me so far on both Oculus Go and Oculus Quest- collectively known as Oculus Mobile.

I walked through these steps in some recent presentations I have given at the Colorado Virtual & Augmented Reality Group and the Denver/Boulder Unreal Engine Group.

Please note this information is offered as-is, no warranties expressed or implied. And please take time to read through this document; you may or may not have everything your need right up front like the USB to USB-C cable for the ‘Quest.

Assumptions

You already have an Oculus Mobile set-up and configured using it with probably your phone on the same wireless network. Note the username you used; you will need it again below to link to a developer account. These steps will take one from a clean start to a successfully side-loaded project using a Windows desktop. I don’t have easy access to Linux or Mac but most of the steps will be similar.

Key: be sure you have the latest version of the firmware for your Oculus Mobile and the latest version of the Oculus app software on the device used to configure it. Also you will find that sometimes when you launch UE4, the Oculus desktop software might tell you to it needs to update. So just a friendly head’s up that you will be re-starting your PC early and often.

Step 1 – Install Launcher and Highest Version of UE4

Download and install “The Launcher” from https://www.unrealengine.com/en-US/ and install the latest engine. As of this writing, that is 4.24.1 Please read the EULA and also note that you will need to create a login. Please use a strong password 🙂 And re-boot your PC.

Step 2 – Install CodeWorks for Android

Install CodeWorks for Android. Please note this is a special version for Unreal Engine development and trying to install CodeWorks for Android from other sources will result in things not working correctly, trust me, I’ve tried. Note that this step will also automatically install all of the Android Device Bridge (ADB) software and drivers to connect your Oculus Mobile to your PC.

Ex: on my machine, I installed the engine on my C: and the path to Codeworks is:

C:\Program Files\Epic Games\UE_4.24\Engine\Extras\AndroidWorks\Win64CodeWorksforAndroid-1R7u1-windows.exe

Right click and Run as administrator to begin the installation process. The defaults are fine but also check the Automatically resolve dependency conflicts. NOTE!!! Please read the EULA(s) and don’t walk away; it does require manual responses during the installation. This process will download and install A LOT of software so be patient. And re-boot your PC. Basic screenshots follow.

Step 3 – Install Oculus Setup Software

Install Oculus Setup for desktop software. Even if you don’t have a desktop Oculus Rift, this software is still required. I have a Rift so this is what has worked for me. If you don’t have a Rift, then you might get by with installing just the ADB drivers as mentioned in Step 4 below. You will need to create a login. Please use a strong password. https://www.oculus.com/setup/ And re-boot your PC.

Step 4 – Oculus Developer Registration

You will need to be registered as an Oculus Developer in order to activate Developer Mode on your Oculus Mobile. While that link says Quest, it works for Go too. You can register as an individual.

NOTE!!! Be sure to use the SAME login and e-mail address as indicated in the Assumptions section on this blog post. I’ve had problems trying to use separate accounts and the same account for both has worked for me up to this point. Also note the Important section at the top of that link- since we are going to be side-loading an application, this doesn’t apply to us for now.

Follow the steps on that link above but skip the Install the Oculus ADB Drivers section.

Step 5 – Now the Fun Begins – Quick Start Guide (QSG)

While this Quick Start Guide (QSG) does work, it is seriously lacking. What do I mean by that? If you follow the steps in it, you will have a level with a gray checkered floor that you can only look around in- you can’t move around using the controllers! But go ahead and read it top to bottom as this will give you an insight into the steps required. Once you get the hang of it, it will get easier over time.

So instead of a Blank Project, in Select or Create New Project, choose Games and Next.

And on Select Template, choose Virtual Reality and Next.

NOTE!!! If this is your first project using this engine, your machine will peg its CPU for a while. It will need to compile and cache shaders. It can take several minutes. It will only do this once on this project; when you re-open it, it won’t take as long but this can catch many people by surprise because it will appear that nothing is happening. This template is intended for desktop systems but we are going to change it to work with Oculus Mobile.

Then follow along as the QSG indicates.

On QSG Step 7, also do the following. Under Supported Platforms, be sure to check Android. This is what makes the Virtual Reality Template work on Oculus Mobile instead of just desktop Windows.

Also on Step 7- change both the Editor Startup Map and Game Default Map to MotionControllerMap.

On Step 12, please click on the button that says “Accept SDK License”. If you don’t click this, when you go to package the project for deployment, it will fail.

After QSG Step 16, “Launch the Unreal Engine Project on the Oculus Quest” go ahead and try to deploy from with UE4 but you might need to do Step 6 next before it will work…

CAREFULLY turn your head with the headset on- don’t jerk the cable! The A button on the ‘Quest controller will teleport you and the palm trigger will close/open the hands.

Please note this will ONLY work with it properly connected. How to make it work w/o having a cable attached? You will need to package it and that is covered in Step 7.

Step 6 – The Dance of the Headset

Most of you will need a special cable; USB to USB-C in order to connect your Quest to your PC. You will NOT be able to use the cable that came with your Quest as that is power only and not both power and data; it is USB-C on both ends. The cable that came with the ‘Go works fine. Just be mindful that these cables can be short so don’t accidentally jerk them.

When you connect your headset to your PC with the cable, you will see a screen inside your Oculus Mobile about do you trust this device for USB debugging. You will need to select this from the device and the screen will disappear if you don’t check it. Re-starting the headset and toggling between developer mode can force it to come back. If this is not done, then ADB won’t be able to “see” the device and you won’t be able to deploy to it.

Step 7 – The Smoke Test

In order to install this Android application on Oculus Mobile, you will need to do what is called side-loading. This is a manual installation process.

Re-boot your PC so this is a clean process.

Launch your UE4 project and click on the Build button on the top toolbar. Save your project.

Under File: Package Project: Android: Android (ASTC) and it will default to your project folder. Also check the Show Output Log as this will show you what is happening. Depending on the speed of your machine, this can take a while.

You want to see the magic words: “BUILD SUCCESSFUL” at the very end. Check the Output Log if this doesn’t happen as it can give you insights as to what went wrong.

Now you will need to run an elevated command prompt and browse to the installation folder for your project.

Windows Key + X and select Windows PowerShell (Admin). Select Yes. Then type cmd to switch it into Command Prompt mode.

NOTE!!! If you do NOT select an elevated session, bizarre errors can occur, especially Java related ones. This one step has saved me (finally!) many hours of frustration getting applications installed to Oculus Mobile.

Connect your Oculus Mobile to your PC via appropriate cable and turn it on.

Type adb devices in the command prompt to be sure your PC can in fact see the device.

While I can’t provide a crash course on cmd and dir commands, you will essentially need to path into the Android_ASTC folder of your project. I used the cd.. to get to the root of my C: then to where my project lives. I use the * shortcut to help save on typing.

From here you MUST type the name in exactly in order to install it. In this case it is: Install_MyProject-armv7-es2.bat

If this is the first time you install it, you will see a bunch of Java failed exceptions- it is trying to remove the previous installed application of the same name. You can ignore these. What you want to pay attention to is in the far lower left of the window- watch the percentage installation:I already have it on my ‘Quest so a successful install looks like this:

Unplug your headset and put it on. Under Library, look for Unknown Sources (Developer mode MUST be on in order to see Unknown Sources). Then on the right, click on MyProject. After a few seconds, you will be inside the side-loaded Virtual Reality template and application. Move around using A button for teleport on ‘Quest or trackpad on ‘Go. Palm trigger on ‘Quest can grab objects. Have fun!

I’ve used this template as a starting point to build other Oculus Mobile experiences.

Conclusion

There are a ton of steps to getting a creation onto Oculus Mobile. It has been a long and frustrating road for myself and many others. I believe Virtual Reality can be used in so many ways in both gaming and non-gaming applications to help people. Now that Oculus Mobile (especially Quest) is here, I am excited to see what myself and others can do with it.

I hope this blog post can reduce the time and effort and show people that they too can successfully build and deploy Unreal Engine 4 projects and apps to Oculus Mobile.

Thanks for reading!

 

 

 

 

 

 

 

 

 

Posted in Uncategorized | 1 Comment