Lesson 5.1Lesson 5.1 · Attractors, Fields & Patterns
Attractor Logic
Distance to a point or curve, remapped, driving size, rotation and height
One movable point, and the whole facade responds - this is the parametric move everyone recognises.
That famous look - openings that swell toward a corner, louvres that pivot to face a doorway, tiles that taper to a skylight - is almost always one thing: an attractor. A point or curve whose distance to every element is measured and turned into a number that drives size, rotation or height.
The drama hides a plain recipe: measure distance, remap it into a useful range, feed it to a parameter. Learn that chain once and you can make almost any design feel like it is reading the space around it - and re-solve the entire composition by dragging a single point.
Measure -> remap -> drive. There is no 'Attractor' button; you build it. Reverse the domain to flip it.
The single most iconic move in parametric design
If you have ever seen a facade whose openings swell toward a corner, a screen whose perforations bloom around a doorway, or a roof of tiles that taper toward a skylight, you have seen an attractor at work. It is the move that makes parametric geometry look like it is responding to something - and underneath the drama it is almost embarrassingly simple.
An attractor is just a piece of reference geometry - most often a point, sometimes a curve - whose distance to every element of your design is measured and then used to drive a parameter. Close to the attractor, elements behave one way; far from it, another. The attractor itself draws nothing. It is a source of influence, a way of turning a spatial relationship ("how near am I to that spot?") into a number you can plug into size, rotation, height, spacing or colour.
The reason it feels expressive is that it couples the whole design to a single, movable idea. Drag the attractor point and the entire population re-solves at once, coherently, because every element is asking the same question about its own distance. You are not decorating - you are declaring a field of intent and letting the geometry read it.
Attractor draws nothing. It is a source of influence, not a shape.
Distance, then remap: the pipeline that never changes
Every attractor effect is the same three-step recipe, and once you can see it you can build a hundred variations. Step one: measure distance. For a point attractor you use the Distance component (Vector tab) between each element's location and the attractor point; for a curve you use Curve Closest Point, which returns the distance to the nearest spot on the curve. You now have a list of distances, one per element - small near the attractor, large far away.
Step two: remap. Raw distances are in model units and could be anything from 0 to 40 metres - useless as a radius. Remap Numbers (Math > Domain) rescales that list from its source domain (the actual min-to-max range, found automatically with Bounds) into a target domain you choose - say 3 to 16 for a radius, or 0 to 90 for a rotation angle. Remap is the hinge of the whole technique: it translates "how far" into "how much".
Step three: drive a parameter. Feed the remapped list into whatever you want to control - the Circle radius, a Rotate angle, an Extrude distance. Because the list order is preserved throughout, each element gets exactly its own value. Reverse the target domain (16 to 3 instead of 3 to 16) and the effect inverts: large near the attractor becomes small near it. That one swap is worth remembering.
Distance -> Remap Numbers -> parameter. Learn this chain and half of Module 5 is done.
Graph Mapper: shaping how the influence falls off
A plain remap is linear: influence fades at a constant rate with distance. That is often too even, too mechanical. The Graph Mapper (Params > Input) is the tool that gives an attractor its character. It takes a normalised 0-to-1 value and passes it through an editable curve before it drives the parameter - so you can decide, visually, how the falloff behaves.
Right-click the Graph Mapper and you can choose a Bezier curve to ease the transition (change concentrated near the attractor, calm far away), a Gaussian to create a soft band of influence at a set distance, a Sine for rhythmic ripples, or a Perlin graph for a noisy edge. The distances stay the same; the feel changes completely. A gaussian falloff, for instance, makes elements react only within a halo around the attractor and ignore it elsewhere - very different from a linear ramp that touches everything.
This is the difference between an attractor that looks like a spreadsheet and one that looks designed. Two definitions can be wired identically and produce wildly different facades purely because one routes its distances through a considered curve. Treat the Graph Mapper as where the aesthetic of the response lives, not as an afterthought.
A practical tip: before the Graph Mapper you usually want distances normalised to 0-1 (remap the raw distances into a 0-to-1 domain first), because the Graph Mapper expects and returns values in that range. After it, remap the shaped 0-1 value out to your real target range - radius, angle or height. That sandwich - normalise, shape, scale - is the reusable idiom, and once it is in your hands you can restyle any attractor's behaviour by editing one curve rather than rewiring anything.
One field, many expressions
The quiet power of the attractor is that the same distance field can drive completely different properties - and you choose which. Plug the remapped distances into a radius and you get a facade of growing and shrinking holes. Plug them into a rotation and you get a field of louvres or fins that pivot to face a point - the classic "kinetic" look, achieved with pure geometry. Plug them into an extrusion or a Z-move and you get a rippling relief surface. Plug them into a colour or material index and you get a gradient of tone.
Because it is one field feeding many outputs, you can also combine effects: let distance drive both size and rotation, so panels near the attractor are large and square-on while distant ones are small and turned. Layering two or three attractor-driven properties is what gives mature parametric facades their richness - it never looks like a single trick because it is not one.
Critically, the attractor stays live. Because everything descends from that one point, moving it in Rhino updates the entire composition in real time. You can literally slide the attractor around the elevation and watch the design breathe, choosing the position that best answers the real brief - the entrance, the best view, the harsh western sun.
There is a subtle craft point about which property carries the idea. Size reads as emphasis and porosity; rotation reads as movement and direction; height or extrusion reads as depth and shadow; colour reads as zoning. A thoughtful designer picks the property whose visual language matches the intent instead of defaulting to radius every time. Ask what the attractor is saying - look here, flow this way, open up toward the light - and let that choose the parameter. The pipeline is identical; only the last wire changes, and that single decision is often what separates a considered facade from a generic one.
Multiple attractors, curve attractors, and honest limits
Real projects rarely have one focal point. To use several attractors, measure each element's distance to every attractor and then combine - most often by taking the minimum distance (nearest attractor wins) with a Sort or the Minimum component, or by summing the influences for a blended field. Two entrances, three skylights, a run of windows to emphasise - all become attractors whose fields overlap. A curve attractor (via Curve Closest Point) lets a whole edge, a circulation path, or a building outline exert influence, which is often more architecturally meaningful than a lone point.
A few honest cautions. An attractor is a visual logic, not an environmental one: a facade that looks like it responds to the sun is not the same as one that has been shading-analysed (that is Module 9's job with Ladybug). Do not oversell an attractor as performance. Watch your target domains, too - let a radius remap dip below zero and you will get inverted or failed geometry, so clamp the range sensibly. And resist the urge to pile on ten attractors; two or three, well placed, read as intent, while a dozen read as mud.
Used with restraint, though, the attractor is the most reliable way to make a parametric design feel alive and reasoned at the same time - a spatial relationship made visible.
Distance
Vector component returning the distance between two points
The starting measurement for a point attractor - one distance per element, in model units.
Curve Closest Point
Analysis component: nearest point on a curve and its distance
Turns a whole curve or edge into an attractor, not just a single point.
Remap Numbers
Domain component rescaling values from a source range to a target range
The hinge of the technique - converts raw distances into a radius, angle or height. Pair with Bounds to find the source domain.
Graph Mapper
Input component that bends a 0-1 value through an editable curve
Where the falloff gets its character: bezier, gaussian, sine, perlin. Purely aesthetic, hugely important.
Workshop - build an attractor facade from scratch
You will build the canonical attractor definition end to end: a grid of circles on a wall whose radii respond to a point you can drag in Rhino. Everything in this module reuses this skeleton.
Rhino + Grasshopper. Core components: Divide Surface, Distance, Bounds, Remap Numbers, Construct Domain, Graph Mapper, Circle, Rotate.
Goal: a grid of circles whose size is driven by distance to a movable point Inputs: a rectangular surface (your wall), one Rhino point (the attractor) Time: ~35 minutes
- 1Make the field: reference your wall surface, then use Divide Surface (or a Rectangular grid) to get a tidy grid of points across it. These are your element centres.
- 2Reference one Rhino point as the attractor and wire a Distance component between it and the grid points. Panel the output to confirm you get one distance per point, small near the attractor.
- 3Add Bounds on the distance list to get its source domain, then Remap Numbers: source = that domain, target = a Construct Domain of, say, 1.5 to 8 (your radius range).
- 4Feed the grid points and the remapped list into a Circle component (radius input). You should now see circles that grow and shrink with distance - drag the attractor point in Rhino and watch them re-solve.
- 5Now make it yours: insert a Graph Mapper (set to bezier or gaussian) between the remap and the radius, and reverse the target domain to flip the effect. Then duplicate the chain to also drive a Rotate on square panels instead of circles.
You’ll walk away with
A live Grasshopper definition plus three saved screenshots of the same wall with the attractor in different positions - and one variant where distance drives rotation instead of size. A one-line note on which parameter you chose to drive, and why.
Three altitudes on the same idea
Read the band that fits you — or all three.
For you the attractor is a way to make a facade argue its own logic. Anchor attractors to the things that actually matter - the entrance, the best view, the worst solar exposure - and let opening size or fin rotation follow. The elevation stops being arbitrary pattern and starts reading as a reasoned response you can defend in a review, and you can retune it live in front of the client.
Attractors are how a screen, ceiling or feature wall gets a focal point. A perforated partition whose holes bloom around a niche, a slatted ceiling that opens over a dining table, a tiled backsplash that graduates toward the hob - all are one attractor plus a remap. It gives repetition a reason, and it exports straight to a CNC or laser cutter as a clean, variable pattern.
Master this one lesson and your portfolio instantly looks parametric. The attractor is the single most recognisable move, and reviewers know it on sight. Build the Distance-Remap-parameter chain until it is muscle memory, then show the same field driving size in one image and rotation in the next - that demonstrates you understand the logic, not just a downloaded definition.
“An attractor is a special Grasshopper component you drop in to make things responsive.”
Do it yourself
Reason through the pipeline before you wire it.
- 1Name the three steps of every attractor effect, in order.
- 2Which component turns a raw list of distances into a usable radius range, and what are its two domain inputs?
- 3How would you invert an effect so elements are largest near the attractor instead of far from it?
- 4What does the Graph Mapper change, given the distances stay the same?
- 5How do you attract to a whole curve or edge rather than a single point?
The one line to carry out
Peer-reviewed journals & authoritative standards
- 01Mode Lab - The Grasshopper Primer (Third Edition) — grasshopperprimer.com, 2020.
- 02Woodbury, R. - Elements of Parametric Design — Routledge, 2010.
- 03Grasshopper Docs - component reference — grasshopperdocs.com, 2026.
- 04Grasshopper - Algorithmic modeling for Rhino (official) — Robert McNeel & Associates, 2026.
An attractor is really a single, sharp source of influence. In the next lesson we generalise it: instead of one point measured by distance, we build continuous _fields_ - many charges merged into a smooth landscape of force and direction you can sample anywhere.
The author
Amogh N P
Architect, interior designer, and creative polymath. Studio Matrx began in his notebooks — his vision of design made honest, useful, and open to everyone. Its Academy is written and taught in his memory, and free, forever.
More about Amogh →