Barray — Procedural Arrays For Blender
Supercharge your workflow with BArray, the ultimate tool for creating procedural arrays in Blender.
Instead of dealing with complex modifier stacks, you can now draw, paint, and guide arrays intuitively onto any mesh surface.
Key Features
Draw Your Arrays
Simply draw a stroke with your mouse to create an array that follows the path.
Conform to Any Surface
Intelligently wraps your arrays around complex and organic shapes with incredible precision.
Powerful Deformation
Use the built-in Smart Deform, Lattice, and Shrinkwrap tools to seamlessly blend your arrays with the target surface.
Boolean Operations
Easily merge or subtract arrays with the main object.
Deep Customization
Fine-tune every detail with advanced controls for spacing, scale, rotation, and randomization.
All Features
I. Drawing & Creation
This is the initial step where you create your arrays. The "Create" tab is dedicated to this workflow.
-
Multi-Object Support:
- You can use a list of multiple source objects to create varied arrays.
- Usage Scenario: Create a forest path lined with a mix of different trees, rocks, and bushes, all drawn in a single stroke.
-
Drawing Methods:
- Drag Draw: The primary method. Click and drag your mouse to draw a freehand path. The array is generated along this stroke.
-
Linear Draw: Click to place individual points. The addon creates a precise, straight-line path between them, automatically finding the shortest path on a surface.
- Usage Scenario: Perfectly outlining the panel lines on a sci-fi spaceship hull with rivets.
- Circle Draw: An interactive tool to draw a perfect circle. You click to set the center and drag to define the radius.
-
Curve Draw (Free Space): For non-surface arrays, you can create an editable Bézier curve. After shaping it, you apply it to generate the array.
- Usage Scenario: Creating a swirling vortex of magical particles or the flowing trail of a rocket.
-
Path Generation Modes:
- On Surface: The default mode, where drawn strokes are projected onto the selected target mesh.
- Free Draw: By unchecking "Draw only to Surfaces," you can draw paths in 3D space, independent of any object.
-
Wrapper (Circular Path): A special drawing mode that takes your rough circular stroke and calculates a perfect, clean circular path on the surface of the target mesh.
- Usage Scenario: Placing a perfect ring of bolts around a circular hatch or creating a crown on a character's head.
- Advanced Wrapper: A more robust version of the Wrapper that uses a raycasting method, making it more effective on complex or low-poly surfaces.
-
Creation-Time Options:
- Symmetrical Drawing (Mirror): Draw on one side of your model, and have the stroke mirrored across the local X, Y, or Z axes in real-time.
- Line Corrector: Automatically smooths your drawn lines to correct for shaky mouse movements, with adjustable strength.
-
Include Children: If your source object has a hierarchy (child objects), the entire hierarchy will be copied for each instance.
- Example: Your source is a lamp post with a separate light object as a child. Every instance in the array will be a complete lamp post with its own light.
- Prevent Overlap: Avoids creating new arrays on top of objects from existing BArray collections.
II. Editing & Refinement
Once an array is created, it exists as a "BArray Collection." The "Edit" tab allows for non-destructive modification of every aspect of these collections.
-
Collection Management:
- The addon UI lists all BArray collections associated with your target object.
- You can select any collection to edit its properties, toggle its visibility, or delete it.
-
Quick Actions:
- Flip Path: Reverses the direction of the array along the path (swaps start and end).
- Invert Normals: Flips the orientation of all instances, making them face "inward" instead of "outward" from the surface.
-
Transform Controls:
-
Spacing Modes:
- Default: Simple distance-based spacing.
- Difference: Spaces objects based on their bounding box size plus a specified gap, ensuring they don't overlap.
- Equidistant: Distributes a set number of objects evenly along a closed path.
- Incremental: Progressively increases the spacing along the array.
- Columns: Create grid-like arrays by adding columns offset from the original path. You can control spacing and choose if columns are identical or have unique randomization.
-
Rotation & Alignment:
- Forward Axis: Define which axis of your source object (-X, +Y, etc.) should point along the path.
- Align to Stroke: Aligns the object's forward axis to the direction you drew the path.
- Rotate to Target: Overrides other settings to make every instance face a specific target object.
- Scale: Control uniform or non-uniform scale. Includes a "Protect Scale" option to force instances to match the source object's scale perfectly.
- Per-Object / Per-Column Settings: You can override the main transform settings (scale, rotation, offset) for each source object type individually or for each column individually.
-
Spacing Modes:
-
Distribution (for multiple source objects):
- Pattern: Arranges objects in a repeating sequence (e.g., A, B, B, A, B, B...).
- Ratio: Divides the path by percentage. For example, the first 50% is Object A, the next 50% is Object B.
- Random: Places objects randomly based on assigned weights.
-
Randomization Engine:
- Random Seed: Allows for repeatable "random" results.
- Simple Mode: Adjust randomization with simple percentage-based sliders.
- Advanced Mode: Provides fine-tuned control with Min/Max ranges for every property on every axis.
- Randomizable Properties: Spacing, Distance from surface, Rotation (per-axis), and Scale (uniform or per-axis).
-
Mirroring:
- Non-destructively mirror the entire array collection across the target's X, Y, or Z axes.
- Includes options to mirror transform offsets for true symmetry.
- Apply Mirrors: A function to bake the mirrored instances into new, separate, and editable BArray collections.
III. Deformation
These features, found in the "Deform" sub-tab, alter the shape and placement of the array instances in advanced ways.
-
Smart Deform:
- A powerful Geometry Nodes-based system that wraps or "conforms" the mesh of each instance to the curvature of the target surface.
- Usage Scenario: Making a decal or cloth patch bend perfectly across a character's shoulder armor.
- Includes controls for offset, grid resolution, and smoothing.
-
Lattice Deform:
- Creates an individual lattice for each instance in the array, allowing for complex, non-uniform deformations.
- The lattices themselves can be shrinkwrapped to the target surface.
- Usage Scenario: Creating stylized scales on a dragon that bend and stretch with the body's curves.
-
Shrinkwrap:
- A post-effect that ensures all array objects sit perfectly on the target surface with no gaps.
- Cull Inside: An option to automatically delete any faces that end up inside the target mesh after shrinkwrapping.
-
Procedural Path Curve:
- Generates a visible, renderable curve along the array's path.
- This curve has its own extensive set of properties for thickness, resolution, beveling (round, object, or custom profile), materials, and more.
- Usage Scenario: Drawing a path of footsteps and having a visible trail automatically generated between them.
IV. Finalizing & Utilities
The "Finalize" tab provides destructive operations to convert your procedural arrays into standard Blender geometry for rigging, sculpting, or export.
-
Conversion & Baking:
- Apply Lattice: Makes the lattice deformation permanent and removes the lattice objects.
- Convert Curve to Mesh: Converts the procedural path curve into a standard, editable mesh object.
- Join Arrays: Applies all modifiers on the instances and joins them into a single mesh object, deleting the original BArray collection.
- Join and Remesh: Joins all instances and then recalculates their topology using either Voxel or Quad remeshing. This is ideal for creating a single, clean mesh for sculpting.
-
Boolean Operations:
- Union: Merges the array objects with the target mesh.
- Subtract: Uses the array objects to cut into the target mesh.
- Usage Scenario: Quickly adding a pattern of greebles to a spaceship hull (Union) or creating a series of bullet holes (Subtract).
-
Physics Simulation:
- Physics Wrap: Applies rigid body physics to all array objects, letting them settle naturally onto the target surface under gravity.
- Link for Physics Chain: Creates constraints between adjacent objects in an array so they behave like a chain or rope during simulation instead of scattering.
- Usage Scenario: Placing a chain on the ground and having it drape realistically over other objects.
-
Batch Operations:
- Duplicate: Select and duplicate one or more BArray collections with all their settings intact.
- Smart Merge: Select multiple BArray collections and merge them into one. A wizard helps you resolve any conflicting settings between them.
-
Parenting:
- Easily parent all objects in a collection to the target mesh, or clear the parent.
- Parent all array objects to the procedural curve, allowing you to animate the entire array by moving the curve.
-
Addon Utilities:
- Update Checker: A footer in the UI shows the current version and notifies you if a new version is available on the marketplace.
- Documentation Access: A button to directly open the addon's user guide PDF.
BArray Addon + Offline Documentation PDF