Scene‑Size‑Based Add‑On for Texture Painting.
I’ve been looking for a way to make texture‑painting brushes in the 3D Viewport scale based on scene size, instead of viewport size, but it turns out there’s no built‑in option for this.
So I created this add‑on (with AI assistance).Also, anyone is welcome to improve upon it.
Get it for free:
https://lazyng.gumroad.com/l/udurkh
How to use:
Info:
Texture Paint World Size Brush Version 1.5.3
========================================
【Plugin Description】
----------------------------------------
Allows brush size to use scene units (meters, centimeters, millimeters, etc.)
in texture paint mode, similar to the “Use Scene Units” feature in sculpt mode.
When you zoom the view, the brush automatically adjusts its pixel size
to maintain a consistent real-world size in world space.
Compatible with Blender 4.2 - 5.2.
Key Features:
- World Unit Brush: Brush size uses scene units instead of pixels
- Auto Sync: Automatically adjusts brush pixel size when view zooms
- Manual Refresh: One-click instant brush size sync
- Hotkey Support: [ key to decrease, ] key to increase world radius
- Customizable Delay: Adjustable sync delay and monitor interval
- Customizable Increment: Adjustable hotkey increment percentage
- Multi-Unit Support: Automatically matches current scene unit display
【Installation】
----------------------------------------
1. Open Blender
2. Menu: Edit → Preferences → Add-ons
3. Click the “Install” button in the top-right
4. Select the texture_paint_world_brush.py file
5. Check “Texture Paint World Size Brush” to enable
【Usage】
----------------------------------------
1. Select a mesh object with textures
2. Switch to “Texture Paint” mode (top mode selector, or press Ctrl+Tab)
3. Press N to toggle the sidebar
4. Find the “World Space Brush” panel in the “Tool” tab
5. Click “Enable World Unit Brush” button
6. Set the “Radius” value (in current scene units)
7. Brush will automatically adjust pixel size based on view distance
Hotkeys:
- [ key: Decrease world radius
- ] key: Increase world radius
- Shift + [ / Shift + ]: Same adjustment (same increment)
Addon Preferences (Edit → Preferences → Add-ons → Texture Paint World Size Brush):
- Sync Delay (sec): Delay before syncing after view changes or manual adjustment (default: 0.3s)
- Monitor Interval (sec): Time interval for checking view and brush changes (default: 0.1s)
- Hotkey Increment (%): Percentage increment for hotkey radius adjustment (default: 10%)
【Changelog】
----------------------------------------
v1.5.3 (2026-07-22)
- Improved conversion accuracy from world units to pixel size
- Priority: VIEW mode + ups.size (precise pixel control)
- Uses bpy_extras.view3d_utils for more accurate coordinate conversion
- Dual-direction sampling (horizontal + vertical) reduces perspective distortion
- Panel style optimization, consistent with classic version
- Fixed redundant variable reference in invoke function
v1.5.2 (2026-07-20)
- Fixed Blender 5.2 compatibility issues
- Added refresh_brush_display function to force brush display refresh
- Optimized view change detection and recovery logic in SCENE mode
v1.5.1 (2026-07-20)
- Fixed unified_paint_settings location change in Blender 5.x
- Added get_unified_paint_settings() compatibility function
- Supports getting settings from image_paint.unified_paint_settings (Blender 5.x)
v1.4 (2026-07-20)
- Added support for brush.unprojected_size (Blender 5.x world space brush)
- Added brush_uses_world_size() function to detect current mode
- Enhanced multi-version compatibility in set_brush_size()
v1.3 (2026-07-20)
- Added detailed debug log output
- Extended compatibility with various brush size setting methods
- Added debug output for workspace tool information
v1.2 (2026-07-20)
- Fixed error caused by unified_paint_settings API change in Blender 5.x
- Added safe property access methods
- Enhanced compatibility handling for ray_cast return values
v1.1 (2026-07-17)
- Added addon preferences panel
- Customizable sync delay, monitor interval, hotkey increment
- Added hotkey interception ([ and ] keys adjust world radius)
- Panel display optimization: world radius units match scene units
v1.0 (2026-07-16)
- Initial release
- Implements world unit brush feature in texture paint mode
- Supports automatic brush size sync when view changes
- Supports manual refresh button
【Contact】
----------------------------------------
Support Email: lazyng.sj@gmail.com
【License】
----------------------------------------
This plugin is free for personal and commercial use.