Nun’s Beach VR Development Blog #5

Simon Cottee
16 min readMar 29, 2022

In this blog I will go through my experiences, experiments and pipeline to create a VR Beach Scene for this research and development project.

As concluded in this previous blog we decided we would use OPENBRUSH by ICOSA. This is due to its “draw feel” and immediacy of creation paired with the opensource nature for potential customisation.

INITIAL TESTING PERIOD

A really important first step is just learning the function of the brushes and their behaviours. So opening the software and literally clicking every button and testing every tool. Doing this we can narrow in on the systems we can rely on. Something I’ve noticed in these VR environments is people have a tendency to try and incorporate every single brush and effect they can cram in. For a more focused and “rounded environment” I really recommend narrowing in on a small handful of brush types, colours and textures to create a consistent piece of art.

The image above may appear to be a random pile of rocks but it was actually a major moment in production. Here is where I truly learned the power of the Colour Jitter setting and the Matte Hull Brush. The colour jitter is a setting on your colour you can tweak which indicates how much saturation and tonal change there will be with every stroke. This is a HUGE deal as it means you can pick one “master colour” and apply a jitter which will add subtle variants on all strokes. A huge time saver with a great effect. The Matte Hull Brush is also on display here: a brush type that I can create controled strokes that form 3D shapes like these rocks. This became the tentpole tool for my entire project. The Matte Hull Brush with some good colour jitter!

To reinforce how important the colour jitter is, regard these brush strokes above. These were painted in perhaps 12 seconds, with the jitter doing all the work to create those tonal and saturated colour variations!

An important step in testing is to just play around. Before I even tried approaching my beach scene I created a bunch of test environments. This is really vital when learning a new software like this, to play and have fun with it will be where you make most of your discoveries. Learning through play. It was a huge step for myself to try workout if I could even MAKE a scene. That’s the entire point of this project, can I use VR to create stuff? So this little scene above was a breakthrough for me because it confirmed that I could.

Above we see some other important moments. My ability to bring in reference images into the scene. Being able to create a virtual art space full of reference material is amazing. I could even bring in PNG files with alpha transparency. Sadly it doesn’t yet support alpha channel gifs or video files, which would have been really useful for merging traditional animation content from other softwares into my environments. Like putting an alpha channel looping gif of a bird in the air etc.

This was my first freeform beach scene test, just messing around with brushes and approach. Here I wasn’t using the Matte Hull brush, rather testing the affect of the paintbrush strokes. While interesting it proved too uncontrolled and wonky.

There were many more tests created but these are the relevant ones I believe.

POST EXPERIMENTATION PRODUCTION START

So now I had a pretty good idea on my approach, it was time to plan the project in a more concentrated way. As I was creating a beach that actually exists I first drew a map I could use as a guide for the scene geography.

Above we have the satellite data and below it my draw over of the area I intended to recreate. Also serving as a starting colour palette reference.

I then imported the painted map into my Openbrush and made it like a huge floor plane to draw over. An issue I quickly discovered was the trickiness of SCALE. I can change my own scale from that of a squirrel to a huge towering dinosaur within the scene, but as I was creating such a massive geographical area I eventually (half way into production) found the best technique is to start with your scene small in scale, then when the foundations are in to scale up all the elements so you can get to a proper human scale within it.

THE FIRST FAILED SCENE

The first version of my beach was really bad and I got pretty far into it before I had to trash the entire thing and start again with the lessons learned. It was kinda working but without any proper foundational planning I began to encounter many speedbumps and knew I could do so much better. Here is a bit of my FAILED beach. The scale and dimensions are very underwhelming.

Notice the flashing light on the ocean here. This was actually a really cool discovery. Some of the brushes have audio waveform effects you can activate. What that means is I could play the sound of the ocean on my computer and these brushes would have effects that link to the sound waves of the audio. So in this case the brush was flashing to the crashing of the waves.

BEACH 2.0 — SORT OF

So now with a more concentrated approach I was ready to start again.

Here you can see how I would bring in this big reference image ground plane to paint over (I would eventually redo all of this).

Here is some further blocking in, in game design this is also known as greyboxing; The creation of a functional environment that has none of the details or beauty and that will eventually be rebuilt.

GROUND PLANE CRISIS!

I done F-d up! I made a big silly mistake that would require me to rebuild EVERYTHING AGAIN. The issue was that I wasn’t creating a single simple ground plane, but rather trying to build up the sandy beach out of multiple geometric discs. What happened from this was pretty funny. As I was standing in the center of the environment and creating the scene around me by constantly turning around, it meant the scene elements were always slightly angling down towards me in the center. So the center of the sandy beach had a low point like a small funne!l The ocean, cliffs and everything angled upwards away from it slighty. I’m not sure if you’ve ever been on a beach but that sure ain’t how they work!

Above you can see how OFF my sand and ocean is related to this guide layer. This is actually how I discovered the GUIDE system. Trying to fix my mistake. You can bring in these guide plane layers that don’t render but can be used to help you create flat planes, they even have brush snapping! But they’re also a real bastard to align properly and very fiddly. Attempting to move this absolute giant ground guide with two shaky hands in VR to be perfectly positioned in your scene took hours of adjustments and made me feel sick. Time to rebuild it again.

BEACH 3.0 SORTA

I deleted out my ocean, sand, cliffs and drew new guides using this green brush over all my forms. Blocking in the scene and testing it at true scale to refine it. In a VR environment exaggerating scale and distances can really help make a scene feel good. Like I probably made the cliffs 3x higher than they were in reality. So I rebuilt everything with better colour and a more structured and geometric approach.

I much preferred this “low poly” effect, and as VR needs to run at real time on PC hardware it’s also a great idea if you’re building a huge space with trees etc to try keep things simple and optimised.

I began to “detail” the cliffs with these big rock wedges. This is still just a single brush (Matte Hull).

LIVE STREAMING

I had also been live streaming some of my process on twitch. Here are some clips of me working and rambling in VR so you can see the process for yourself.

You can find a complete recording of this work session live stream here.

TREES

I knew that trees were going to be a major part of the scene but had no idea how to approach them. I’d done some detailed tree tests and had considered making a couple of trees I could copy and paste, but I found a technique that would allow me to draw every tree freehand to create a much more considered and organic scene. Here are some initial tree tests.

This final image above ended up being my approach. I would draw the trunks and branches first using this simple flat brush and then a big “blobby” brush to paint in the canopy. As these are gumtrees they needed a very considered colour palette, so I had to draw on my memories and mental images of how gumtrees feel. Huffing Eucalyptus essential oils helps.

Here you can see the flat blocked in trunk effect.

I first setup these guide posts along my cliff ridge so the scale of my trees would remain consistent. Then it was a crazy task of painting in like a thousand or something tree trunks freehand, which in VR was surprisingly fast and painless. Throw some music on and have fun with it! Being able to use your full body to do this stuff was actually exhilarating. This was the moment I was getting into this whole VR pipeline business, now that most of the logistics were solved for.

THATS A LOTTA TRUNKS. I did them in passes of the foreground, midground and background line of trees. Each line having a slight colour variation (darkening the further back they are to try create some extra artificial depth). The scene was starting to come alive and I was loving it. Time to give them their lil hats!

It felt a lot like building a model. I could scale myself up to be this huge giant and tinker away on my little beach. I thought of my Grandad and his amazing model trains. He had this huge garage on his property that had a full working rail system with mountains and trees and tunnels. I got it.

Again I did them in passes, trying to consider the foreground, midground and background. The vantage point of my scene was smack dab in the center of the beach so I would constantly have to return to that position and human scale to get the right perspective on what I was doing. An important thing to do as you can spend a lot of time working on an area that from the desired vantage point can’t even be seen.

I then began to add in little bushes and stuff to fill out the scene. This is where I was really starting to fill my scene with geometry and had to switch my graphics presets to low in order to maintain a consistent comfortable frame rate. If the bloody graphics card drought wasn’t happening I would have had a more powerful GPU and not had to suffer this!

I was really into my little trees and bringing them in made my scene feel like a happy place. It really did. That was also my goal here, as let’s not forget I’m trying to recreate a beach of my memories and childhood. I started to fill with some dread knowing I was going to need to set this entire place on fire soon… I think I procrastinated in this idealic beach for a long time before building the courage.

THE OCEAN

The ocean and waves were an interesting challenge. I had originally intended on having 2D animated waves that I would import from my traditional animation software, but as Openbrush currently didn’t support alpha transparent video files or gifs that wasn’t going to work. Sadly Openbrush also didn’t have the same kind of animation capabilities as say Quill does, but one thing it DOES have is some looping animated texture brushes. So with some experimentation I started to get a cool effect that suggested moving waves, even though they were very static.

What I did is with a very careful controlled stroke, bury the brush stroke line in the water plane so you only saw half the stroke, then do a “wave” motion in order to give it the feeling of the white water break on the wave tops. This took a lot of time to get right as these stroke lines are incredibly long and cannot ever travel out of the water plane or you would see their underside. It worked better than I had expected and was much quicker than hand animating any waves! An extra cool thing is I could press a button to link them to my PC audio and the animation movement would play matching audio of ocean waves.

LOOK AT ME I’M SANDY DEE

The sand was tough! I wanted to get variation in the colours of the sand but I also had to keep it near perfectly flat! I found that if I used my matte hull brush at a very specific scale and had it snap to my ground plane guide I could control a tiny “raise” on the stroke.

This was my first attempt that I ended up throwing out even if it looks kinda cool. That’s not at all how the gradations of sand look based on high tide!

It took A LONG time and was very fiddly but I eventually got the sand to have this kinda banding which I thought was neat. Doing this also raised the total height of my sand ground layer which in turn impacted all the surrounding rocks and cliffs, so there was a lot of adjustment needed. If I was a smart guy I woulda got this working FIRST.

I also added some big simple clouds out on the horizon which was a bit tricky based on scaling issues, but it worked pretty well.

Another important step was the adjustments to the light direction, shadows, sky haze and coloured fog distance. This was an ongoing tweaking process to try give the evening summer time hazy effect I wanted. Also learning the system inside and out as it would be a major factor for my future variations for the smokey, flaming and post fire versions.

THE FIRE

As this is ultimately a project about the Australian Bushfires I needed to create a LOT OF FIRE… For this proof of concept I initially intended to make 3 variations of the scene.

  1. Tranquil sunny
  2. Smokey ominous
  3. Bushfire

What I ultimately ended up doing is creating a 4th and 5th version which was a post fire and rebirth beach. I found it too painful to leave it on fire and I needed to see its regrowth! Especially as my family had been sending me photos of the regrowth of this very beach while I was here in Canada. I found it very optimistic to see.

A photo from my Mum of bushfire regrowth.

SO how do I create FIRE? I’d actually worked it out in one of my very earliest tests. There is a “comet tail” brush that has a moving flame effect that travels along it. I discovered that if I VERY CAREFULLY move that brush from beneath the ground plane and up the trunk of a tree it gave the appearance of a tapering rising flame. This was a slow process as I had to perfectly scale and align my brush to the trunk… oh hey I got like 2000 trees on this bloody beach…

So first step was to delete all the leafy hats off the trees and change the colour of the trunks to black. Then start painting over every single tree trunk. Changing the ambient lighting and fog colouring helped a lot for the ambiance too.

Here you can see the effect of the flames! Pretty good. Also pretty sad.

EMBERS & SMOKE

There was a great brush that was default brush that worked perfectly for embers. The trick was to use it sparingly as putting it everywhere would overpower the flame effects on the trees.

The fog system could easily create a smokey environment too. I then used the same system I created clouds with in order to build up a huge dark smokey “cave” for the scene to sit in for the flaming climax.

This was also when I started to experiment with the camera motion paths within the software. Pretty neat for rendering!

There’s also the post fire blackened landscape version that uses a new smoke brush. To make this scene I had to delete out a lot of elements and recolour everything.

Rebirth

As mentioned above I had the realisation I couldn’t leave the beach on fire. I needed to regrow it, both from a cathartic personal level but also while working on this piece I realised it was the natural ending to the projects narrative. So I got to rebuild my trees and the scene again. Taking my flaming inferno version and deleting all the fire and smoke and adding some new fresh young canopies. It felt great.

CAMERA PATHS AND RENDERING

As this piece is a proof of concept for a larger idea I needed a way to present it. I can provide the openbrush scene files to someone but thats with the expectation they have a VR headset, Steam, Openbrush and know where to place my scene file into the correct sub folder directory and then open it within the software understanding the tools enough to then navigate it… it’s not a feasible delivery format to the general person, especially if I’m using it to pitch. So I edited together a proof of concept video to try capture it. My first step was creating a text and colour animatic. I made a few versions as I couldn’t decide on the song to start with. I eventually settled on one of my favourite (and public domain!) Chopin songs. Preludes, Op. 28 №15 ‘Raindrop’ of course!

Now I had a plan of the shots and footage I needed to capture to fill out this little proof of concept “film” that has an arc and beginning middle n end.

Openbrush has a pretty fascinating little camera path motion rendering tool, but it comes with a watermark default turned on and wasn’t rendering at my desired frame rate or resolution. So I had to contact the developers and edit some software text files to get it to work how I needed it (another weird speedbump). The camera pathing tool is also very awkward to fine tune and use effectively, but with enough elbow grease and problem solving you can get some decent results.

AND THAT’S BASICALLY IT!

PHEW. that was a lot wasn’t it… There were so many other little twists and turns in this process. It was a bumpy ride to be sure but a valuable experience. I would have never had the time to learn and experiment in this way without the support of the Canada Council for the Arts! In the next blog I’ll share my final proof of concept video and our ultimate conclusions!

All the best.

--

--

Simon Cottee

Simon Cottee is an Australian 2D Animator and Direction living in Montreal