SkillAgentSearch skills...

CurveArray

No description available

Install / Use

/learn @jobweek/CurveArray
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

A little preface

I spent over 7 months of daily work on the 4.0 update, essentially redesigning Curve Array and Magic Curve modules from scratch. I have decided that I will make the Curve Array free, for all the support of the community. However, if you'd like to say thank you, you can either buy it for price you think is fair at:

Gumroad(https://jobweek.gumroad.com/l/curve-array-pro)
Blender Market(https://blendermarket.com/products/curvearraypro--magiccurve)

Thanks for all, and have a great time using it!

Curve Array

Image

Curve Array is designed as a flexible tool for creating arrays along a curve. Curve Array does not merge array objects, because it is not a modifier, and it does not distort the object mesh.

What's the difference to existing methods in bender?

In version 4.0, Curve Array received a complete overhaul of its basic working algorithms. Previously based on a bundle of two Blender modifiers (Array + Curve), Curve Array now has its own core curve representation, allowing it to add unique features.

Curve Array VS Geometry Nodes and Array+Curve modifiers:

Perception of the path

Curve Array works with all curve splines.

Video

Blender Array + Curve modifiers ignore other curve splines after the first one.

Video

Geometry Nodes, conversely treats all curve splines as independent curves, creating an array with specified parameters for each spline, rather than the entire curve as a whole.

Video

Also, Curve Array allows you to control the smoothness of curve normals, curve cyclicity, and many other small improvements, for example, if you create a circle, Blender will not consider the first point as the start, but the last one. And if you toggle cyclic, Blender will suddenly start taking the first point as the beginning, as it should be. The curve array is free of these oddities. All this is made possible by the new Path Data Core created in version 4.0.

Usability

As a fact, to create a simple array, you need to make three mouse clicks. Also, unlike Blender modifiers or Geometry Nodes, you don't need to align the curve and reference object before creating the array, Curve Array will take them correctly wherever they are!

Preservation of objects

Unlike Geometry Nodex and Blender Array+Curve modifiers, Curve Array keeps each object individual.

Video

Results:

Curve Array is not trying to compete with Geometry Nodes or Array + Curve modifiers. On the contrary, it takes its place as a tool for spacing objects, while Geometry Nodes has no equal in creating scenarios where objects behave like particles, and Curve + Array modifiers are perfect when you need to create a deformed array.

Curve Editor

The Curve Editor exists to capture the current path. You can add only one object, and it must be a curve, otherwise you will get an error.

Video

Object Editor

Adding objects

You can add any number of objects to the Object Editor. They can be of any type: Mesh, Curve, empty, etc. Each added object will take its place in the Queue.

Video

By opening the Object Editor, we can edit the Queue. All objects in the Queue can be deleted, duplicated or moved.

Video

Also, all objects in the queue have their own settings:

Count

Count - the number of times the object is repeated in the queue. In case the object has random parameters (Ghost, or Transformation), they will be unique for each repetition.

Video

Ghost

Ghost - the probability that the object will fall into a special collection, which is created inside the main collection, where objects fall when a new array is created. This collection is hidden, and so are its objects, but you can easily retrieve them from it (Only if this is the final result, deleting and renaming objects from Curve Array collections will cause an error when you try to update the array). This allows you to select any number of objects from a particular place in the queue.

Video

Pivot

Pivot - the distance between Origin and Pivot, calculated automatically when you add an object. It is used in the Fill by Pivot algorithm. See Fill by Pivot for details.

Transform Editor

The Transform Editor allows you to set the parameters of random or progressive rotation, location, and scale for each Item of the Queue.

Video

Len

Len(Length) - the number of unique repetitions for the Queue.

Video

Random Group

Random Group - a group from which one random object will be selected at each iteration. You can create an empty group and then add objects to it. Or create a group immediately from a queue object.

The Count parameter is responsible for the chance of selecting an object.

Video

Array Settings

Random Seed

Random Seed - when you change this parameter you get different random generations (Random Groups or Random Transformation) you set in the Object Editor settings. Changing Random Seed can be quite a heavy operation (in case of objects with a lot of geometry), because Curve Array will delete all copies of objects and recreate them when you change this parameter.

Cloning Type

Clone type - has three options for creating duplicate objects.

Copy - simple duplication, each object of the array is independent of its reference. It can be slow in case of copying many objects with heavy geometry.

Semi Instance - the mesh of the duplicate will be an instance of the reference, but it will also copy the modifiers of the reference, which can slow down the scene, in cases of heavy-weight modifiers.

Full Instance - the lightest way. Just an instance of the reference mesh.

Video

Spacing Types

Spacing Types - the basic algorithms for spacing objects. At the moment there are 4 of them.

Fill by Count - evenly fills the path with the given number of objects.

Video

Fill by Offset - fills the path with the specified number of objects in a specified step (Step Offset).

Video

Fill by Size - fills the path with the specified number of objects based on their size along the selected axis. You can also adjust this ratio with the Size Offset parameter. This is a very heavy algorithm, it takes into account the rotation, scaling and position of each object, so use it carefully with objects that have a heavy mesh.

Video

Fill by Pivot - a completely new algorithm. It emulates the sliding of objects along a curve not just by origins, like other algorithms, but also by a second hinge called Pivot. All you have to do is give the distance from the first hinge (Orgigin), to the second hinge (Pivot). When you add a new object in the Object Editor, it automatically calculates the distance between the 3D Cursor and Origin, so you can simply place the cursor at the intended hinge and add the object.

Video

You also have the Step parameter available, this is the step between objects and here's how you can use it:

Video

Cyclic

Cyclic - a parameter that lets you decide if the curve is cyclic.

Video

Smooth Normals

Smooth Normals - the parameter that lets you decide if the normals will be smoothed or sharp.

Video

Start & End Offset

These parameters are available in all algorithms except Fill By Pivot. They actually shorten or lengthen the path by a given length.

Video

Consider Size

Consider Size - a parameter that allows you to automatically take an offset equal to the size of the object, so that the array does not exceed the limits of the path.

In the Fill By Count algorithm, it works from both ends, and in the Fill By Offset and Fill by Size algorithms, only from the beginning.

Video

Slide

Slide - a parameter that allows all objects in the array to slide along the curve. In all algorithms except Fill By Pivot, it does not affect the operation of the algorithm (number of objects, their visibility, etc.). It is as if it fixes the current state and only allows it to slide.

Video

Align Rotation

Align Rotation - a parameter that allows you to enable or disable the rotation of objects when aligning along the path.

Video

Rail Axis

Rail Axis - the axis along which the object will be tracked along the path.

This axis is not the local axis of the object, it is the axis of the world space. It allows you to rotate the reference object and get updates of the array objects.

[![Video](/documentation_resource

View on GitHub
GitHub Stars26
CategoryDevelopment
Updated9mo ago
Forks3

Languages

Python

Security Score

62/100

Audited on Jul 8, 2025

No findings