(by Brendan Webb)
Pebbles is a flexible, unit – based, tiling plugin for Grasshopper, which functions to either AABB patterns of tiles, or to create rule-based randomizations of tiles
Support Email

Pebbles is a flexible, unit – based, tiling plugin for Grasshopper, which functions to either AABB patterns of tiles, or to create rule-based randomizations of tiles


BASIC FUNCTIONALITY: (The example files has everything setup for use)

Using this plugin begins with creating the individual units (Pattern Tile, or the Aggregation Tile) that will comprise the pattern, and then connecting these units to their respective maker component (Pattern Maker, or the Aggregation Maker). Within the aggregation function, there are parameters that you set in both the Aggregation Tile and the Aggregation Maker components that governs how the Aggregation Maker distributes the tiles across the closed, planar curve that you set as the tiling boundary. Within the regular pattern function, the two inputs that govern the distribution of tiles are both located in the Pattern Maker component. Once the Maker component computes the inputs that you set, the output is named as Pebbles. From there it is possible to adjust certain parameters of the pattern using the suite’s “Operators” sub-category, or to produce various construction/documentation outputs using the suite’s “Cut Sheet” sub-category. Storing the patterns the user creates in Pebbles is easy using the Tile Storage component – this requires a simple internalization of the data from the connection between a Pebbles output and the Tile Storage input. Instagram: @pebbles_3d (has content related to building patterns using Pebbles)

The name Pebbles, and the outputs labeled as Pebbles, is a reflection of the multi – unit/material combinations that are characteristic of the software. 


  • Brendan Webb (Developer)
  • Noreen Saeed (Programmer/Developer)


  1. You must connect the Aggregation/Pattern Maker components to the Visualizer component in order to see the pattern you created – see example files/images below on how to visualize either color swatches or external images
  2. In the Pattern Maker component, the list length of the Pattern input and the list length of the Offsets input must match
  3. If you are using images (ie. ceramic tiles) as opposed to textures for external image references, the size ratio of the tile you create must match the size ratio of the image, and the tile must not be extruded, or distortion of the image will occur.
  4. It is possible to use more than one operator after the initial pattern is created (ie. Trimmer and Gaps)- just connect the Pebbles outputs and inputs 
  5. The Schematic component and Cutoffs component under the "Cut Sheet" subcategory are recognized to be more theoretical than practical.
  6. For more information on the rules/parameters that govern the Aggregations, see:
  7. For more information on how to make AABB Patterns, see

Subcategory Component List:


  • Trimmer - This creates spaces of interruption in the aggregation or pattern (ie. windows, vents etc...)
  • Gaps – Increases the gaps between two rows other independent of the set gaps between tiles
  • Attractor – Changes tile of pattern using curve or point attractors

Cut Sheet

  • Curve Dim - Extracts dimensions of angular curves
  • Cutoffs - Extracts data of tiles that were trimmed from the bounding curve
  • Schematic Output - Extracts the tile data of the pattern in a the form: Tile Name(Tile Length)
  • Tile Plan - Output of tile data in plan view
  • Tile Quantity - Output of the number of tiles of each type


  • Image Importer - Allows external file paths to provide textures for the tiles
  • Visualizer - Allows for the visualization of tiles (must connect to either the Custom Preview or Custom Preview Material (Human))
  • Tile Storage - Save your patterns by internalizing data


Currently known imperfections that are being looked at for fixes:

  1. The change in the color/material of a tiles through use of the Attractor component will not appear in any of the constructional outputs.
  2. If you rotate a pattern that was altered using the Gaps component, there will be an extra gap at the edge of the bounding curve that is equal to the difference between the gap in a standard row and the altered row.
  3. The Curve Dimension component (which is also embedded within the Cutoff component) will only provide accurate dimensions on linear curves on XY plane

Please email me with any additional bugs and I will to get to them as soon as possible

Go to IG page for the actual dimensions of bricks needed to make brick patterns


Andrew Heumann: The Human plugin is required to visualize image paths/textures on tiles. It is also required to bake either color swatches or image paths/textures on to the tiles (this baking script is viewable in the Example Files) - Thank you

An additional thank you to the many people on the Grasshopper Forum who has helped me (Brendan) understand Grasshopper better free of charge over the last two years. I will still be asking questions in the near future :)