Grasshopper Botcha tools
Botcha offers a number of useful tools within Grasshopper. These tools can be found in the Botcha tab after installing the plugin.
Geometry preview
Shows a preview of the provided geometries by applying a chosen color.
Inputs
- geometry: One or more geometries to preview.
- color: Color to apply to geometries.
Outputs
The node does not produce an actual output but simply creates a preview in the model.
Remap
Remaps geometries from one mesh to another. As a prerequisite for this node, the two meshes need to have matching UVs to work properly. The node performs the mapping by converting the coordinates of an object to the source mesh UV space and then remapping that to the target mesh.
Inputs
- sourceMesh: The original mesh to start mapping from. All geometries that will be remapped will be considered relative to this mesh.
- targetMesh: The target mesh where the mapping will end. Geometries will be remapped around this target mesh.
- searchTolerance: The radius to search around each point of each object that needs remapping. This influences how far the node will look for remapping.
- smooth: Whether to smooth the output.
- strategy: 0 for UV mapping strategy and 1 for skinning strategy.
- UVMap is topology-independent and allows you to use UVs to map from one object to another using texture coordinates.
- Skinning is topology-dependent; the two meshes must match, but it is faster than UV mapping.
- geometries: The actual geometries to be remapped.
Outputs
- outputGeos: The remapped geometry.
Mesh Loft
Creates a mesh loft from a set of closed curves.
Inputs
- profiles: A set of curves representing the sections the mesh loft passes through.
- samples: Number of samples along the section curves.
- steps: Number of steps along the loft.
Outputs
- loft: The generated mesh loft.
Planar Quadmesh, Planar Trimesh
Creates a planar quad or triangular mesh starting from a closed curve. The curve must be planar.
Inputs
- boundary curve: The planar curve representing the external boundary of the mesh to generate.
- holes: Other curves representing holes in the mesh to generate.
- guides: Guide curves to which face generation and general mesh orientation will be bound.
- edge length: Length to use for mesh edges.
- tolerance: Tolerance to use for mesh generation.
Outputs
- mesh: The generated planar mesh.
Catmull-Clark subd
Subdivides a mesh with the Catmull-Clark algorithm.
Inputs
- iterations: Number of iterations of the algorithm.
- edgeSmoothing: Boolean value specifying whether to apply edge smoothing.
Outputs
- out: The generated subdivided mesh.
Mesh project
Projects a mesh onto another mesh.
Inputs
- originalMesh: The mesh that needs to be projected.
- colliders: One or more meshes onto which the original mesh will be projected.
- direction: Vector representing the direction of the projection.
Outputs
- proj: The generated projected mesh.
Stitching generation
The Stitching node creates stitching along a chosen curve on a mesh.
Inputs
- Stitching pattern: The stitching pattern. You can use an off-the-shelf pattern from the PrefabPatterns node or create a customized one using the StitchPattern node, both explained below.
- Stitching curve: The curve you want your stitching along.
- Mesh: The mesh the stitching will lie on.
- Maximum distance: Maximum distance of the curve from the mesh. If the selected curve is farther, it will be ignored. If not specified, no distance limits will be considered.
- Curved or rounded: Boolean to choose the dash style.
- Dash diameter.
- Project: Boolean value specifying whether to project the result onto the mesh or keep it along the curve.
Output
The generated stitching mesh.
A zigzag prefab pattern used to generate stitching
Prefab stitching patterns
Choose from a set of ready-made stitching patterns from the list shown after right-clicking on the node.
Customized stitching patterns
The StitchPattern node generates a new pattern.
Inputs
- Stitching curves: Curves the pattern is made of.
- Leading line: Line used to choose the orientation and dimension of the curves composing the pattern.
- Dash length.
Output
The new scaled geometries.
Grade geometry
Generates a new geometry by transforming the input to match a given size.
Inputs
- Last: Geometry to be graded.
- Other geometries: Other geometries to scale together with the last.
- Last line: Line between heel and top points.
- Target length: Target length of the last.
- Target ball: Target ball girth.
- Angle: Rotation angle in degrees.
- Max iterations.
Copy on mesh
Generates a copy of an object on a chosen mesh, SubD, surface, or Brep.
Inputs
- Object: Object to copy. It can be a mesh, SubD, surface, or Brep.
- Target mesh: The object the new copy will lie on. It can also be a mesh, SubD, surface, or Brep.
- Point: Point on the target object where you want the copy to be generated. If it is not exactly on the surface, it will be approximated to the closest point within a certain distance chosen by the Max distance input.
- Plane: The plane to use as a "carpet" for the object to copy onto the target surface.
- Angle: Rotation angle in degrees.
- Max distance.
Output
The copy of the object in the correct position.
Array on mesh
Generates an array of copies of an object on a chosen curve lying on a mesh, SubD, surface, or Brep.
Inputs
- Object: Object to copy. It can be a mesh, SubD, surface, or Brep.
- Target mesh: The object the new copies will lie on. It can also be a mesh, SubD, surface, or Brep.
- Curve: The curve the generated array of objects will lie on. If any location on the curve is not on the surface, the corresponding object position will be approximated to the closest surface point within a certain distance chosen by the Max distance input.
- Plane: The plane to use as a "carpet" for the object to copy onto the target surface.
- Angle: Rotation angle in degrees.
- Mode: Set to true for distance-based generation, or false to specify the number of objects in the array.
- Value: Distance or quantity, based on the chosen mode.
- Max distance.
Output
The array of object copies on the curve.
Cage deformation
This feature allows deforming a geometry using a cage containing it, corresponding to the object's bounding box along Cartesian axes. Each side of the cage is divided into segments, the number of which is chosen by the user. This division allows isolating the areas of the object responding to stretching from those remaining rigid. This functionality, similar to Rhino CageEdit, provides an easy way to achieve non-uniform deformation along different axes and parts of each axis. It can also be applied to multiple geometries simultaneously with their relative cages.
Inputs
- SourceGeos: Geometries to deform.
- xSlices: The number of segments you want to subdivide on the x-axis side of the cage.
- ySlices: The number of segments you want to subdivide on the y-axis side of the cage.
- zSlices: The number of segments you want to subdivide on the z-axis side of the cage.
- nMoveX: The number of cage segments on the x-axis that you want to be affected by the deformation.
- nMoveY: The number of cage segments on the y-axis that you want to be affected by the deformation.
- nMoveZ: The number of cage segments on the z-axis that you want to be affected by the deformation.
- dxSlices: Quantity of deformation along the x-axis (positive).
- dySlices: Quantity of deformation along the y-axis (positive).
- dzSlices: Quantity of deformation along the z-axis (positive).
Output
- outputGeos: The deformed geometries.
- outputCagePts: Cage points.
A last deformation along the x-axis on different cage segments.
Cage deformation from points
You can directly manipulate an object’s cage using its control points. Two components facilitate this process:
- CageCreation: This component generates a cage for an object based on the specified number of subdivisions along each axis.
- CageDeformFromPoints: This component accepts a cage and new target points for deformation. To use it, first create a cage and its control points using CageCreation. Then, input the cage and the desired points into CageDeformFromPoints. By adjusting the position of these points, you can observe deformations on the object. This workflow can be applied to multiple geometries.
A last deformation moving cage points, which have been added to the Rhino document and then edited.







