> For the complete documentation index, see [llms.txt](https://docs.openbrush.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openbrush.app/release-history/v2.30.md).

# v2.30

## Improved View-only Mode

<figure><img src="https://3738774261-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mikdwm98p33AibfiSqN%2Fuploads%2Fcpt3qRBnGa8psOffMTN1%2F013%20Open%20Brush%20Viewer.png?alt=media&amp;token=b7f614b7-d779-4c52-9aab-d0b4a8f4d9b8" alt=""><figcaption></figcaption></figure>

[View-only Mode](/user-guide/view-only-mode.md) now provides a dedicated interface for exploring sketches without exposing painting and editing tools. It works both in VR and without a headset, making it useful for exhibitions, demonstrations, shared headsets and dedicated viewer installations. In VR, viewers can move with the Fly or Teleport tools.

The non-VR experience now has a thumbnail grid for browsing local and Icosa Gallery sketches, improved loading and navigation, and touch controls for mobile devices. Steam users can choose **View-only Mode** when launching Open Brush. Dedicated viewer builds start in this mode automatically, while other regular builds can use the `--ForceViewOnly` command-line switch or matching config setting. This is independent of XR, so it can be combined with `--DisableXrMode` when a flat-screen viewer is required.

## Create Camera Paths by Flying

<figure><img src="https://3738774261-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mikdwm98p33AibfiSqN%2Fuploads%2FQZHroTNcYquZw9tHBvlG%2Fimage.png?alt=media&amp;token=92d397c9-1a28-48a3-a8b5-e74f9dd556c2" alt=""><figcaption></figcaption></figure>

You can now create a [camera path](/user-guide/exporting-videos/camera-paths-tool.md) by recording a flight through your sketch. Start recording from the Camera Paths panel, use the Fly tool to move along the route you want, then stop recording to turn that movement into an editable camera path.

This is a more direct way to block out a camera move than placing every anchor point by hand. You can still adjust the resulting path, direction, speed and field of view before rendering it.

## Windows Explorer Sketch Thumbnails on Steam

<figure><img src="https://3738774261-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mikdwm98p33AibfiSqN%2Fuploads%2FTX9Y4DlH2JRUQswA49FT%2Fexplorer_thumbs.png?alt=media&amp;token=97125785-d5de-4392-bc55-f1f61c134603" alt=""><figcaption></figcaption></figure>

The Windows Explorer thumbnail extension is now included with the Windows Steam release. A new button in Open Brush opens the installer location, making it easier to enable preview thumbnails for `.tilt` files without downloading the extension separately.

Once installed, the extension shows each sketch's saved thumbnail while you browse your files in Windows Explorer. Read more about [organizing your saved sketches](/user-guide/saving-and-sharing-your-open-brush-sketches.md#organizing-your-sketches).

## 8K Panorama Support

Offline ODS panorama rendering can now produce images up to 8,000 pixels wide. The existing 4,096-pixel default is unchanged, but advanced users can request a larger output with the `Video.OfflineResolution` setting in `Open Brush.cfg`.

Higher resolutions require more time and memory, so choose a size appropriate for your computer and final output. See the [360° / ODS video workflow](/user-guide/exporting-videos/360-ods-video-workflow.md) for the rest of the rendering process.

## Passthrough in Multiplayer

[Multiplayer rooms](/user-guide/multiplayer.md#passthrough-rooms) can now use passthrough environments. This lets several people paint together while each person sees their own real-world surroundings behind the shared Open Brush scene.

Open Brush keeps the passthrough environment consistent for everyone in the room and prevents accidental environment changes that would take a participant out of passthrough. Multiplayer rooms can also now support up to 12 people.

## Full Change Log:

[Full release details](https://github.com/icosa-foundation/open-brush/releases/tag/2.30.0)

### 🚀 Features

* Add Explorer thumbnails extension installer for Steam ([PR #1040](https://github.com/icosa-foundation/open-brush/pull/1040) by @andybak)
* 8K Panorama support ([PR #1031](https://github.com/icosa-foundation/open-brush/pull/1031) by @andybak)
* Support passthrough in multiplayer ([PR #1079](https://github.com/icosa-foundation/open-brush/pull/1079) by @andybak)
* Small brush fixes and tweaks ([PR #1080](https://github.com/icosa-foundation/open-brush/pull/1080) by @andybak)
* Improve View mode, more build targets ([PR #1068](https://github.com/icosa-foundation/open-brush/pull/1068) by @andybak)
* Camera path from fly tool ([PR #1028](https://github.com/icosa-foundation/open-brush/pull/1028) by @andybak)

### 🐛 Fixes

* Fix ODS compile with explicit texture cap ([PR #1063](https://github.com/icosa-foundation/open-brush/pull/1063) by @andybak)
* Fix layer undo bugs ([PR #1077](https://github.com/icosa-foundation/open-brush/pull/1077) by @andybak)
* Fix small git annoyances ([PR #1070](https://github.com/icosa-foundation/open-brush/pull/1070) by @andybak)
* Allow overriding Android SDK version per build (Meta requires 34, Google requires 35) ([PR #1082](https://github.com/icosa-foundation/open-brush/pull/1082) by @andybak)
* Small brush fixes ([PR #1084](https://github.com/icosa-foundation/open-brush/pull/1084) by @andybak)
* The right way to avoid automated review submission ([PR #1089](https://github.com/icosa-foundation/open-brush/pull/1089) by @andybak)
* Restore internal Google Play prerelease status ([PR #1090](https://github.com/icosa-foundation/open-brush/pull/1090) by @andybak)
* Only show Meta XR prompt for Android build targets ([PR #1092](https://github.com/icosa-foundation/open-brush/pull/1092) by @andybak)
* Fix camera path rotation and FOV export ([PR #1096](https://github.com/icosa-foundation/open-brush/pull/1096) by @andybak)
* Switch Photon to use default ports ([PR #1098](https://github.com/icosa-foundation/open-brush/pull/1098) by @andybak)
* Fix layer inconsistencies ([PR #1087](https://github.com/icosa-foundation/open-brush/pull/1087) by @andybak)
* `_TB_TIMESTAMP` generation for newglb ([PR #1097](https://github.com/icosa-foundation/open-brush/pull/1097) by @andybak)
* Detect Google Play review state before upload ([PR #1091](https://github.com/icosa-foundation/open-brush/pull/1091) by @andybak)

### 🛠️ Infrastructure

* Steam Android publishing ([PR #1060](https://github.com/icosa-foundation/open-brush/pull/1060) by @andybak)
* Fix Steam Android CI typo ([PR #1061](https://github.com/icosa-foundation/open-brush/pull/1061) by @andybak)
* Avoid automatic Google Play review submission ([PR #1088](https://github.com/icosa-foundation/open-brush/pull/1088) by @andybak)
* Make Google Play release track also configurable ([PR #1105](https://github.com/icosa-foundation/open-brush/pull/1105) by @andybak)

### 📦 Dependencies / Maintenance

* Bump the all-actions-updates group across 1 directory with 3 updates ([PR #1071](https://github.com/icosa-foundation/open-brush/pull/1071) by @dependabot\[bot])
* Bump actions/setup-dotnet from 5.3.0 to 5.4.0 in the all-actions-updates group ([PR #1074](https://github.com/icosa-foundation/open-brush/pull/1074) by @dependabot\[bot])
* Bump faraday from 1.10.5 to 1.10.6 in the bundler group across 1 directory ([PR #1075](https://github.com/icosa-foundation/open-brush/pull/1075) by @dependabot\[bot])
* Bump the all-actions-updates group with 2 updates ([PR #1093](https://github.com/icosa-foundation/open-brush/pull/1093) by @dependabot\[bot])
* Bump actions/setup-python from 6.3.0 to 7.0.0 in the all-actions-updates group ([PR #1101](https://github.com/icosa-foundation/open-brush/pull/1101) by @dependabot\[bot])


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.openbrush.app/release-history/v2.30.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
