Open Collective logo
Open Collective
2021 Retrospective and Open Brush 1.0!
Published on January 8, 2022 by Mike Nisbet

Hello everyone, Mike here, and hello to 2022! The last year has been an amazing time for Tilt Brush, now set free into the hands of the community. I’d like to take this opportunity to review the year we’ve just had, and look forward to what’s to come for Icosa and Open Brush in 2022!

Thank You!

First of all, I’d like to thank the community for your constant support, and especially our amazing monthly sponsors and donors here on Open Collective. Tilt Brush was an early pioneer for VR creation, and such an amazing tool cannot be allowed to die. We're honoured that you have rallied around our fork and helped Open Brush become the leading community successor to Tilt Brush. We believe it's really important to hear from the community about what we should work on next, what can be improved, and to share your amazing creations!

Also, we’re happy to announce that the current expenditure for Icosa's hosting is now exceeded by your donations, which we could have only dreamed of when we first launched the project, never mind in a year! Thank you so much for your support!

If you’d like to join others in supporting us financially, you can do so via the Open Collective page. We’d love to hear from our sponsors in the Discord as not every donor has joined, so please come and say hi (and claim your shiny role!).

Now, onto the review!

Icosa

After a period of alpha testing, we launched Icosa Gallery in beta at the end of June, 1 week before Poly shut down for good. During that week, users were able to import over 3000 Poly models to their Icosa accounts with just a few clicks!

Icosa Gallery currently supports uploading models in the GLB (glTF) format, which can be generated from inside Tilt Brush or Open Brush by using the Export feature. For now, you have to manually upload these to the platform from your uploads page.


Icosa's standout feature is the custom three.js viewer, which allows models uploaded from Tilt Brush or Open Brush display their brushes correctly on the web, including animated brushes, just like Poly! The shaders required for this feat are able to be generated from the Tilt Brush source, so once again we're thankful to the Tilt Brush team! We’ve updated the shaders to take advantage of newer WebGL APIs, which as of iOS 1 and macOS 11 became supported on Apple devices. In October, our special sauce for loading the models was open sourced as its own module, so you can use it in any three.js project! See three-tiltloader on GitHub for more.

Future Icosa Features

In 2022, we plan to expand the capabilities of the Icosa platform to be the best place for Tilt Brush and Open Brush creations!

Public API
One of our main goals is to provide a public API that anyone can browse and integrate into their apps, just like Poly! The key motivation for this is enabling direct integration into Open Brush, becoming a full replacement for the Poly integration that was present in Tilt Brush. This will allow users to directly upload their creations from Open Brush when they sign in with their Icosa account!

More environments, more control, more everything
Rendering creations correctly is good, but sometimes there's more to a Tilt/Open Brush scene. We're going to work hard on bringing back the wide range of environments that were available as backdrops, as well as giving creators finer control on how their creations are displayed, such as viewing angles, initial camera position, and auto-rotation. Much needed sketch management options like deletion, thumbnail control and sharing options will make their appearance too. We initially set all uploaded items to private, and any works are labelled as 'All rights reserved' until licensing and rights are displayed clearly and in an easy to understand fashion.

Becoming a true distributed platform and gallery space
Although costs of hosting the site are covered at the moment, that may not be the case in the future, and we’d like to explore new ways to reduce the costs of hosting large 3D models. One of our long term plans is to enable the Icosa platform to be a distributed network of federated instances, similar to sites like Mastodon. This would allow collectives or individual artists to host their own instances or galleries, and always be in control of their data, while still being able to operate and talk to the wider Icosa network. We plan to look at additional storage options that lean on distributed technology, such as IPFS.

We’re really excited to evolve the Icosa platform even more in 2022, and if the technology we’re working on sounds interesting to you, we’d love for you to join us and contribute! See the links at the end of this post to learn how to get stuck in.

Open Brush

Tilt Brush was open sourced at the end of January 2021, and the work we’ve seen done with it since then is amazing! On other forks, we’ve seen a port to WebXR with Silk Brush, and multiplayer with Multibrush (more on this down below!). Other apps like Figmin XR have implemented part of the code into their own apps, and some have created all new experiences like Gondwana VR!

On the Open Brush side of things, our focus has been split into two categories: maintenance and updates to the Tilt Brush codebase, and getting to know the project through implementing our own custom features. We’ve upgraded the Unity version to 2019.4 LTS, set up a robust build build and distribution pipeline, and launched on multiple platforms! Features include full LIV support, including compatibility with Oculus Mixed reality capture (MRC), new tools such as flying locomotion and colour jitter, and new drawing guides.

We’re pleased to report that Open Brush has been downloaded over 90,000 times across all platforms! Thank you so much for your support and interest with the program.

Our work on Open Brush is just getting started though, and 2022 is looking to be a bumper year!

1.0 Release

Tilt Brush’s first anniversary of becoming an open source project is fast approaching, and we’re going to be releasing some awesome updates at the end of January to coincide with this. 

We’ve reached the point where we as a developer community feel that we have got to grips with a lot of the Tilt Brush codebase, so we are happy to announce that this will mark our first major release, Open Brush v1.0! 

To celebrate, we’ve got some big new features and tools to show you:

Snapping
A long requested feature: you can now snap your brush strokes or grouped objects to a regular grid or angle! This can prove to be very useful for creating things with a lot of regular patterns such as buildings.

Even more jitter controls
Colour jitter has evolved into its own feature, now supporting brush size and position jitter! This lends itself really well to injecting a more natural look to your creations. Jitter is also now available on the repaint tool to enhance your touch ups!

See the above two features in action in this video by their creator, and one of our maintainers, andybak!



New Drawing Tools
We've had some amazing contributions by community member moat that introduce some really cool new ways of input!

Lazy Input
VR controllers can sometimes be a little too accurate and responsive, making it difficult to create smooth curves at low movement speeds. The Lazy Input feature will exchange responsiveness for control by applying real-time input averaging.
Toggle it by holding your off-hand trigger and tapping the button marked with the rabbit/turtle. 



Wand Stroke Guide
This is a 3D-version of bimanual tape drawing sometimes used in automotive drafting.
Holding the off-hand trigger down will constrain the brush to move in a straight line towards the off-hand controller.
You can curve the line by using your off-hand controller to control the stroke's direction while using your main-hand controller to move the cursor closer to the off-hand controller and control the stroke's orientation.



Wand Guide Revolver
The Revolver adds a lathe function to the Wand Stroke Guide.
Activate the Revolver by tapping the button marked with a bulls-eye icon while the Wand Stroke Guide is active.
The radius of the revolving arc constraint is dependent on the distance between the main hand controller and the Wand Stroke Guide Axis. You can tap the bulls-eye button to adjust the radius.
The revolver can also be made to automatically sweep around the axis by using the joystick. 



World Axis Unlock
Warning, not for the easily nauseated! While holding both grab buttons to change the scale, you’ll see a padlock on one of the action buttons. Click it, and you’ll now be able to orientate the world to any position you want!



Open Brush API
This one is for the developers! Open Brush can now be controlled by any application, through a new external API. You can control things like brush type, stroke colour, and thickness. Control additional cursors to paint any shapes and strokes you want programmatically. It even works on computers that don't support VR. You can create sketches on a Mac and export them to view in a web browser. Want a procedurally generated tree? Turtle-bot style controls? Your control choices are now practically endless. If you’re interested and can’t wait to get started, you can learn more about the API here. A huge feature contributed again by andybak!

I can't wait, where can I try these awesome features?!
We're glad you asked, they’re already available on our beta channels! See https://docs.openbrush.app/alternate-and-experimental-builds/open-brush-beta-docs for how to get access, and please let us know of any bugs via Discord or GitHub! There's also some extras we've not talked about here, such as brush tagging (thanks  insominx!).

Future Open Brush Features 

So, what’s coming in the future? We’ve still got some fairly huge features we’d like to add in the near term. Once again, feel free to join our community and help to contribute new features to the app. We'd love to have you! Links at the end of this post!

OpenXR
We are really close to upgrading Open Brush to the new Unity XR pipeline, which makes it much easier to get the app running on new platforms. One of the main plugins for this pipeline is Open XR, which will allow any headset that also implements the Open XR spec to run Open Brush without any further work needed! We believe this is super important for the future of Open Brush as newer and fancier HMDs start to come to market. We’re excited to announce we’ll be supporting the Vive Focus 3 and the Lynx R-1 headsets in the near future!

Hand Tracking & Passthrough
The above transition to Unity’s new XR system lays the groundwork for news forms of interaction. We will be working on adding a full hand tracking mode to Open Brush once this work is completed! Adding passthrough modes as seen on the Quest line of headsets will be possible too, and we’ll aim to support both of these on the Lynx R-1 as well.

Multiplayer
This is a big one. Rendever did some awesome work with getting Multibrush up and running very quickly after the initial release of the code! Unfortunately the multiplayer code uses proprietary netcode packages that are not suited for an open source project, so it wasn't possible to directly port their achievement to Open Brush. Therefore, we're eager to get working on a fully open source multiplayer solution! 

We want to make sure that, in addition to servers hosted by us on behalf of the community, it's easy for anyone to spin up their own server and get painting. We've had feedback from schools and public spaces like museums that due to firewall restrictions, they need to have the ability to host the space locally and sometimes without any internet access. VR LAN party anyone?!

User Brushes
It's been possible to create new brushes since Tilt Brush was first open sourced, but this requires installing the full Unity project and creating them inside the editor. This also limits the ability to share brushes, as a custom build must be done every time you want to add a new brush someone sent you.

We're already well underway with the task of adding user defined brushes! These build on the core brush library, but allow you to change the base parameters of each brush to create entirely new ones! For example, you can swap out the texture, gloss, animation speed, and more! We're working on expanding the number of tweakable parameters for maximum customisability, and making sure all these wonderful custom brushes are easy to share with the community, while being robust enough for professional workflows such exporting and sharing in other applications (including Icosa!)

Conclusion

Wrapping up, I'd one again like to thank you all for your amazing support of our projects. Open source is fuelled by the community, and your response and enthusiasm to the projects is what keeps us going. We're always eager for more contributors, so please don't be afraid to join our Discord or GitHub and ask how to get started, we're more than happy to answer any questions!

An especially big thank you to the other members of the core team who joined this journey with me. You are all awesome for giving your time so freely to these projects and I can’t ever thank you enough:

AncientWorlds
Andybak
bill
CaptainXap
Foxy
michael-g
mikeage
n1ckfg
PerlinWarp
pld
VR_Rosie

We can't wait to see the features and contributions in 2022, and we hope you'll join us for this amazing ride.

Mike

Links!


Donate on Open Collective
Donate on GitHub Sponsors

Social:

Open Brush is available in the following stores: