Generally - when someone is working on a new feature, they create a new build to work on until the features is ready to merge back into the main release.
You can download these builds to try out new features. Sometimes the sketches you create with these builds won't open correctly in the main release (but not always) and like all pre-release versions these builds might contain bugs or incomplete features.
THIS BRANCH HAS BEEN SUPERCEDED BY A NEW COMPLETELY WRITTEN VERSION WITH MANY MORE FEATURES
See the new 3D Shapes feature instead!
Oculus PC VR (Rift, Quest via Link cable...)
SteamVR (Vive, Index, Reverb...)
Other Builds (Non-VR, Linux, Mac...)
Mainly two related things:
Adds a polyhedra tool that can create a wide variety of polyhedra and grid patterns using brush strokes
Adds a custom symmetry tool similar to the existing mirror except it creates multiple strokes for each face of your selected polyhedra or grid
Creating regular patterns and geometry forms.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
Switch out of beginner mode and you'll see the "Experimental Tools" panel on your wand.
There is a new icon at the bottom that looks like a wireframe cube. Click that to activate the polyhedra tool.
Draw a cube with your brush hand. Click once to start and release when you're happy with the size and rotation.
The "A" button or trackpad left click will cycle through various snapping angles. Try setting it to 90 to draw shapes level with the ground plane
The panel that opens when you first clicked the button let's you select various shape.
If you want to change the default colours simply add some custom colours at the bottom of the standard colour picker panel.
There's nothing to stop you creating extremely complex shapes that might slow everything down
There's currently no colour controls but you can use the standard recolor tool on your shapes.
Snapping is a bit unpredictable sometimesree paint mode. You need to select the polyhedra tool every time you change brushes.
Scene scale and brush size interact in a slightly confusing way.
The button is on the bottom right of the Experimental tools panel. Use the same panel you used with the polyhedra tool to change the shape that controls the symmetry strokes.
The symmetry mode only affects normal paint strokes. You can't currently use symmetry to create multiple copies of the polyhedra tool.
You can grab the symmetry widget and change it's position and orientation.
It's possible to create very complex sketches very quickly.
There's no control over the color variation of the symmetry strokes.
You can't scale the grids. Instead scale your scene
I haven't added any way to control the colours of the additional strokes yet.
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me ( andybak#5425 ).
I'm on UK time (currently UTC+1) but I check in fairly regularly.
Here's an earlier version of the polyhedra tool:
Here's a video with terrible audio showing the symmetry tool:
and another without any audio:
Yeah. I really need to do better videos. Please share anything you make that I can use to show off the features.
It allows you to cut strokes so they behave as if they were separate strokes.
Organize your sketch into layers that can be turned on and off separately. Exports use only the layers you've set as visible so you can create layer just for guides strokes or construction lines.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me ( andybak#5425 ).
I'm on UK time (currently UTC+1) but I check in fairly regularly.
Note: Released in v1.0
This build was intended to streamline the UI with a subset of features to:
Not overwhelm the user with complexity. This essentially meant that it should look as similar to basic mode as possible.
Contain only features deemed useful for classroom-style usage. This includes filtering the brushes down and rearranging several tools found in various panels into a single panel.
Both #1 and #2 were accomplished by creating a new "classroom" panel mode in addition to the normal "basic" and "advanced".
This build was successfully utilized to teach aspects of raytracing as show in the video below and its git repository can be found here.
The future of Open Brush begins here!
Status: Released in v2.0
We have been hard at work updating Open Brush to the latest version of Unity and it's new XR Framework. This will enable us to keep up to date with new features that are only available with modern VR SDKs such as hand tracking and passthrough. In addition it will make it much easier to support new platforms and devices moving forward.
As this is a big fundamental change in how Open Brush interacts with devices, we need your help testing our new builds before we release it generally.
Thank you very much! Please join our Discord and give yourself the 'Beta Testers' role from our #welcome-rules
channel (click the button!) to receive important updates about new builds. We're discussing this huge change in a dedicated channel, called #unity-xr
. Come and say hi!\
⚠️ Remember that this is a beta release, so if you do any important work with Open Brush, please back up your files! ⚠️
This section is very detailed per platform, so here's some quick links to your preferred version: Windows via SteamVR (OpenXR) Oculus Quest Oculus Desktop Already set up? Jump to: What should I be testing? How do I report bugs?
Our desktop build is now powered by OpenXR! To make it easy to access, we have added a new beta channel on Steam.
First, grab Open Brush from the Steam store. Once you have added it to your library, right click on the listing and choose 'Properties...'
Select 'Betas' from the sidebar. In the text box, add the access code: openbrushxrbeta
and click 'Check Code'. A blue banner will appear below, confirming your access!
You can now access the openxr and openxr-experimental betas. select your desired beta from the dropdown and Steam will automatically install that version! The name of the game in your Steam library will be appended with [openxr].
When you click Launch from within Steam, make sure to select 'Launch Open Brush in OpenXR Mode'!
We have created a special SideQuest page for installation of the Quest beta. If you are already know what you're doing with SideQuest, proceed onwards! If you haven't used SideQuest before, please take some time to follow their excellent guide on setting up your Quest for development builds.
SideQuest have just released a new in-headset installer which you can find on the guide above! If you're using this method, simply search for 'Open Brush Beta' from within the SideQuest app to install the beta. From your app drawer, in the top right, there is a dropdown to filter types of apps. Select it, scroll to the bottom, and select 'Unknown Sources'. You will see an app called 'Open Brush (feature_xr_v2
). Click it to begin testing!
Make sure your Quest is connected to your device. In the SideQuest app on your computer, search for 'Open Brush Beta'. On the app page, click 'DOWNLOAD APP (SIDELOAD)'. The app will install!
In your headset, open the app drawer. In the top right, there is a dropdown to filter types of apps. Select it, scroll to the bottom, and select 'Unknown Sources'. You will see an app called 'Open Brush (feature_xr_v2
). Click it to begin testing!
Due to the way the Oculus Desktop store versioning works, we can't automate builds without disrupting the main build! Instead, you can access a manual build from Nightly Link.
Click the long link beside the name of the build you wish to use (i.e. Windows Rift). A quick reminder that Windows Rift is the build you want if you're using Quest linked to your PC!
Note: before you begin, you may need to set Oculus as your active XR Runtime. this may appear as a banner on the Oculus Desktop app. Go to Settings, General and under 'OpenXR Runtime', click 'Set Oculus as Active'. You may need to restart your PC afterwards. Double click the downloaded zip file. Press the Extract all button, and unzip the folder to a known location. You may want to use your Desktop or Documents folder. Once unzipped, open the StandaloneWindows64-Oculus folder, and double click 'OpenBrush-featurexrvr2.exe' to run the program! Windows may scan the folder for viruses as it's an unknown folder, which will prevent the program launching until complete. This is perfectly normal, and the program will launch by itself once finished.
In short, everything you can! The previous SDKs were woven throughout the fabric of the app, so our changes impacted a lot of features. We have prepared a list over on our GitHub with suggestions of things to test (anything already ticked is assumed to be working).
If you are a GitHub user, please feel free to add a comment to our Issue #249 where we are keeping track of validation.
Otherwise, please join our Discord if you haven't already and post a message in the #unity-xr
channel, we'll log it on your behalf!
A new panel allows for precise position/rotation/scale changes to brush strokes and imported objects.
Enter an exact value to change the position, rotation or scale of the current selection
Lock any axis so you can only move the selection along a line or in a plane
Lock rotation axes in a similar fashion.
Control which axes respond to the snap grid
Align all the objects or brush strokes you've selected in various ways
Distribute all the objects or brush strokes you've selected so they are spaced evenly.
We've improved the Snap Settings panel:
You can turn position and rotation snapping on or off for each axis independently
You can also snap all the currently selected objects
You can turn on or off the ability to snap the selected objects to guides
Creating regular arrangements of strokes or precisely positioning/orientating parts of your sketch.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
It should appear automatically.
(To do)
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me ( andybak#5425 ).
I'm on UK time but I check in fairly regularly.
(To do)
This feature has now been merged into the main release
The current GLTF import in Open Brush fails to open many valid GLTF files. This feature build replaces it with a much more up to date library GLTFast
Importing a wide range of GLTF files into Open Brush including animated models.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
Just import gltf models as you normally would.
When you load a sketch containing GLTF models, the models do not appear. The workaround is to open the sketch a second time.
Some models are improperly sized in the 3D model panel and obscure other models.
There's no way to control the animation for animated models and selecting them can sometimes be tricky.
Come over to the Open Brush Discord and chat to me ( @andybak#5425 ). I'm on UK time (currently UTC+1) but I check in fairly regularly.
Not yet.
Big expansion to the mirror to support many different types of symmetry:
Point symmetry: Symmetry around a point. 7 familiies of axial symmetry plus 3 (soon to be 7) unique polyhedral symmetries.
Wallpaper symmetry: 17 types of tiling symmetry
Duplicate selections using symmetry: Create multiple clones of a selection aligned in a pattern
Draw with multiple colours at the same time: The colour of each stroke can be varied in interesting new ways
Creating symmetrical patterns. Drawing multiple strokes at the same time. Arranging models or images into grids or other regular patterns.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
Hold down the mirror button on the Experimental Panel for a second or two:
This will bring up the Symmetry settings panel which contains three tabs:
Point symmetry creates copies arranged around the center of the mirror widget. Each icon selects one of the 14 different types of symmetry. This is the symmetry of molecules and polyhedra. It can create shapes such as stars, explosions, vases, octopi or plants and flowers.
For the first 7 point symmetry types, the slider controls how many copies are arranged around the center axis. (The other 7 types are based on tetrahedra, cubes and icosohedron and have a fixed number of copies)
Wallpaper symmetry repeats your strokes in various types grid pattern - reflecting or rotating in specific ways. You can create wallpaper, floor tiles crystal lattices or any other repeating patterns.
For all symmetry types you have control over the number of copies in x and y directions. For some you can also change the scale of the grid in both the x and y directions and skew the grid cells themselves in either direction.
This screen allows you to vary the colour of each stroke based on waveforms of your choosing. Colors can cycle based on hue, saturation or brightness and the amount, frequency and type of the variance can be precisely controlled.
(This feature currently has some bugs. See known issues)
You can also create symmetrical copies from existing strokes. Simple select the strokes you want to use and duplicate them in the same way you do without the mirror (Press the secondary button on the controller you paint with)
Currently disabled while I iron out the bugs
As well as duplicating brush strokes, if you have imported some media such as images, video or 3D objects then you can select those and create copies that follow the current symmetry settings.
Be aware that there are currently no limits in place. If you create copies of complex objects or even if you create lots and lots of copies of simple objects, then Open Brush can become unresponsive or even crash.
Currently disabled while I iron out the bugs
It's very easy to create so many strokes or duplicates of 3D models that Open Brush becomes unresponsive or even crashes. We plan to add limits and warnings once we figure out how best to calculate them.
Duplicating brush strokes currently positions copies incorrectly if you've transformed the selection since selecting it. A workaround is to deselect and reselect first.
Duplicating brush strokes can position things incorrectly if you've scaled the world or moved the symmetry widget.
A few symmetry modes move the main pointer so your main stroke is rotated somewhere else. It takes a bit of getting used to but it doesn't actually prevent you painting in these modes.
The slider on the settings panel can glitch the Open Brush UI if you drag it past it's limits.
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me ( andybak#5425 ).
I'm on UK time but I check in fairly regularly.
At the time of writing - the current beta version has added a new View Sketches mode and has made Monoscopic Mode available without needing to download a separate version of Open Brush. This is probably the direction we will be taking - rather than directly incorporating Rapka's work.
User @rapka on Github (@collige on the Discord) is working on a new, revamped version of the existing Monoscopic Mode - the mode that allows you to use Open Brush without VR using keyboard and mouse. It's still not quite ready but it's more intuitive than the existing monoscopic mode and uses the WASD keyboard controls familiar to anyone who is used to standard PC game controls.
https://github.com/rapka/open-brush/tree/monoscopic-controls
Status: Released in v2.8
Adds new optional GLTF import and export workflows. Allow import of lights, breaking apart of imported models and other new features that the updated libraries enable.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
To switch to the new importer (which replaces GLTFast that we added in v2.4 with UnityGLTF you need to edit your Open Brush config file and add this entry after "Flags":
We've changed how export in general is configured. Previously all supported formats were exported whether you needed them or not. Some were pretty slow for large scenes (STL - looking at you) and you probably only needed a couple of them. Now you can choose which are available using the config file:
ExportBinaryFbx and ExportFbxVersion are existing options - but the rest of the entries here are new.
ExportStrokeMetadata: todo
KeepStrokes: todo
KeepGroups: todo
Formats: Each item in here corresponds to an existing export format except for "newglb" which is a glb file but we use the new export code to generate it. Note that formats not supported on your platform will be ignored. See below for platform support.
Extensions supported by GLTFast but not UnityGLTF:
EXT_mesh_gpu_instancing
KHR_materials_pbrSpecularGlossiness (legacy extension - superseded by KHR_materials_specular which is only supported by UnityGLTF)
Extensions supported by UnityGLTF but not GLTFast:
KHR_materials_clearcoat
KHR_materials_emissive_strength
KHR_materials_ior
KHR_materials_iridescence
KHR_materials_specular
KHR_materials_transmission (soon)
KHR_materials_volume (soon)
MSFT_lod
Extensions supported by both:
KHR_draco_mesh_compression
KHR_lights_punctual
KHR_materials_unlit
KHR_mesh_quantization
KHR_texture_basisu
KHR_texture_transform
(The above list may change as we implement missing features in UnityGLTF. GLTFast also has announced plans to support KHR_materials_variants, EXT_lights_image_based and KHR_materials_transmission)
UnityGLTF has some other differences:
Model hierarchy should be faithfully preserved. GLTFast on the other hand doesn't support sub-meshes so any mesh that contains multiple materials will be split into separate objects. (this might be desirable in some cases)
In general 3d models should be more robustly handled if you round-trip between Open Brush and other 3D apps
Please report any other differences you find. The reason we are keeping both importers around is to gather feedback on their strengths and weaknesses.
The use of the new exporter is currently optional and we will continue to support the old exporter until the new one is a full replacement.
Currently - if you use the Open Brush Toolkit Unity SDK then use the existing exported GLB file
Use the existing exporter for uploads to Icosa.
Similarly - if you use the Icosa three.js loader this works best with the existing exporter
The new GLB export should work better in Blender and other 3D animation apps although we still have work to do to fix support for particle brushes, transparent brushes and other features.
Imported 3D models will export much better with the new GLB exporter
In general new features in the beta or from other experimental branches will work better using the new exporter.
FBX
✘
✔
GLB
✔
✔
NEWGLB
✔
✔
JSON
✔
✔
LATK
✔
✔
OBJ
✘
✔
STL
✔
✔
USD
✘
✔
WRL
✔
✔
This build supports a new feature - The existing "group/ungroup" button on the pop-out tray that appears when you activate the Selection Tool now works on imported models - if they consist of multiple parts. Just select a single imported model and if it does have sub-parts the button will show "ungroup" as an option - the same as if you select a normal grouped set of objects.
If your imported model contains lights then these will appear in the scene and will act upon other objects the same as the Environment Lights. Furthermore imported lights support point lights and spot lights - whereas the existing environment lights only support directional lights.
If you break apart a model containing lights, the lights themselves can't be selected or moved.
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me @andybak).
I'm on UK time but I check in fairly regularly.