Sasquatch is a collection of general purpose grasshopper utilities for Rhino 6 developed by Scott Overall at SHoP Architects focused on filling in some gaps in grasshopper modeling functionality or improving the speed and efficiency of already existing operations.
Many components have been multi-threaded with additional checks built-in to prevent excess calculations that would otherwise slow down grasshopper scripts.
Note that not all scripts and not all systems will see performance improvements from multithreaded components. All multithreaded components have been scripted with larger quantities of geometry in mind where many operations can be performed simultaneously. For smaller operations, it may be beneficial to set components to single threaded mode. Systems with more CPU cores will also benefit more than those with fewer. Fewer than 4 CPU cores may not notice a significant difference in speed.
- 3D Convex Hull From Planes - Constructs a convex planar brep from 4 or more oriented planes. Multi-threaded per hull.
- Extrude to Plane - Extrudes a curve or surface in a given direction to one or two bounding planes. Multi-threaded per extrusion.
- Fast Solid Difference - Performs a boolean difference on many objects simultaneously with a bounding box check to exclude computing booleans on objects that are not intersecting. Multi-threaded per object being subtracted from. Can provide significant speed improvements over the default grasshopper implementation on large quantities of geometry.
- Fast Solid Intersect - Performs a boolean intersection on many objects simultaneously with a bounding box check to exclude computing booleans on objects that are not intersecting. Multi-threaded per list of intersections. Accounts for intersection conditions of multiple geometries that the default implementation does not handle. Can provide speed improvements over the default implementation when operating on multiple lists, but not as great as fast solid difference.
- Fast Solid Union - Performs a boolean union on many objects simultaneously with a bounding box check to exclude computing booleans on objects that are not intersecting. Multi-threaded per list of unions. Can provide speed improvements over the default implementation when operating on multiple lists, but not as great as fast solid difference.
- Fillet Edges Variable - Variable Edge Fillet. Multithreaded per brep.
- Offset Brep - Offsets a brep to either a solid or open shell. Multi-Threaded per brep.
- Surface Border - Returns the exterior and interior borders of a surface. Interior curves are oriented in the opposite direction from the exterior curves.
- Trim Brep with Plane - Trims an object with a single oriented plane. The result is either capped or open. Multithreaded per brep.
- Trim Brep with Many Planes - Trims an object with multiple oriented planes. The result is either capped or open. Multi-threaded per brep.
- Brep is Solid - Checks if a brep is solid or open.
- Brep is Surface - Checks is a brep is a trimmed or untrimmed surface.
- Closest Brep - Finds the closest brep to a point with a bounding box check to prevent excess calculations. Multi-threaded per search point.
- Shrink Trimmed Faces - Shrinks the underlying surface of all faces in a brep to match the trim boundary as close as possible.
- Surface is Planar within Tolerance - Checks if a surface is planar within a given tolerance.
- 2D Convex Hull from Planes - Constructs a convex planar closed curve from a base plane and 3 or more oriented intersection planes.
- Connect Curve Ends - Connects the start points and end points of a pair of curves with a straight line, creating a closed curve.
- Fast Trim Curves with Breps - Splits and trims a curve with a collection of breps. Multi-threaded per curve with bounding box check to exclude computing trims on objects that are not intersecting.
- Flip Curve Clockwise/Counterclockwise - Orients a curve clockwise or counterclockwise relative to a plane.
- Trim Curve with Plane - Trims a curve with an oriented plane.
- Trim Curve with Many Planes - Trims a curve with many oriented planes.
- Bisect Curve Corners - Bisects all corners of a curve at its vertices.
- Curve is Planar within Tolerance - Checks if a curve is planar within a given tolerance.
- Document Angle Tolerance - Retrieves the active document’s angle tolerance.
- Document Tolerance - Retrieves the active document’s absolute tolerance.
- Document Units - Retrieves the active document’s unit system.
- Group Document Objects - Groups referenced objects within the active document.
- Print View to PDF - Prints a specified view to PDF. Work In Progress to improve print options.
- Rename Block - Renames a block within the active document.
- Select in Document - Selects a referenced object in the active document.
- View Capture - Capture a specified view to a file.
- Find All Items - Returns the index of all items matching an item being searched for in a list. Like the Member Index component, but works with all basic grasshopper data types including geometry.
- Null Item - Returns single or multiple null items.
- Record Data - Records data over time. Grafts and maintains tree structure.
- Remove First Item - Removes the first item from a list.
- Remove Last Item - Removes the last item from a list.
- Replace Text List - A list compatible function for finding and replacing text fragments in a string.
- Text Regex Split - Splits text with a text pattern.
- Are Planes Parallel - Checks if two planes are parallel.
- Are Vectors Parallel - Checks if two vectors are parallel.
- Co-Planar - Checks if two planes are co-planar.
- Fast Mesh-Ray Intersect - Mesh-ray intersect with bounding box check to exclude computing intersections on meshes with no intersection points. Multi-threaded per list of rays. Work in progress to improve calculation speeds.
- Sort Points Polar - Sorts points in a plane by polar angle.