Last fall at #androiddevsummit I stayed up late with @johnhoford talking about the then new @oculus Quest, which runs Android. Lots of brainstorming about porting @pigment_app's painting engine to VR. That's when I first took a step back from Android app development.

A thread 🧵
We struggled for a long time figuring out how an indie shop can make money on Android in creative spaces. Even on iOS, the iPad is Pigment's main driver, but Android doesn't have a really solid tablet market. We decided last fall to explore our painting engine in VR.
Pigment's graphics are written using the Android OpenGL API's, which work on the Quest. But you lose a lot of things you'd get for free from a game engine, like head tracking and easy touch inputs. My first look was at the C++ samples, but that was a big mountain to climb.
We then looked at @unity3d, which allowed us to get things up and running pretty quickly, though having never done game development involved a TON of learning.
I loved this part! I spent a ton of time reading, experimenting and learning about things like Entity Component Systems instead of OOP, building C++ libraries that are usable from C# and Java/Kotlin, and much more. Filament (and @romainguy) were huge helps here!
I spent this time rewriting Pigment's painting engine in C++, with facades for both Android and Unity, intending a Swift facade later. The facades were lightweight, but allowed using the engine to feel native on each platform. Filament does a great job with this!
As I worked on the C++ engine, I continued to integrate it with both the Unity prototype, and the existing Android app, using Experiment flags to dynamically enable/disable the new engine, ala @jessewilson's 2018(?) talk from @droidconNYC.
We came up with some interesting (albeit ugly) prototypes. One of the first ideas was The Garage. You'd have a private space where you could paint vehicles: space ships, pod racers, cars, etc.

Note the mirrored painting, which was a UV mapping accident that we liked in the end.
Another idea was simply giving a beautiful environment that people could paint on a canvas, like an art retreat. Here you can see the camping canyon that @n8ebel put together.
My original internal pitch included the ability to photograph the landscape as a drawing guide, either a faded, real photograph, or a generated "coloring page". This would help users of all skill levels get started.
In my research I actually also learned a bit of art history! One old technique for painting involved a Camera Obscura, a device that would project a scene onto a canvas, then you could basically draw over it. I assumed famous paintings were all freehand! https://en.wikipedia.org/wiki/Camera_obscura
This was a super fun project, then came March. With all of the economic uncertainty, we decided to pull back on R&D and focus on more of the core business. That was disappointing, but I agree with the call.
Even without a deliverable product at the end of this journey, I think this was a super valuable experience and am thankful to @pixiteapps for supporting it. I'm also grateful to @johnhoford for planting the idea.
All of this intense learning in a different domain was tiring, but I left with a much deeper understanding of graphics programming, architecture, and lots more. I have so many ideas to bring back to the app space, and a new excitement that, frankly, had been waning.
You can follow @rharter.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.