SoftTransformmakes it easy to adjust large numbers of control points by applying a falloff influence to the transformation for surrounding points.
Why is SoftTransform useful?
Often called proportional editing, SoftTransform allows you to make a simple selection and gently pulls nearby geometry, making more organic and natural changes to your shape, as opposed to hard, mechanical ones.
In the past, you would need to select each control point / grip manually and move these in a sequence of gradient steps, making the process not only long and tedious, but almost impossible to obtain a natural flow in the shape.
To try it:
Run the SoftTransform command or right-click where your panels are docked and bring up the Soft Transform panel. The panel is also accessible through Window → Panels → SoftTransform menu item.
When sub objects or grips are selected, the object’s mesh will be shaded with the adjustable falloff color.
The shading shows the area of influence of the transformation.
To increase or decrease the influence of the transformation, adjust the radius slider. Double-clicking of the slider allows you to adjust the influence outside the range.
The transformations falloff can be adjusted with the falloff shape.
The falloff shape determines how strong the transform will be for those points within the radius.
Currently, supported are Smooth, Linear, Round, and Sharp.
Two distance measures are used to determine which surrounding points are influenced:
The Spherical distance includes all nearby points.
The Along Object traverses along the object being edited to find nearby points.
When the distance measure is set to Along Object, SoftTransform can be controlled separately in the U and V directions for surfaces. The two sliders adjust the number of control points affected. This gives the effect of stretching or squishing the falloff shape. The new surface direction indicators can help you determine the directions when setting counts.
Boundary constraints can be applied to the edges of surfaces. Checking the Boundary constraints option in the panel shows clickable widgets on the surfaces when points are turned on. These boundary constraints can be used to maintain continuity between patches. The G0, G1, and G2 options lock the first, second, and third rows of points respectively.
In previous versions, Rhino’s SoftTransform only worked with meshes and SubDs. In the Rhino WIP, curves, surfaces, and cages are also supported.
SoftTransform also works with the new UVN aligned gumball. Adjacent unselected control points within the radius will also move along their respective control polygon directions according to the falloff.
Please give it a try and let us know where the wheels falloff!
Would my comments below be more effective If I used demand/insist/must have in place of “prefer”?
Is this intended to replace SoftMove?
I prefer the ability to select the control points to be moved as in SoftMove.
I prefer the direct control of influence range by dragging a point used in SoftMove to the slider.
I can only make the slider range larger. If I double click and type a smaller value the slider maximum value remains the same. How do I make the max range smaller?
When working in wireframe mode I prefer to remain in wireframe mode while moving points.
We can add an option to have SoftTransform work within the selection or outside the selection. How would you determine the base point for calculating distances? The gumball is easy but ordinary drags are a bit more complex.
I’m not quite understanding this suggestion
Right click the slider and a range adjustment pops up.
Yep, I needed to fix some grip drawing beforehand. I opened RH-89453 to get this resolved.
For ordinary drag the base point would be the control point the user clicks on to drag. That would be intuitive.
A comment about my preferences. SoftMove uses a point which the user drags to control the size of the influence range.
Additional comments:
The entire control point net should remain visible and respond while one control point is being dragged; the same as occurs when multiple control points are selected and a control point is dragged without SoftTransform enabled.
The default Falloff Color should be a Rhino setting, not a document setting, the same as other color preferences.
Will the SoftTransform command continue alongside the new DragSettings, in addition to DragSettings having a Soft Transform feature? If so I’d like the SoftTransform command to work with curves and surfaces.
That makes sense. It’s still a little tricky since the base point can not be a grip like for example if there’s an entire surface selected. I think in those cases we may just have to ignore the soft transform.
Do you want a button next to the radius slider which will let you go pick a sphere in the view?
Yep, I opened RH-89480. My idea with putting it in the panel was making it accessible for quick adjustments since object colors can vary quite a lot in big models.
It does. If you have time it’d be great if you can try it on some real world examples and let us know how it works for your use case.
I’ve tried multiple times without success, and I cannot select a curve or surface. This is what shows up on the command line: “Choose soft transform option for mesh and SubD objects. Press Enter when done ( Enable=No Radius=5 Shape=Linear )” Perhaps it is not in the version of the WIP released so far.
Work In Progress
(9.0.25252.12305, 2025-09-09)
Egg on my face. The SoftTransform command needs a lot of work and I’ve been doing all the work in the panel. The command does different things depending if there’s something selected and its current enabled state. I would just turn it on in the DragSettings panel like I show in the videos. I opened RH-89482 to get it addressed. I don’t think there’s anyone relying on the funky way it currently works.
Are these vertex colors added in any of the drawing channels of the DisplayPipeline? I’m trying to replicate similar behavior in my custom plugin but always run into z-fighting issues when drawing objects on top of each other.
Windows 10 (10.0.19045 SR0.0) or greater (Physical RAM: 32GB)
.NET 9.0.1
Computer platform: DESKTOP
Standard graphics configuration using OpenGL
Primary display: NVIDIA GeForce GTX 1050 Ti (NVidia) Memory: 4GB, Driver date: 9-26-2024 (M-D-Y). OpenGL(4.6.0 NVIDIA 565.90)
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)
Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High
Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 9-26-2024
Driver Version: 32.0.15.6590
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 4 GB
Rhino plugins that do not ship with Rhino
C:\Program Files\Common Files\McNeel\Rhinoceros\7.0\Plug-ins\XNurbs (80be33b0-13b2-4ac4-9c77-03829214f9e9)\6.1.1.119\XNurbsRhino7.rhp “XNurbs”