Dendro is a volumetric modeling plug-in for Grasshopper built on top of the OpenVDB library. It provides multiple ways to wrap points, curves, and meshes as a volumetric data type, allowing you to then perform various operations on those volumes. Dendro includes components for boolean, smoothing, offsets, and morphing operations.
When working with meshes or Breps, these types of operations are often computationally heavy, prone to failures, or cannot handle complex geometry. OpenVDB's volume data structures allow for quicker computation with higher repeatability, enabling you to leverage more complex operations within Grasshopper.
- Mesh, Curve or Point wrapping
- Fast Boolean operations
- Offset complex geometry
- Smoothing operations
- Watertight mesh output
- Highly repeatable
The goal was to make Dendro integrate into Grasshopper as seamlessly as possible. Whereas many voxel solutions require you to think of geometry as living with a bounding box, Dendro makes working with volumes no different than handling any other geometry in Grasshopper. Dendro works with many native Grasshopper components, avoiding the 'blocking' found in other plugins, and allowing you to move in and out of volume operations very quickly.
The typical workflow for the Dendro plug-in is to generate a volume, run your operations on it and then output your volume as a mesh. Volume objects can be created from Meshes, Curves or Points.
You can use the Dendro conversion components to switch to and from volume data. For converting geometry into volumes, you can use the “Mesh to Volume,” “Curves to Volume” and “Point Cloud to Volume” components. Use the “Volume to Mesh” for getting your volume back into a closed mesh.
Mesh to Volume
Curve to Volume
Points to Volume
Volume to Mesh
Boolean operations are one of the more compelling features within Dendro. Where mesh (and even NURBS) booleans can be prone to failure, volume booleans are incredibly stable and can be computationally lighter. The standard boolean operations available are Union, Difference, and Intersection.
Filters are a group of Dendro components that modify volume objects. Filters offer some amazing flexibility in modifying volumetric input data. Using other volumes as masks, you can even isolate specific areas to apply filtering to.
Dendro's filter components (Smooth, Offset and Blend) all have a “Mask (M)” input, which allows you to perform the filter operation in specific areas. Mask data is created by the Create Mask component and is defined by a volume which represents the bounds of the mask.
Dendro has basic read and write capabilities for OpenVDB binary files. This can be utilized to interact with OpenVDB files generated in programs outside of Rhino/Grasshopper such as Houdini or Maya.