This plugin works both as a Spline Generator and object instancer.
Creates or uses a 2D spline-defined area and fills it with circles or rectangle splines. It offers the opportunity to replace those circles or rectangles with any other object.
An additional functionality polygon areas can be used to fit circles and later replace them with other objects.
Provides:
4 shape areas to inscribe 3 types of shapes
Circle - A circular bounding area
Square - A rectangular bounding area
Spline - A link to a generic spline (must be closed and all points on the XZ plane)
Polygon - A link to a mesh or spline object. Will inscribe shapes in center of polygons, on vertices positions or on segments of splines.
Circle - Circles will be created from a "seed" object provided as a child of the generator. They will be packed on the selected Shape using one of 4 circle packing algorithms.
Square - Squares will be created from a "seed" object provided as a child of the generator. They will be packed on the selected Shape using a square packing algorithm.
Object - Objects will be treated as circles and packed using one of 4 available circle packing methods. If the Square Fit option is enabled the objects will be packed using the Square packing algorithm.
Circle Packing Algorithms:
Radial - Increasing Iterations will add concentric rings of circles around the seed object radially. Jitter will randomly offset the rotation of the rings.
Poisson Disk - Will pack a number of circles around the seed object in a way that the distance between their centers will never exceed the Min Distance. This creates circles that have similar size.
Hierarchical - Creates a grid of decreasing-sized circles.
Front-Growing - The slowest of all methods. Will generate circles at most double the radius of the seed object if available space allows it. Each iteration adds circles around the ones from the previous iteration.
Square Packing Algorithm - Will spawn squares at random points in the available area and grow them until they touch an other square or shrink them if they already intersect.
Additional Fill Iterations - An option that will add additional random sized circles or squares in the available area.
The Polygon Shape is intended to work mostly with circular-based or spherical objects. By default will inscribe shapes in Quad or Tri polygons. Ellipsis will stretch objects to fit in non-square quad polygons. N-gons are not supported.
Vertex Mode - Will place circles or objects on Vertices instead of polygons.
This is intended to be used on open (non-manifold) flat surfaces. Special handling is provided for plane-like surfaces (open surfaces with 4 corners).
If the source object is a spline then the Vertex Mode should be enabled. Each shape will be fitted on one segment as if it were a sphere. If the Ellipsis is enabled the object will stretch to occupy the spline segment. In this context Square Fit if enabled will circumscribe the bounding box of the object to the sphere instead of inscribing it.
Limitations
Mesh children of the generator will persist and not hide from viewport.
This isn't a Cloner-like generator. Only one child will populate a distribution.
Splines need to be under a Connect Object and that be fed as a Source Object for Polygon Packing.
Do you want to contribute to the development of this plugin? If yes, contact me.