Open fire opened 5 months ago
Parametric shapes are objects modeled as programs, based on certain variables called hyper-parameters. They're commonly used in non-destructive modeling, CAD modeling or rigging. But, they can only be manipulated indirectly, through values rather than the geometry itself.
In this paper, we propose a process to modify the underlying direct acyclic graph (DAG) of a parametric shape. This modification allows for local differentiation of the shape with respect to its hyper-parameters, enabling interactive direct manipulation of the output.
Our method works on the shape synthesis process itself, making it indifferent to changes in connectivity and topology that may occur while changing input hyper-parameters. It also doesn't depend on the internal logic of the DAG nodes.
We demonstrate our approach using examples from modern parametric modeling packages. These include deformation, booleans and surfacing operators. Our method gives users inverse control over the hyper-parameters through a brush stroke metaphor.
Two new panels have been introduced in scene properties:
In the Rig panel, you can add hyper-parameters using "+". Each hyper-parameter controls an object's property component. You need to define the:
Additional settings include boundaries, default value, and display name.
Ensure your scene is compatible with supported modifiers, then utilize Dag Amendment to insert these modifiers.
As a general guideline, we provide support for modifiers that can transmit UV coordinates from input to output without causing overlap. However, in cases where overlap is introduced, it should be possible to disambiguate it. For example, the array modifier allows for offsetting UVs for each instance.
Activate the "SmartGrab" tool in Object mode. This tool manipulates the scene affecting only hyper-parameters.
Optionally, you can adjust settings. The brush radius can be modified with Ctrl + Mouse Left or F key. Other settings are located in the upper bar.
Blender's drivers can be used to link driven objects to actual targets. If your scene is organized with a collection grouping all objects driven by hyper-parameters, consider using the Setup From Collection button instead of adding hyper-parameters individually.
The SmartGrab brush has the capability to use a different view layer than the one you're visualizing. Modifiers that transmit UV coordinates without overlap or with disambiguation are supported.
Note: Geometry Nodes are not currently supported as they were not part of the main Blender branch when the prototype was developed.
How do I use this to make a VR food truck?