Grasshopper Botcha tools
Botcha offers a number of useful tools within grasshopper. These tools can be found in the Botcha tab after the installation of the plugin.
Geometry preview
Show 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
Remap geometries from a mesh to another one. As a prerequisite for this node the two meshes need to have matching UV in order to properly work, the way the node performs the mapping is by converting the coordinate of an object to the source mesh UV space and then remap that to the target mesh.
Inputs
- sourceMesh: The original mesh where to start the mapping from. All the geometries that will be remapped will be considered starting from this one mesh.
- targetMesh: The target mesh where the mapping will end to. The 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 away the node will look for remapping.
- smooth: Whether to smooth the output or not.
- strategy: 0 will use UV mapping strategy and 1 will use the skinning strategy
- UVMap is topology independent and allow you to use the UVs to map from one object to the other using the texture coordinates.
- Skinning is topology dependant, the two meshes need to match but it is faster than the UV mapping
- geometries: The actual geometries to be remapped.
Outputs
- outputGeos: The remapped geometry.
Mesh Loft
Create a mesh loft from a set of closed curves.
Inputs
- profiles: The set of curves representing the sections through which the mesh loft must pass.
- 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
Create 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 the mesh generation.
Outputs
- mesh: The generated planar mesh.
Catmull-Clark subd
Subdivide a mesh with Catmull-Clark algorithm.
Inputs
- iterations: Number of iterations of the algorithm.
- edgeSmoothing: Boolean value that tells whether to apply edge smoothing.
Outputs
- out: The generated subdivided mesh.
Mesh project
Project 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: Projected mesh generated.
Stitching generation
Stitching node creates a stitching along a chosen curve on a mesh.
Inputs
- Stitching pattern: Pattern of the stitching. 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: Curve you want your stitching along.
- Mesh: Mesh the stitching will lay on.
- 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 and any curve will be good.
- Curved or rounded: Boolean to choose the dash style.
- Dash diameter.
- Project: Boolean value that tells wether to project the result on the mesh or keep it along the curve.
Output
The generated stitching mesh.
A zigzag prefab pattern used to generate a stitching
Prefab stitching patterns
Choose from a set of ready-made stitching patterns from the list you can see after right-clicking on the node.
Customized stitching patterns
StitchPattern node generates a new pattern.
Inputs
- Stitching curves: Curves the pattern is made of.
- Leading line: Line to choose the orientation and the dimension of the curves composing the pattern.
- Dash length.
Output
The new scaled geometries.
Grade geometry
Generate a new geometry transforming the input one 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
Generate 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 lay on. It also can 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 right on the surface, it will be approximated to the closest point within a certain distance chosen by input as Max distance.
- Plane: The plane to use like a "carpet" for the object to copy and put it on the target surface.
- Angle: Rotation angle in degrees.
- Max distance.
Output
The copy of the object in the right position.
Array on mesh
Generate an array of copies of an object on a chosen curve laying 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 copy will lay on. It also can be a mesh, subD, surface or brep.
- Curve: The curve the generated array of objects will lay on. If any location on the curve is not a point of the surface, the corresponding object position will be approximated to the surface closest point within a certain distance chosen by input as Max distance.
- Plane: The plane to use like a "carpet" for the object to copy and put it on the target surface.
- Angle: Rotation angle in degrees.
- Mode: Input true in case of distance based generation, false in case you prefer to specify the number of objects in the array.
- Value: Distance or quantity, basing 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 the stretching from those remaining rigid. This functionality, similar to Rhino CageEdit, provides an easy way for achieving non-uniform deformation along different axes and along different parts of each axis. It can also been 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 x-axis (positive).
- dySlices: Quantity of deformation along y-axis (positive).
- dzSlices: Quantity of deformation along z-axis (positive).
Output
- outputGeos: The deformed geometries.
- outputCagePts: Cage points.
A last deformation along 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 has been added to the Rhino document and then edited.







