All pages
Powered by GitBook
1 of 17

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Release History

Official Open Brush release notes

This section lists changes in our major releases (and from 2.0 onwards point releases)

There is also information on the current beta version.

For bleeding edge features see alternate and experimental builds.

v2.11 (Maintenance)

This release along with v2.12 was to address a security issue in Unity.

v2.2: Settings and Sketches

Features

Bundled "Featured Sketches"

Since Google Poly closed down, the immediate access to some examples by talented artists was sorely missed. So we've added some of the classics back in. We have big plans for sharing and viewing artwork so this is just the start.

Add a button in Setting to switch handedness

Previously the only way to do this was to tap the bottom of the controllers together. This wasn't easy to discover and was unreliable when using some controllers. We've kept that in but added a nice clear button the app settings.

Add a button in Setting to reset the "First Time Use" tutorial

This is something that's especially useful when you want to demo Open Brush to a new user. The current tutorial is very brief but we hope to expand it in the future. Note this button affects the app the next time you launch it.

Known Issues

  • Meta Quest: Incorrect or missing video thumbnails are shown

  • Meta Quest: Gif capture results in just a black image

  • Meta Quest (Quest 1 only): Selection and erase tools are not working

  • Valve Index Controllers: Grip is too sensitive. It's easy to accidentally trigger a grab when drawing.

Issues with controllers not appearing when the wrong OpenXR runtime is selected. Please see: https://vermillion-vr.com/support/ for some workarounds.

v2.12 (Maintenance)

This release along with v2.11 was to address a security issue in Unity.

v2.8 Import/Export

🚀 Features

  • Remove almost all uses of Experimental Mode, and combine Monoscopic into the main releases (PR #674 by @andybak)

  • Skip intro tutorial on Zapbox (PR #681 by @mikeskydev)

v2.9 (Maintenance)

🐛 Fixes

  • Fix contextual boundary (PR #761 by @andybak)

  • Disable ENABLE_CONTEXTUAL_BOUNDARYLESS_APP as it's still experimental (PR #762 by @andybak)

v2.6 (Maintenance)

🐛 Fixes

  • Reset default brush to Light (PR #664 by @mikeskydev)

v2.7 (Maintenance)

🐛 Fixes

  • Fix for broken camera preview due to logo change (PR #667 by @andybak)

Allow generation of sphere with gesture on mobile (PR #678 by @mikeskydev)

  • Update lots of shaders to singlepass (PR #677 by @mikeskydev)

  • Preview spheres for 360 images (PR #687 by @andybak)

  • Pagination for layers UI (PR #698 by @andybak)

  • Folder navigation UI (PR #689 by @andybak)

  • Import/export improvements (PR #573 by @andybak)

  • Passthrough Hull Brush (PR #613 by @andybak)

  • UnityGLTF Shader Variants (PR #714 by @andybak)

  • Add Pico support to the generic OpenXR build (PR #719 by @mikeskydev)

  • Disable boundary when passthrough is active (PR #735 by @andybak)

  • 🎨 UI / UX

    • Fix Advanced Tools panel initial position (PR #697 by @andybak)

    • Damn panel spacing (PR #702 by @andybak)

    🐛 Fixes

    • Fix broken multimirror options popup. Hide Tiltosaurus button as it d… (PR #680 by @andybak)

    • Workaround for PCVR depth submission (PR #685 by @mikeskydev)

    • De-initialize XR Subsytems properly (PR #695 by @andybak)

    • Background image preview sphere labels (PR #700 by @andybak)

    • Fix stereo pano sphere preview (PR #701 by @andybak)

    • Enable file system watcher on mobile (PR #704 by @andybak)

    • UnityGltf import is meant to default to off (PR #707 by @andybak)

    • Fix issue where transparent brushes were invisible in Quest passthrough mode. (PR #715 by @andybak)

    • m_ColorSaturationMax had accidentally been set to 0 breaking color picker (PR #724 by @andybak)

    • Fix issue where images that are too large fail to load without any in… (PR #722 by @eeropomell)

    • Fix/improve image loading (PR #729 by @eeropomell)

    • Fix/quest sdk no boundary (PR #737 by @andybak)

    • Rename Quest Boundary Property (PR #739 by @andybak)

    • Fix input system errors when running in the editor (PR #745 by @andybak)

    • Shift the preview down so it doesn't overlap the hint (PR #750 by @andybak)

    • Fix background image seams by bypassing cache for now (PR #749 by @andybak)

    🛠️ Infrastructure

    • Add Mac OS Monoscopic build to Steam (PR #669 by @mikeage)

    • Always specify --age-group for Oculus (PR #670 by @mikeage)

    • Update pre-commit, fix two pylint warnings (PR #671 by @mikeage)

    • Update GeneratedThirdPartyNotices.txt and make sure it stays in sync (PR #673 by @mikeage)

    • Fix automatic changelog page in the docs; update to the new (as of Jan 26th) path (PR #675 by @mikeage)

    • Merge the contents of the release-history directory instead of overwriting (PR #676 by @mikeage)

    • Minor formatting improvements (PR #682 by @andybak)

    • Release Linux Viewer/Standalone on Steam and Github (PR #683 by @mikeage)

    • Fix github release (typo in directory name) (PR #684 by @mikeage)

    • MacOS: sign all bundles, rather than listing them explicitly (PR #706 by @mikeage)

    • Add a section in the changelog for UI/UX PRs (PR #703 by @mikeage)

    • Add support for a [xCI BUILD DEV] (without the x) to build Development builds (PR #712 by @mikeage)

    • Fix artifact upload of development builds (PR #713 by @mikeage)

    • Update the (very rarely used) Unity License Test action (PR #718 by @mikeage)

    • Retry build on license failure; retry pre-commit on dotnet-format failure (PR #716 by @mikeage)

    • Run ovr-platform-util on Linux instead of Mac (PR #727 by @mikeage)

    • Fix Q1 upload (PR #732 by @mikeage)

    • Fix iOS builds after the unity upgrade (PR #733 by @mikeage)

    • Always run "Free Disk Space" on all platforms (PR #734 by @mikeage)

    • Revert "Run ovr-platform-util on Linux instead of Mac (#727)" (PR #738 by @mikeage)

    • Move the config.vdf secret (for Steam) to an Organization level secret (PR #741 by @mikeage)

    • Remove more unneeded files to free more disk space (PR #753 by @mikeage)

    • Run the build on 'main' periodically to keep the caches alive (PR #754 by @mikeage)

    📦 Dependencies / Maintenance

    • Bump rexml from 3.2.6 to 3.2.8 (PR #717 by @dependabot[bot])

    • Unity 2022 LTS (PR #708 by @mikeskydev)

    • Bump actions/setup-dotnet from 4.0.0 to 4.0.1 (PR #740 by @dependabot[bot])

    • Bump actions/setup-python from 5.1.0 to 5.1.1 (PR #742 by @dependabot[bot])

    • Bump rexml from 3.2.9 to 3.3.2 and update fastlane (PR #748 by @dependabot[bot])

    • Bump mikepenz/release-changelog-builder-action from 4 to 5 (PR #747 by @dependabot[bot])

    • Bump rexml from 3.3.2 to 3.3.3 in the bundler group across 1 directory (PR #752 by @dependabot[bot])

    🛠️ Infrastructure
    • Fix missing version in DMG, Signed .app, and Steam upload (PR #755 by @mikeage)

    📦 Dependencies / Maintenance

    • Bump rexml from 3.3.3 to 3.3.6 in the bundler group across 1 directory (PR #758 by @dependabot[bot])

    • Bump actions/setup-python from 5.1.1 to 5.2.0 (PR #759 by @dependabot[bot])

    💬 Uncategorized

    • Update README.md (PR #760 by @mikeskydev)

    • Fix fastlane build by freeing extra space (PR #764 by @mikeage)

    🛠️ Infrastructure
    • Don't push iOS Zapbox builds to the Apple Store; just to testflight (even for formal builds) (PR #665 by @mikeage)

    📦 Dependencies / Maintenance
    • Bump actions/setup-python from 5.0.0 to 5.1.0 (PR #668 by @dependabot[bot])

    v2.14-v2.17 (Maintenance)

    These were a series of hotfix releases to address bugs discovered immediately after the release of v2.13

    v2.0: XR Update

    The Future of Open Brush is here, powered by OpenXR

    Open Brush v2.0 is finally here! This update marks our second anniversary, and the end of a long year of work to upgrade the project to the latest and greatest in XR tech. Here's a quick sizzle reel of the new update!\

    Downloads

    Steam Quest Viveport Itch SideQuest If you enjoy Open Brush, please leave a review on the store, it really helps us out!

    Contents

    Unity and OpenXR

    The bulk of this year has been taken up with upgrading the Tilt Brush codebase to the latest version of Unity, utilising the new XR plugin framework. This was necessary to bring Open Brush to all the latest headsets and utilise the latest features, namely the OpenXR framework from Khronos. Our Desktop and Quest builds are now fully powered by OpenXR!

    Additionally, it allows us to easily bring Open Brush to new platforms. Our in-progress Pico port required only a few lines of code to add basic support!

    The upgrade has also delivered a huge performance increase vs Tilt Brush and Open Brush v1.0. Highly complex sketches that previously ran at 5FPS are now hitting 50! Many thanks to and for their contributions to this huge upgrade, and for managing our ever-changing build pipelines! An extra special thank you to our power users in our for helping us debug all the small quirks of this switchover! Zandy AncientWorlds Mana 松田浩二

    Passthrough (Quest)

    Switching to the OpenXR backend means we can support some great OpenXR extensions. First up, the obvious target was Mixed Reality passthrough on Quest! It's a great feeling to be able to paint in your real world space, and augment your room. So much we can do with this going forward, including world anchors and a new occlusion brush!

    This mode works especially nice on the Quest Pro with full color passthrough. We're hoping to bring passthrough support to all platforms in the future, including Desktop via a lovely plugin by Rectus:

    Access this via the Environments button! Thanks to Mike for adding this feature.

    Layers

    Open Brush finally has layers support! This adds a new panel, which currently allows for 8 layers, including the main one. You can add, delete, clear, squash layers, and copy selected strokes to the currently selected layer.

    We think this is a really powerful feature for larger sketches, as each component can be contained in a system larger than groups. It also works great to show or hide your drafting lines or reference material easily!

    This also works really nice with exports, as hidden layers will not be included in the output files. We're hoping to do a lot more work that builds on our layers system, so look out for more soon! Thanks to and for their work on this feature.

    Snip/Join strokes

    Two new tools have been added to the advanced tools panel, Snip and Join. This works exactly as you'd expect, allowing you to cut strokes in half via their control points, giving you very fine control over the shape of strokes.

    Similarly, you can now knit different strokes together, which joins the start and end control points as if it was one stroke! This works really well with the hull brushes.\

    Snip and Join are the beginning of a whole suite of control point editing tools, we've got some really cool ones in the works such as push and pull points! We can't wait to share more.

    Thanks again to for his work on this feature!

    Merged experimental support

    We've frequently heard from power users that we have too many builds floating around. They're not wrong! We've taken the decision to distribute experimental mode inside the main release, but we've hidden it behind a toggle that requires a restart, in settings.

    Experimental means experimental! We won't be able to provide full support for users using this mode and the experimental brushes. Use at your own risk!

    Vive XR Elite and Pico

    As mentioned above, Unity XR framework allows us to bring Open Brush to new devices. We're pleased to say we're working on ports to Vive XR Elite and Pico devices! Look for more info in the coming months.

    Advanced Camera Tools

    We dug into some of the unused features of the Tilt Brush code and found a handy camera control panel! Access this by long-pressing on your camera button.

    Options currently include changing the FOV, video smoothing on desktop, adding post-process effects (careful on Quest!), and removing the Open Brush watermark. This is a lot easier than manually editing the config file!

    Thanks to for digging this out of the archives!

    Open Brush is a free app. If you use Open Brush for commercial purposes and, we'd really appreciate it if you could contribute to development! You can find more info on our Open Collective:

    New import options

    We have added support for a few new filetypes, including PLY point cloud data and WebM videos! You can add these via the media library, which is now accessible from the 'More Tools' panel.

    We've also enabled the models panel for Quest, it's experimental right now, but enjoy!

    This is just the beginning of our Import and Export pipeline upgrades, look for lots more file support and glTF upgrades in the coming months.

    Thanks to for adding these options!

    Pressure sensitive strokes

    Finally, we've added support for pressure sensitive strokes. This is supported on a number of brushes, where the amount you pull the trigger will increase the thickness of your paint strokes, just like on your favourite 2D drawing tools! We're always looking for new ways to add more dimensions of expression to your creations.

    Thanks to and for this!

    Acknowledgements and Thank You!

    Open Brush is nothing without it's strong community of artists, creators, developers, testers and donors. We've successfully navigated the perilous chasm of a major backend switch!

    Thank you all for your amazing support throughout Open Brush's development this past year. A lot of this work has been background tooling to enable bigger and better features, securing Open Brush's continued development for many years to come.

    We've had over 200,000 downloads across all currently supported platforms, and we hope it only grows from here. Thank you so much for keeping the spirit of Tilt Brush going!

    Open Brush is primarily developed by a small team in their spare time. If you'd like to support our work financially, you can do so on our Open Collective: . Funds will go towards funding full-time development of Open Brush! Sharing our work really helps us, we're now available in many more places!

    Thank you all, and see you in the next update, hopefully in the next month!

    Mike~

    v2.5 (Maintenance)

    🚀 Features

    • Compliance with Meta Age Group API requirements (PR #659 by @mikeskydev)

    🐛 Fixes
    • Fix select all and invert selection for non-main layers (PR #628 by @andybak)

    • Zapbox: Set to iPhone only for now (PR #638 by @mikeskydev)

    • [Zapbox] Temp set portrait orientation (PR #642 by @mikeskydev)

    • Correctly set the androidVersionCode on a build rerun (PR #645 by @mikeage)

    • Fix a few issues around layers and selections (PR #646 by @andybak)

    • Zapbox set up everything else (PR #652 by @mikeskydev)

    • Localization Fixes (PR #655 by @mikeskydev)

    • Remove broken custom drawer and fix corrupted value (PR #653 by @andybak)

    • Turn off MSAA for Zapbox (PR #657 by @mikeskydev)

    • Reset default environment. Passthrough only for Zapbox (PR #660 by @mikeskydev)

    🛠️ Infrastructure

    • Update pre-commit with python 3.12 fixes (PR #624 by @mikeage)

    • Improve pre-commit (dotnet, and remove a python warning) (PR #627 by @mikeage)

    • Create a DMG for Mac Monoscopic (PR #625 by @mikeage)

    • Upload Zapbox build to the App Store (PR #629 by @mikeskydev)

    • Fix (and tweak) fastlane issues (PR #632 by @mikeage)

    • Fix (again) the fastlane upload to the app store (PR #635 by @mikeage)

    • Add yamlfmt and enforce via pre-commit (PR #636 by @mikeage)

    • Use Mac OS 13 instead of latest (currently 12) when pushing iOS builds (PR #637 by @mikeage)

    • Select the fastlane lane based on whether it's a beta (testflight) or formal (app store) (PR #634 by @mikeage)

    • Add a workflow to export (encrypted) secrets (PR #639 by @mikeage)

    • Move non-secret information from Github secrets to variables and rename (PR #640 by @mikeage)

    • Fix broken Dependabot PRs (PR #650 by @mikeage)

    • DMG Issues (PR #658 by @mikeage)

    📦 Dependencies / Maintenance

    • Bump pre-commit/action from 3.0.0 to 3.0.1 (PR #623 by @dependabot[bot])

    • Bump CyberAndrii/setup-steamcmd from 1.1.5 to 1.2.0 (PR #626 by @dependabot[bot])

    • Bump softprops/action-gh-release from 1 to 2 (PR #649 by @dependabot[bot])

    💬 Uncategorized

    • Branding Refresh (PR #662 by @mikeskydev)

    Unity and OpenXR
    Passthrough (Quest)
    Layers
    Snip/Join strokes
    Merged experimental support
    Vive XR Elite and Pico
    Advanced camera tool
    New import options
    Pressure sensitive strokes
    Acknowledgements and Thank You!
    Bill
    Mike
    Mike
    Discord
    https://github.com/Rectus/openxr-steamvr-passthrough
    Andy
    Dan
    Andy
    Mike
    https://opencollective.com/icosa
    Andy
    Dan
    Andy
    https://opencollective.com/icosa
    Twitter
    Discord
    Instagram
    TikTok
    Mastodon
    Reddit
    YouTube

    Current Beta Release Notes

    Full release details

    🐛 Fixes

    • Viverse sandbox and allow values should be string arrays (PR #972 by @andybak)

    📦 Dependencies / Maintenance

    • Bump actions/cache from 4 to 5 in the all-actions-updates group ( by @dependabot[bot])

    PR #971

    v2.4 "Prismatic"

    Multiple language support

    You can now use Open Brush in six languages:

    • French

    • Spanish

    • German

    • Chinese

    • Japanese

    • Korean

    If you'd like to help add more languages then please

    Transform Panel

    Open Brush has traditionally been aimed at freehand drawing or painting but we've always wanted to improve workflows that require precise control over elements of your sketch. Guides help with this but the new Transform Panel adds some powerful tools to help with building complex scenes.

    Axis Locks

    You can choose to lock any axis when moving or rotating a selection. Lock all rotation axis to maintain a consistent direction when duplicating selections. Or lock the Y axis to arrange copies in a perfect plane.

    Align Selected Objects

    Similar to tools you are probably familiar with in desktop art apps - you can select multiple strokes, images, videos or 3d models and align them in any axis using their center-point or edges as a reference

    Improved Snap Settings

    Closely related to the Transform Panel, we've souped up the Snap Settings to allow you more control and precision.

    Snap Axis Toggle

    You can choose to have the snap grid only apply to one or more axis. Similar to the axis locks on the Transform Panel, this allows you to quickly create many copies of a selection whilst keeping as much regularity as you need.

    Snap Selected

    Apply the current snap settings after the fact to multiple objects.

    Snapping to Guides

    Guides are incredibly useful whilst painting. Now you can also make use of them when moving a selection of brush strokes (as well as images, videos or 3d models).

    Multi-Mirror

    The regular Mirror Tool is incredibly useful but for those of you who are interested in symmetry and geometric patterns, you'll find a lot to explore in the new Multi-Mirror Tool.

    It supports dozens of types of symmetry and has powerful control of color variance for the replicated brush strokes.

    It also works when you duplicate selections - whether they are selected brush strokes, images, videos or even 3d models.

    Don't forget that you can set a mirror spinning with a flick of your wrist. Combined with the new symmetry modes this allows many incredible patterns and shapes to be created.

    XR Keyboard

    Does your sketches folder contain hundreds of sketches called "Untitled"? No more!

    Currently used for renaming sketches and setting the names of layers - having a built-in keyboard will allow many previously difficult features in the near future.

    360 Panorama Background Import

    Load your own 360 paranoramas and replace the default environment background. We support jpeg, png and we've added support for .hdr files as well.

    Panoramas can also be stereoscopic. If your image's aspect ratio is 1:1 we assume it's an over/under stereo pair.

    Place images in your Media Library/BackgroundImages folder and they will appear in the new tab in the Media Library panel.

    New GLTF Importer

    We love as a format for 3d models. It's open, extensible and widely supported. Our original GLTF importer was showing it's age so we've added a brand new one based on . This supports a much broader range of features and should be able to open any valid GLTF or GLB file you throw at it.

    Particularly exciting is the support for animated 3d models.

    SVG importer

    Just by placing SVG files in either your Media Library/Images folder or your Media Library/3D Models folder, you'll be able to import them either as raster images or as 3d meshes.

    We plan to allow new ways to make use of vector images in the near future including recoloring, extruding, splitting and layering of the elements.

    Repaint Selection

    Last year we added powerful tools for changing the brush type, color or size of existing strokes but it required you to manually interact with every stroke you wanted affected. We've changed the UI for the repaint tools and added the ability to apply the various changes to all currently selected brush strokes.

    Webcam Viewer

    Suggested by who has been doing very cool live performances using Open Brush, this adds a panel that displays the view from any attached webcam. Intended for live streaming and other performance work it can help you keep track of what others will see.

    There are plenty of other potential uses though. Combined with you can view input from a huge range of potential sources - capture another app's screen. How about viewing a tutorial or live stream from another artist while you work?

    (This feature is currently PC VR only)

    Passthrough Room Scale

    A small change with a big impact. Your Open Brush scene now stays in a stable orientation relative to your VR space. Combined with passthrough you can paint your surroundings and they will be in the correct position when you come back to the sketch at a future time.

    We've also added a "lock/unlock scene transform" button which defaults to "locked" when you're in passthrough mode as well as a "reset scene transform" so you can easily switch get back to the original alignment between your sketch and the real world.

    Quest 1 Support is back

    We sadly broke support for selection tools on the Quest 1 in a previous release due to moving our rendering mode from OpenGL ES to Vulkan. We've managed to fix this now so those of you with the older headset can use all the tools in Open Brush once again. We're committed to supporting the Quest 1 for as long as we can.

    Audio Reactive Mode for Quest

    PC VR users will be familiar with the audio reactive mode that allows many of the brushes to animate in response to music you play on your PC. We've now enabled this mode for the Quest as well. Currently you need to import the audio as an mp4 video file but we plan to add support standard audio files as well as spatial audio and trigger modes for multiple clips.

    Camera Paths on all headsets

    You can now create and edit camera paths on the Quest and other standalone headsets. You currently can't generate a video directly from the headset. However we can copy your sketches to any PC or Mac (it doesn't have to be a VR capable PC) and render a video there. See below.

    Render Video on any computer

    It was always possible to view sketches on non-VR devices and you could trigger video rendering using the . We've made a few changes to make things easier:

    1. We've added to our Mac builds (previously it was PC only)

    2. There's an example script you can use that will let you load a sketch and trigger video rendering without needing to figure out how to use

    3. We've uploaded a Mac build to and we'll add more platforms and app stores over time.

    Flatscreen View Mode

    We want to make viewing and sharing sketches easier. One step towards this is that you can run Open Brush even on devices without VR support. Instead of showing an error message, we now offer a simple UI that allows you to open any local sketch and navigate using the keyboard or touchscreen. The regular Steam PC version works fine for this - we tried it out on a and it worked pretty well! We want to improve the navigation controls and support other input devices such gamepads.

    We also plan to make it easier to get a build of Open Brush for any platform. The Viewing Mode should run fine on PC, Mac, Android or iOS so keep an eye out for releases on all these platforms.

    Small things

    • Move selection to current layer

    • JSON exports now also include sketch metadata

    • Precise slider control using thumb stick

    • WebSocket support for API requests

    Want More?

    A lot of the features in this release will be expanded further. Don't forget to check out our other work - some of which will move into beta very soon - along with something else which is probably the most frequently requested feature of all time. ;-)

    v2.10 Multiplayer

    Full release details

    🚀 Features

    • Multiplayer (PR #774 and PR #809 by @sbanca, @mikeskydev and @andybak )

    • Switch experimental brushes on or off without a restart ( by @andybak)

    • Allow the erase tool to also "erase" media widgets ( by @andybak)

    • Logitech MK Ink Integration ( by Logitech and @andybak )

    • Allow profiler to use bundled sketches ( by @andybak)

    • Zapbox fixes: tutorial, controller materials, and laser pointer ( by @apzap)

    🐛 Fixes

    • Settings tidyup ( by @mikeskydev)

    • Catch wmic exceptions so they don't mess up device initialization ( by @andybak)

    • Fix quality level bugs ( by @andybak)

    • Guard against tracking glitches that effect painting ( by @andybak)

    🛠️ Infrastructure

    • gzip config.vdf before storing as a secret ( by @mikeage)

    • Combine all dependabot PRs into one ( by @mikeage)

    • Use PAT to create releases and tags ( by @mikeage)

    • Do not use # in PR build names ( by @mikeage)

    📦 Dependencies / Maintenance

    • Update some UPM packages ( by @andybak)

    • Update Zapbox SDK ( by @andybak)

    • Bump the all-actions-updates group with 2 updates ( by @dependabot[bot])

    • Force photon to the previous, working, version ( by @mikeage)

    💬 Uncategorized

    • Enable incremental garbage collector ( by @andybak)

    Fix MX Stylus Regression (PR #811 by @andybak)

  • Fix editor issues with localization (PR #825 by @andybak)

  • The eraser tool should not erase pinned widgets (PR #819 by @andybak)

  • Update permission strings (PR #835 by @tangobravo)

  • Revert accidental change to Unity splash screen setting (PR #840 by @andybak)

  • Fix builds on forks; move defines from ProjectSettings to build.yml on a per-platform basis (PR #842 by @mikeage)

  • Improve Windows development experience (PR #797 by @mikeage)

  • Support new ubuntu-24 images (PR #799 by @mikeage)

  • Fix chown error in newer Alpine images [affects new builds without caches] (PR #804 by @mikeage)

  • Publish Q1 and Q2 builds to ArborXR (PR #824 by @mikeage)

  • Upload Pico to ArborXR (PR #826 by @mikeage)

  • Add arm64 to cert generation (PR #829 by @mikeage)

  • Switch scoped registries to OpenUPM (PR #787 by @sbanca)

  • Use Xcode 16.2 to build Zapbox (PR #830 by @mikeage)

  • Update packages-lock.json so that we can recreate the cache (PR #831 by @mikeage)

  • Switch to ArborXR v2 CLI (PR #836 by @mikeage)

  • Fix Arbor XR release channel updates which use a version ID instead of a version (despite calling the parameter --version) (PR #837 by @mikeage)

  • Use JSON format for abxr-cli (PR #838 by @mikeage)

  • Faster cleanup step (saves about 1 minute in the slow case) (PR #839 by @mikeage)

  • Add a github action to automatically comment if/when Packages or Project Settings are changed (PR #841 by @mikeage)

  • Fix missing line that caused duplicate comments (PR #843 by @mikeage)

  • Disable package cache (PR #844 by @mikeage)

  • Fix builds on forks; move defines from ProjectSettings to build.yml on a per-platform basis (PR #842 by @mikeage)

  • Silence warnings from setup-uv (PR #845 by @mikeage)

  • Use literal newline to fix file listing in the warning comment (PR #846 by @mikeage)

  • Update pre-commit config (PR #847 by @mikeage)

  • Bump rexml from 3.3.6 to 3.3.9 in the bundler group across 1 directory (PR #784 by @dependabot[bot])

  • Update Zapbox SDK to 0.4.0 (PR #834 by @tangobravo)

  • PR #802
    PR #818
    PR #768
    PR #769
    PR #832
    PR #788
    PR #805
    PR #806
    PR #808
    PR #771
    PR #780
    PR #782
    PR #796
    PR #765
    PR #770
    PR #781
    PR #783
    PR #807
    Clearer wording for Sketchfab login and upload
  • Lots of bug fixes

  • get in touch
    GLTF
    GLTFast
    Shawn Chiki
    OBS
    API
    ffmpeg
    monoscopic mode
    Itch.io
    Steam Deck
    in progress

    v2.13 "Lucky Number"

    Plugins

    Possibly our most powerful new feature ever and several years in the making. Plugins are small lua scripts that can hook into Open Brush to modify how existing painting tools work or create entirely new tools.

    We've shipped an extensive range of examples that expand the creative palette you have available and serve as jumping off points for those of you that would like to create your own plugins and share them with the community. Read our docs on how to use plugins and then dive into writing plugins

    Splitting 3D Models

    Using imported 3D models to construct or enhance your sketches is incredibly useful but often 3D models contain multiple elements and those elements are not easily separated.

    We've added the ability to break apart - even if the model was built as a single mesh. We check for connected parts and allow you to break apart any elements that are visually separate.

    Saved Stroke Gallery

    We previously had a feature that allowed you to export selected parts of your sketch as 3d models. This had several drawbacks: it was PC-only, brush strokes ceased to be editable or selectable and their appearance often changed due to the conversion process.

    We've now implemented the ability to save any selected brush strokes without converting them into a 3d mesh. Now when they are added back to your scene they are grouped strokes and can be un-grouped, re-colored, re-brushed and anything else you can do with regular brush strokes.

    VOX File Import

    The Magicavoxel .vox format is the standard file format for models created in a wide range of voxel editing apps. You can now import them like you can other 3d model formats and construct entire scenes from them. if you want them to remain aligned to their original grid then set grid snap to 0.1 and angle snap to 90 before importing.

    Publish Worlds to Viverse

    You can now publish Open Brush sketches directly to Viverse with a couple of clicks. allows you to build and share 3D worlds in a web browser so people can visit from nearly any device: phone, tablets, PC, Mac and of course VR headsets. Worlds are social and multiplayer and can optionally be monetized to help support artists (that's you...).

    Import Open Blocks Models

    Our sibling application is an incredibly intuitive low-poly 3d modelling app for PC, Quest and other standalone VR devices. If you've already got it then any models you create and save locally can easily be imported via the standard 3D model library browser.

    Camera Path Rendering on All Devices

    Camera paths are a powerful way to render a standard or 360 video fly-through of your creations. However we only support rendering video directly on desktop (PC or Mac) and it was fiddly to copy sketches off standalone headsets such as the Quest and then render videos using the generated scripts. We've now made the process easier. You can now render the video frames directly on devices that don't support generating video files directly. These frames can be converted into a regular video in multiple ways - uploading to a web service, importing into a video editing app etc. .

    More Selection Tools for Quest/standalone VR

    Previously mobile VR devices such as the Quest had less selection tools available than PC VR devices. This was due to performance issues when we first launched for the Quest 1. Newer devices are more powerful so we've made the full range of tools available on all devices giving you access to "Select All" and "Invert Selection". Complex scenes might stutter when using these but we wanted to give you the choice.

    View-only Mode Improvements

    Not enough people realise that Open Brush runs as sketch viewer on all Mac, PC, Android devices even when those devices have no VR support. This release has improved the navigation controls. Touch support on phones is more intuitive and standard gamepads should work as expected. Try installing from Steam on Steam Deck or similar handheld devices.

    Furthermore you can now browse more sample sketches which are loaded directly from the . Non-VR devices also support interacting with Open Brush via the or .

    Full Change Log:

    🚀 Features

    • Plugin scripting ( by @andybak)

    • Enable axis locking for guides ( by @andybak)

    • Icosa Gallery Integration ( by @andybak)

    • Increase the default and max complexity for Icosa models ( by @andybak)

    🐛 Fixes

    • Fix/plugin merge fixes ( by @andybak)

    • Remove old "not supported" code that sneaked back in with plugin merge ( by @andybak)

    • Prevent error loading image widgets from old sketches ( by @andybak)

    • Fix bug where the layers panel doesn't init if it's not open when a sketch is loaded ( by @andybak)

    🛠️ Infrastructure

    • Disable push of the Q1 build to Oculus (finally blocked by them) ( by @mikeage)

    • Add support for periodically (monthly) rebuilding a PR ( by @mikeage)

    • Fix broken workflow ( by @mikeage)

    • Do not save caches from development builds ( by @mikeage)

    📦 Dependencies / Maintenance

    • Bump rexml from 3.3.9 to 3.4.2 in the bundler group across 1 directory ( by @dependabot[bot])

    • Update Zapbox SDK to 0.5.0 ( by @tangobravo)

    • Bump the all-actions-updates group with 7 updates ( by @dependabot[bot])

    • Bump the all-actions-updates group with 2 updates ( by @dependabot[bot])

    💬 Uncategorized

    • Fix various issues related to additive loading ( by @andybak)

    • Update references from Tilt Brush to Open Brush ( by @LakesideMiners)

    UI tweaks (PR #877 by @andybak)

  • Mesh splitting (PR #880 by @andybak)

  • Harmonize panels between PC and mobile (PR #885 by @andybak)

  • Non VR mode improvements (PR #888 by @andybak)

  • Save selected strokes (PR #711 by @andybak)

  • Still frame export (PR #893 by @andybak)

  • Allow symmetry modes to affect Tool Plugin output (PR #897 by @andybak)

  • Better saved strokes ux (PR #912 by @andybak)

  • Various small plugin scripting improvements (PR #916 by @andybak)

  • Obj import improvements (PR #928 by @andybak)

  • Selective snap angle axes (PR #930 by @andybak)

  • Send triangle count to Icosa on upload (PR #945 by @andybak)

  • Vox import support (PR #947 by @andybak)

  • Local Blocks model loading (PR #953 by @andybak)

  • Fix cloning widgets and strokes to multiple symmetry targets (PR #855 by @andybak)

  • Minor plugin scripting fixes (PR #863 by @andybak)

  • Fix bug where the sketch dropdown was empty after viewing a sketch (PR #867 by @andybak)

  • Blocks Icosa obj support (PR #870 by @andybak)

  • Use indices rather than InstanceId to ensure unique names that persist across sessions (PR #878 by @andybak)

  • Split models not model widgets (PR #881 by @andybak)

  • Partial fix for "Smoke" and WIP support for baking more than just vertex position (PR #883 by @andybak)

  • Ignore material instance naming when matching brushes (PR #884 by @andybak)

  • Saved Strokes Quest Bugfixes (PR #892 by @andybak)

  • PR 893 minor fixes (PR #896 by @andybak)

  • Example media files copying issues (PR #898 by @andybak)

  • GLTF files on android have no textures (PR #899 by @andybak)

  • Restore animation behaviour for GLTF imports (PR #903 by @andybak)

  • Fix animations not working due to node renaming for uniqueness (PR #904 by @andybak)

  • Switch to legacy animation mode (PR #911 by @andybak)

  • Fix coordinate space when calculating save icon for selected strokes (PR #914 by @andybak)

  • More Saved Stroke Fixes (PR #915 by @andybak)

  • Fix GLTF blend shape import (PR #918 by @andybak)

  • Fix API brush smoothing logic (PR #920 by @andybak)

  • Small plugin fixes and tweaks (PR #921 by @andybak)

  • Fix icosa login success message (PR #924 by @andybak)

  • Fix color issues with OpenXR over Meta Link (PR #925 by @andybak)

  • Fixes for loading sketches with split up obj models (PR #932 by @andybak)

  • export filenames should match the same rules that Django uses (PR #936 by @andybak)

  • Add the same new metadata extras that we add to the UnityGLTF export (PR #938 by @andybak)

  • Fix obj import via lua or HTTP API (PR #948 by @andybak)

  • Vox import and grid snap fixes (PR #949 by @andybak)

  • Fix some asset loading bugs (PR #951 by @andybak)

  • Fix some UI descrepancies (PR #955 by @andybak)

  • Various svg bugs (PR #954 by @andybak)

  • Fix undo/redo when loading saved strokes (PR #956 by @andybak)

  • Missing images prevented sketches from loading (PR #957 by @andybak)

  • Fix loading selected strokes on Android (PR #958 by @andybak)

  • Fix issue where model folder was merging contents of it's children (PR #959 by @andybak)

  • Only run the periodic rebuilds on the main repo, not on any forks (PR #869 by @mikeage)

  • Add PICO 4 Ultra and PICO 4 Pro (PR #874 by @mikeage)

  • Add gitleaks to pre-commit and update all hooks (PR #875 by @mikeage)

  • Replace --version with --version_id (PR #879 by @mikeage)

  • Remove periodic rebuild since it doesn't work if a workflow was originally run over 30 days ago (PR #882 by @mikeage)

  • Add sleep before setting the release channel version for ArborXR (PR #886 by @mikeage)

  • Add Mac (non-VR) releases to Itch (PR #890 by @mikeage)

  • Disable LFS in wretry (fixes intermittent build failures at the beginning) (PR #907 by @mikeage)

  • Fix ArborXR upload again (use the --wait option) (PR #908 by @mikeage)

  • Fix builds from forks with just main (no tags) (PR #902 by @mikeage)

  • Improve build resiliency (PR #909 by @mikeage)

  • Fix spelling mistake in non-gnu style arg (PR #910 by @mikeage)

  • Unity version bump (PR #922 by @andybak)

  • Sync tags (PR #923 by @mikeage)

  • Sync tags (PR #929 by @mikeage)

  • Make Open Brush TEENS_AND_ADULTS on Quest (PR #934 by @mikeage)

  • Remove Meta packages from the generic Android OpenXR build (PR #901 by @gfodor)

  • Bump mikepenz/release-changelog-builder-action from 5 to 6 in the all-actions-updates group (PR #941 by @dependabot[bot])

  • Bump actions/checkout from 5 to 6 in the all-actions-updates group (PR #946 by @dependabot[bot])

  • Bump the all-actions-updates group with 2 updates (PR #950 by @dependabot[bot])

  • imported models
    Viverse
    Open Blocks
    Read about camera paths here
    Icosa Gallery
    Web API
    monoscopic mode
    Full release details
    PR #699
    PR #856
    PR #865
    PR #868
    PR #848
    PR #849
    PR #853
    PR #854
    PR #850
    PR #858
    PR #859
    PR #866
    PR #913
    PR #927
    PR #926
    PR #935
    PR #889
    PR #943

    v2.1 Hotfix

    2.1 is a bugfixes only release. We're looking forward to bringing new features to Open Brush soon!

    Fixes:

    1. Enable WMR default controller profile.

    2. Fix saving after deleting a layer.

    3. Fix swapping camera modes when using a Vive controller.

    4. Smoother scrolling on Vive controller touchpads.

    5. Fix advanced tools panel overlapping other panels.

    Known Issues:

    1. Sometimes Open Brush fails to launch depending on the specific combinations of user's HMD, controller Type, and OpenXR runtime. We're working on methods to smooth over and resolve these issues, apologies if you're experiencing them! Please get in touch with us so we can help debug your setup.

    2. Can't swap controller handedness by tapping together.

    The following issues are pending a bug being fixed in Unity, which we found and reported.

    1. Controller issues with HP Reverb G2.

    2. Difficult to dismiss panels by throwing them away.

    3. Deadzone on WMR controller thumbsticks is too sensitive.

    OpenXR Passthrough on Quest!
    Layers support!

    v1.0: Happy Birthday to Us!

    First official release of Open Brush!

    Features in this version:

    • Improved Jitter

    • Repaint Tool

    • Guide settings

    • Merging Sketches

    v0.4.0: LIV, Snap and Guides

    • Support for's mixed reality on Oculus devices

    • Color Jitter varies your strokes. Thanks @andybak!

    • New 'plane' guide type + guide snapping, thanks @michael-g!

    v0.3.0: Flying, Filming, and Fixes!

    New Features

    Flying

    • Fly tool, a new locomotion type. Reach out like your favourite caped hero and pull the trigger to fly around your sketch! Thanks to !

    Filming

    • Mixed Reality support on both Desktop and Quest.

      • The SDK has been added, fixing a number of issues that were present when trying to use LIV with Tilt Brush. You will need to set your blend mode to SDK: Normal (Masked FG Premultiplied). Thanks to and the LIV team!

      • Oculus fixes. The plugin now receives the correct world scale. This also works with the beta! Thanks to . Check out Fabio's app (), allowing you to use MRC from your iOS devices!

    Fixes

    • Block Poly on Quest 1. Sadly Poly was causing crashes on Quest 1, and due to the short time that Poly will be available, we have chosen to block access. Poly downloads will still work on Quest 2 until the service shuts down. Once Icosa is up and running we'll make sure Quest 1 (and 2!) will have full support for it!

    • Uploads to SketchFab are now tagged with Open Brush as the creation tool.

    • has done some amazing work on our build pipeline. Any Pull Requests that get merged now automatically generate new builds, so if you feel adventurous, check out our . This also includes Linux builds!

    v0.2.0: Return of the Integrations

    0.2.0 focuses on adding back a lot of the functionality that was removed from the original Tilt Brush codebase for release.

    Both Platforms:

    • Re-added Sketchfab login

    • Re-added Google/Poly login (note: uploading to Poly isn't possible as it uses proprietary Google code that wasn't released, sorry!)

    • Re-added GIF recording (auto, 5s)

    Desktop extras:

    • Re-added video recording

    • Re-added FBX support

    • Fixed USD support

    • We have also added basic Linux support, expect to see binaries soon!

    Known issues:

    • Camera preview disappears if you've disabled PostFX in your config

    • Cannot record with camera paths

    v0.1.0: Initial Release

    Capture Camera Paths! We decided to read our own README and re-enable video capture on camera paths now that we have general video support.

    Hiding Brushes with Brush Tags
    Selection/Erase Filter
    World Axis Unlock
    Lazy Input
    Bimanual Input
    Revolver
    Grid and Angle Snapping
    Scripting API
    @LIV
    @lachlansleight
    LIV
    @SteffanDonal
    Mixed Reality Capture Tool
    LIV for Quest
    @fabio914
    Reality Mixer
    GitHub
    @mikeage
    Bleeding Edge Releases
    https://twitter.com/i/status/1425910471199240193twitter.com