OpenBrush for PICO

XR Painting Experience Optimization

Overview

Ported and optimized OpenBrush for PICO devices, focusing on input mapping, performance, and user experience. The work includes controller bindings, shader adjustments, and compatibility fixes to ensure a smooth painting experience in standalone XR.

Key Features

Project Architecture

OpenBrush is built on Unity and follows a modular architecture that separates core functionality, platform-specific implementations, and user interface components. The project structure is organized to support multiple XR platforms while maintaining a clean separation of concerns.

OpenBrush Project Structure:
Assets/ - Core Unity assets and game objects
├── Scripts/ - C# scripts for core functionality
├── TiltBrush/ - Main application scripts
├── SketchMemoryScript.cs - Sketch data management
├── BrushManager.cs - Brush lifecycle management
├── Stroke.cs - Individual stroke data structure
└── FileManager.cs - Save/load functionality
├── UI/ - User interface components
├── Input/ - Input handling and controller mapping
└── Rendering/ - Video recording and offline rendering
├── Materials/ - Shader materials and intro materials
├── Prefabs/ - Reusable Unity prefabs
├── Textures/ - Texture assets
├── Shaders/ - Custom shader implementations
└── Resources/ - Runtime assets and experimental features
Packages/ - Unity package dependencies (XR Toolkit, Photon Fusion/Voice)
ProjectSettings/ - Unity project configuration
Support/ - Documentation and build scripts

Architecture Walkthrough Video

I've created a detailed walkthrough of the OpenBrush project architecture, exploring the codebase structure, key components, and how the different systems work together. This video provides insights into the technical implementation and design decisions behind the project.

Watch on Bilibili

Repositories

This project is based on the open-source OpenBrush project with custom adaptations for PICO devices.