Open Brush Unity SDK

Using Open Brush with Unity

About

The Open Brush Unity SDK allows you to import your Open Brush sketches into Unity. The SDK includes:

  • All of Open Brush’s brush materials

  • An importer script that automatically assigns Open Brush materials to imported .glb files

  • Open Brush’s audio reactivity functionality that make brushes react to music

Requirements

The SDK has these requirements:

  • Your project must use Unity 2019.4 or higher

  • Macs running on Apple Silicon (i.e. M1 or M2) need to remove Audio Reactivity to fix errors related to "CSCore".

Getting the code

Download the latest version of the toolkit from: https://github.com/icosa-foundation/open-brush-toolkit/releases

The SDK comes in the form of a Unity Package. To import:

  1. Open Unity

  2. Create a project or open an existing one

  3. Double click the downloaded .unitypackage file, or go to Assets > Import Package > Custom Package.

  4. Import the package

Importing a sketch

To use a Tilt Brush sketch inside of Unity, you need to export it and copy the exported .gltf file into your project. You do _not _need any of the .png files that come with the export. The SDK will use its own, Tilt Brush materials instead.

The SDK will process .glb files on import and assign the correct materials.

To export a sketch:

  1. Open Tilt Brush, load your sketch

  2. Click the [...] icon in the settings area of your hand menu

  3. Click the **Labs **icon

  4. Hit Export in the floating window that pops up

To import a sketch into your scene:

  1. Find the exported files:

    1. On a PC or Mac look in Documents/Open Brush/Exports

    2. If you created the sketch on a standalone Quest thenconnect it to your PC/Mac by following these instructions and then browse to the Quest in Explorer/Finder and look in Internal Shared Storage/Open Brush/Exports

  2. Copy the .glb file into your Unity project

  3. Drag the file from the Project window into the Hierarchy

Notes:

  • The Open Brush Unity SDK doesn’t load .tilt files.

  • You don’t need to copy the textures included with the .glb into your project

Tips

Fixing CSCore errors (or other errors related to Audio Reactivity)

At the moment the plugin used for Audio Reactivity doesn't work on some platforms. If you see errors related to "CSCore" or anything that looks audio related deleting the following files from your project:

  1. The folder ThirdParty\CSCore

  2. The folder ThirdParty\Reaktion

  3. These files:

    1. TiltBrush\Scripts\VisualizerManager

    2. TiltBrush\Scripts\VisualizerAudioInput

    3. TiltBrush\Scripts\Editor\VisualizerManagerEditor

"My brushes look different to Open Brush" (Linear vs Gamma)

For historical reasons Open Brush uses gamma mode for color blending. We may offer the option to switch to linear in the future but it will change the appearance of sketches so gamma will always be an option when the hardware allows it.

If your Unity project is set to linear mode (Projects > Player Settings) then imported sketches may look different. For example here's some smoke brush strokes in Open Brush:

And here's the same sketch in Unity set to linear mode:

The v11 toolkit shaders support both sRGB (Gamma) and Linear color spaces. The shaders are set to Gamma mode by default. If you wish to use Linear, add this call somewhere in your program.

Shader.EnableKeyword("TBT_LINEAR_TARGET");

Note: while this improves the colour accuracy, due to fundamental differences between linear and gamma rendering, brushes may still not exactly replicate the look of their gamma counterparts.

Audio Reactivity

You can make the brushes wiggle to the audio in your scene:

  1. Drag the** [Tilt Brush Audio Reactivity] prefab** into your scene

  2. Add an audio source to your scene, if there’s none

If the brushes aren’t moving, you can select the prefab in Play mode to visualize the audio data the shaders are receiving:

Bloom

  1. Import the Standard Assets “Effects” package (Assets menu / Import Package / Effects)

Internally, Open Brush uses a modified version of Sonic Ether bloom, which has been released as open source.

Last updated