Morphemeris DocsBeta

Aspect Patterns

Multi-body configurations — T-squares, grand trines, yods, kites, grand crosses, mystic rectangles, and stellia — and how the API decides what counts.

Aspect Patterns

Individual aspects describe pairs. A pattern is a closed figure of three or more bodies whose aspects lock together, and astrologers read it as a single unit: a T-square is not "an opposition and two squares" but a specific kind of tension with a release point at its apex.

The API detects seven of them, via /v1/patterns or the patterns=true flag on any chart endpoint.

The seven patterns

PatternGeometryMembersFocal
T-squareTwo bodies in opposition, both square a third3The apex (the squared body)
Grand trineThree bodies each trine the other two — an equilateral triangle3
Grand crossTwo oppositions at right angles: four bodies, four squares4
YodTwo bodies in sextile, both quincunx a third — the "finger of God"3The apex (the body both quincunxes point at)
KiteA grand trine plus a fourth body opposing one vertex and sextile the other two4The fourth body
Mystic rectangleTwo oppositions whose four sides alternate trine and sextile4
StelliumThree or more bodies bunched together3+

A stellium's grouping rule is configurable: same zodiac sign (the default and the traditional definition), same house (needs a location), or a conjunction chain — bodies linked by conjunction aspects, which can straddle a sign boundary.

How detection works, and why it matters

The API assembles patterns from the aspects it has already detected. It never goes back to the raw longitudes and asks "are these three bodies roughly 120° apart?". This has three consequences you can rely on:

A pattern can only use aspect types you asked for. If the request's aspects list has no quincunx, no yod can appear, because a yod is made of quincunxes. The default aspect set (the seven major aspects) contains everything the seven patterns need; if you narrow it and then filter for a pattern that can no longer form, the response says so in warnings instead of returning an empty list that looks like "no yod today".

The orbs are the orbs you set. Each pattern's aspects are the chart's own aspect records, max_orb included. There is no separate, tighter "pattern orb" — if a square is in the chart, it is available to a T-square. The pattern's tightness is simply the widest of its forming orbs, so you can apply your own threshold afterwards.

Bigger figures contain smaller ones, and both are reported. A kite always contains a grand trine; a grand cross contains four T-squares; a mystic rectangle has oppositions but no squares, so it contains no T-square. The API reports every figure it finds and leaves the "only show me the largest" decision to you, because which one matters depends on what you are doing.

Reading the output

Every pattern record has the same shape:

  • pattern — the type
  • bodies — the members, in the chart's body order, with the focal body last if there is one
  • focal — the apex or tail, for the three patterns that have one
  • aspects — the forming aspects
  • tightness — the widest forming orb, or a stellium's span in degrees

Two T-squares that share an opposition but have different apexes are two records. Three bodies in Capricorn with the Sun at 24° and Pluto at 29° are one stellium whose tightness is the arc from its first member to its last.

An example worth knowing

The full moon of 25 January 2024 (18:00 UTC) had the Sun at 5° Aquarius opposite the Moon at 5° Leo, with Jupiter at 6° Taurus square both. That is a textbook T-square with Jupiter at the apex, and it is the example used throughout the reference page. Pluto, conjunct the Sun at 0° Aquarius, is also opposed by the Moon and squared by Jupiter — so the same moment yields a second T-square, Moon–Pluto–Jupiter, a little wider. Both are reported.