Editable 2D Warp Grid for logos and decals, with native 2D viewport API support
I would like to propose an editable 2D grid warp workflow for Substance 3D Painter, and request a supported public API for integrating tools like this into Painter’s native 2D viewport.
I have developed a working plugin called 2D Warp Grid. It lets artists reshape projected logos, decals and other layer content in UV space without changing the mesh UVs. A typical use case is correcting the shape of a logo on a curved surface after it has already been placed.
Video demonstration:
Watch the 2D Warp Grid demonstration on Google Drive (no sign-in required).
Current plugin capabilities
- Global: a grid over the full 0–1 UV area.
- Local: a rectangular grid fitted around the layer content.
- Custom: draw a rectangular area directly in the 2D editor.
- Independent row and column resolution, up to 10 × 10 control points, with Smooth and Linear interpolation.
- Move individual points, or select multiple points with Shift and move them together.
- Move, rotate and uniformly scale the whole grid in Local and Custom modes.
- Edit area in Custom mode: position, rotate and scale the selection area before deforming, without changing the texture during area setup.
- Undo and redo a complete drag as one action.
- Multiple editable warp stages in the layer stack, with synchronized Base Color and layer-mask deformation.
- The open 2D editor follows the selected warp filter and refreshes its texture preview when layers are reordered.
Request for Adobe: native 2D viewport integration
The plugin currently uses its own 2D window. A documented extension API for Painter’s standard 2D viewport would help us improve integration and avoid maintaining a separate preview and navigation system. The most useful capabilities would be:
- Draw interactive overlays, control points and selection rectangles in UV coordinates.
- Receive mouse and keyboard events for custom tools while cooperating with Painter’s normal navigation.
- Read viewport transforms and convert between screen and UV coordinates; access supported pan, zoom and rotation controls.
- Receive notifications when the displayed texture, selected layer/filter, layer order, display mode or lighting changes.
- Request an efficient viewport redraw and, where appropriate, access the current rendered 2D preview through a supported mechanism.
If supported APIs already cover any of these needs, guidance or examples would be very welcome. Otherwise, could Adobe consider exposing them? A native editable grid warp tool would also be valuable for this workflow.
I am sharing the video and workflow for feedback here; plugin files are not attached. I would appreciate feedback from the Painter team and artists who need to adjust logos and decals directly in 2D UV space.
