CH NEO-ZÜRICH EDITION
WEATHER · ACID RAIN 16°C
BLEND OF THE DAY · 07/ROGUE
EST. 2027
THE AEC CYBER MORNING NEWS

PAZ Kaffi

DESIGN · DEMOLITION · CAFFEINE · DISPATCH
EDITION 0825 · 25 August 2026
BROADCAST 04:42 CET
2,400 BROADSHEETS PRINTED
READ TIME · 47 MIN
Reciprocal Diagrams in Kangaroo: Read a Structure's Forces as a Second Shape
ACADEMY
FRAME · 06:55
25-08-2026

Reciprocal Diagrams in Kangaroo: Read a Structure's Forces as a Second Shape

Dan Piker's Kangaroo-examples repo turns a relaxed mesh into a second force-diagram shape. A hands-on Grasshopper tutorial for architects and engineers.

Signal. Dan Piker’s public Kangaroo-examples repository — 242 stars, 54 forks, 29 commits of Grasshopper definitions — is the cleanest on-ramp there is to a 157-year-old idea that most working offices never actually run: the reciprocal force diagram. In a recent write-up on his Space Symmetry Structure blog, Piker shows that once Kangaroo has relaxed a mesh into static equilibrium, you can rearrange the same edges into a second figure whose geometry is the internal force field. The structure and its forces become two shapes you can hold side by side.

System. This is James Clerk Maxwell’s 1869 paper On Reciprocal Figures, Frames and Diagrams of Forces, running live in a mesh solver. Maxwell’s rule, quoted straight from that paper: draw lines parallel and proportional to the forces at a node, each beginning at the extremity of the last, and if the node is in equilibrium the polygon closes. Philippe Block and John Ochsendorf carried that into architecture with Thrust Network Analysis in 2007, where the planar reciprocal network encodes the horizontal equilibrium of a masonry vault’s nodes. Piker’s move is subtler and, for a learner, more revealing: he does not use the reciprocal as an input to form-finding. He generates the equilibrium first with dynamic relaxation, then derives the force diagram after — as a visualisation. The trick that makes it trivial: model every edge as a zero-rest-length spring of uniform stiffness. Spring force is proportional to extension over rest length; set rest length to zero and the edge length already is the force. No scaling step. Those are constant force-density elements, and the reciprocal falls out for free.

←TODAY: A 242-star Grasshopper repo lets any architect watch internal forces resolve into a second, readable geometry. →3012: Structures self-report their load paths as living diagrams; the drawing and the analysis are one file. Fulcrum: Equilibrium and its force field are the same information wearing two shapes — see both and the black box opens.

Street. Most desks treat form-finding as a magic box: geometry in, pretty shell out, FE package for the numbers. The reciprocal diagram is the antidote — it makes the force distribution legible as shape before you ever touch a solver report. Where an edge is short in the force diagram, the member is lightly loaded; where it is long, it is working hard. You are reading the structure’s stress the way you read a plan. For the graphic-statics lineage behind this, Piker points readers to Simon Greenwold’s Active Statics and ETH Zurich’s eQuilibrium site.

The Tool: Kangaroo-examples (github.com/Dan-Piker/Kangaroo-examples) is Piker’s own set of reference Grasshopper definitions for Kangaroo, the physics-based form-finding plugin bundled with Rhino/Grasshopper. The 29-commit repo’s folders map to the whole discipline — catenary_structures, gridshells, shells, tensile_structures, grids_and_mesh_optimization. It is worth an architect’s afternoon because it is the shortest path from “I’ve heard of dynamic relaxation” to a relaxed shell moving under your own cursor.

Setup:

# Prereqs: Rhino 7+ with Grasshopper, Kangaroo2 (ships with Rhino 6+)
git clone https://github.com/Dan-Piker/Kangaroo-examples.git
cd Kangaroo-examples
# In Grasshopper: File > Open >
#   catenary_structures/HangingChainModel.gh
# Toggle the Kangaroo 'Simulation Reset/Run' boolean to True.
# The chain-net drops, relaxes, and settles into a funicular curve.

First steps:

  1. Open gridshells/ and load a gridshell definition. Toggle the solver on; watch the flat grid sag into a hanging net, then note where it is inverted in Z to become pure compression.
  2. Anchor points are Grasshopper inputs — drag one corner point and the whole equilibrium re-solves live. That interactivity is the lesson.
  3. Open a definition under tensile_structures/. Relax a mesh with a non-planar boundary and you get a tension net in space — the case where, as Piker notes, the reciprocal diagram can be built in full 3D without projecting to a plane, because the only forces live in the edges themselves.

Atelier: For a Swiss studio doing a Wettbewerb roof or a timber gridshell, this is the difference between borrowing a hero image and owning the load logic. The Monday move: clone Kangaroo-examples, open one gridshells definition, and relax your own competition footprint boundary into a compression shell before the engineer’s first meeting — walk in with the funicular form and the anchor reactions already in your hand, not a mood board. It reframes the studio from consumer of analysis to author of it.

Hack: Turn a relaxed mesh into a force map without any solver report. Because uniform zero-rest-length springs make edge length equal to axial force, one GhPython line per edge recovers the number — colour by it and the load path is visible.

import Rhino.Geometry as rg
forces = [e.From.DistanceTo(e.To) for e in edges]   # length == force
fmax = max(forces)
weights = [f / fmax for f in forces]               # 0..1 for a heat gradient
heavy = [e for e, w in zip(edges, weights) if w > 0.8]  # the members working hardest

Move. The deeper thread runs past statics. Piker points at Pinkall and Polthier’s cotan weighting scheme for discrete minimal surfaces, and at the Bonnet rotations that morph a tension net through its reciprocal — the same mathematics behind adjoint families of minimal surfaces. His remeshing tools lean on the Plankton half-edge mesh library he built with Will Pearson. The geometry-processing wave he cites is concrete: De Goes, Alliez, Owhadi and Desbrun’s On the Equilibrium of Simplicial Masonry Structures; Rippmann, Lachauer and Block’s Interactive Vault Design; and the reference volume Shell Structures for Architecture: Form Finding and Optimization, which Piker reviewed. If you want the canonical structural-geometry stack next to it, the Block Research Group’s open tools (github.com/BlockResearchGroup) are the reference implementation of thrust-network thinking. Clone one repo, relax one mesh, and read the forces as a shape.

Learn-it:

Source: spacesymmetrystructure.wordpress.com

FILED FROM
CO-SIGNERS
PAZ Academy
CONFIDENCE
HIGH
REPRINTS
© PAZ - PARAMETRIC ACADEMY ZURICH · ALL RIGHTS RESERVED

SOURCE ·

PAZ Kaffi · multidisciplinary editorial, led by PAZ Academy

⚑ REPORT AN ERROR · SUBMIT A CORRECTION
◂ BACK TO FRONT PAGE · PAZ KAFFI

© 2026 PAZ Academy.