← All posts
13 min read

The Astronomy Behind Eternity

Eternity turns your family tree into a constellation. Each family member becomes a star. But when we started building, we made a decision that shaped everything: the stars wouldn't just look nice. They'd be astrophysically correct.

Every color, every animation, every subtle glow in the app traces back to real stellar physics. This post breaks down the science behind the design, and why that science makes the emotional experience stronger.

The HR Diagram Color System

The Hertzsprung-Russell diagram is the most fundamental chart in stellar classification. It maps stars by surface temperature and luminosity, and it's been the backbone of astrophysics for over a century. Hot young stars burn blue-white at around 30,000 Kelvin. Sun-like middle-aged stars are warm yellow at roughly 5,800K. Cool evolved stars glow red-orange at about 3,500K.

In Eternity, birth year maps to spectral class. Five brackets, five colors:

  • Born before 1920: Red-orange. Red giants. Evolved, luminous, commanding.
  • Born 1920-1949: Gold. G/K-type stars, sun-like and stable.
  • Born 1950-1979: Yellow-white. F-type stars, warm white.
  • Born 1980-2009: Warm white. A-type stars, bright and mature.
  • Born 2010+: Blue-white. B-type stars, hot, young, energetic.

Here's why the mapping works so well. A typical family today, parents born in the 1970s and kids born after 2010, naturally displays the full warm-to-cool spectral gradient. Your grandmother glows gold. Your toddler burns blue-white. A three-generation family becomes a visual representation of stellar evolution without anyone needing to know a thing about astrophysics.

We originally built the color brackets around the Kennedy family (our demo constellation), with breakpoints at 1900, 1930, and 1960. It looked gorgeous for a historical family. But when we tested with contemporary users, their constellations were almost entirely blue-white. Everyone born after 1960 landed in the same bracket. We redesigned the breakpoints specifically so that a family starting their constellation today would see the full color range across their living relatives.

Living Stars Breathe. Dead Stars Cool.

Living stars in Eternity pulse. Deceased stars are still. That part is probably obvious. But the distinction goes deeper than animation.

Living stars have warm spectral halos that match their color class. Deceased stars have cool silvery-blue halos. The core color stays the same, because a star's spectral signature doesn't change at death. But the halo shifts cold.

This is astrophysically correct. Real white dwarfs, the remnants of dead stars, don't dim. They cool. Their light shifts from warm to cool over billions of years. So Eternity uses temperature, not brightness, as the marker of a star's passing. You can read both generation and life status from the visual properties alone: core color tells you when someone was born, halo temperature tells you whether they're still with us.

Deceased stars also get a planetary nebula shell. More on that in a moment.

The Cepheid Variable Pulse

Living stars don't pulse in and out like a heartbeat. They follow a Cepheid variable pattern.

Real Cepheid variable stars are one of astronomy's most important discoveries. Henrietta Leavitt figured out in 1908 that their brightness cycle is predictable, which makes them "standard candles" for measuring cosmic distances. Edwin Hubble used them to prove the universe is expanding. The key characteristic of their brightness curve: asymmetric. They brighten quickly and dim slowly.

In Eternity, each living star's pulse peaks at 35% of the cycle, not 50%. The star swells fast and relaxes slow. It's subtle enough that most users won't consciously notice the asymmetry. But they'll feel it. A symmetric sine wave pulse looks mechanical, like a blinking LED. The Cepheid curve looks alive.

Each star also gets its own randomized period between 3.0 and 4.5 seconds, plus a random phase offset. This prevents the stars from synchronizing into a single rhythm, which would look artificial. When you open the app, every star is breathing at its own pace, like a sky full of independent, living things.

Planetary Nebulae for Those Who've Passed

When a star dies in nature, it often doesn't just disappear. Many stars shed their outer layers into beautiful, irregularly shaped shells of ionized gas called planetary nebulae. The Ring Nebula, the Helix Nebula, the Cat's Eye. They're some of the most photographed objects in astronomy.

In Eternity, deceased family members get a nebula shell around their star. The shell extends to five times the star's core size. It uses an irregular, organic shape because real planetary nebulae aren't perfect circles. They're shaped by magnetic fields, binary companions, and density variations in the expelled gas.

The nebula is completely static. No animation, no shimmer. Peace and finality. It glows in cool silvery-blue, matching the deceased halo, not the star's original spectral color.

The effect is gentle. A deceased star sits quietly in the constellation, wrapped in its nebula, its core still carrying the color of the generation it belonged to. How a star arrives at this state, the moment of transformation itself, is covered later in this post.

Stellar Evolution: Stars Grow With Their Stories

Real stars evolve. They start as dim protostars, ignite into main sequence stability, and eventually expand into giants and supergiants. The process takes billions of years. In Eternity, it takes stories.

Every star in your constellation has an evolution stage tied to how much content it holds. Add a first recording and the star brightens from a dim protostar into a flickering young T Tauri variable. Add more photos and recordings, and it grows through main sequence into subgiant, then giant, then supergiant. Six stages total, each one visually distinct.

The stages follow real astrophysical progression:

  • Protostar (no content). Dim, tentative, barely pulsing. Surrounded by faint dust motes, like a molecular cloud that hasn't collapsed yet. The star exists but hasn't ignited.
  • T Tauri (1-4 items). Brightening but unstable. The pulse period jitters randomly by a second in either direction, because real T Tauri stars are variable. They haven't settled into steady hydrogen fusion yet.
  • Main Sequence (5-14 items). Stable, mature, the default star appearance. This is what most stars in a new constellation look like.
  • Subgiant (15-29 items). Growing beyond main sequence. Noticeably brighter, slightly larger, with a warmer color shift. The star's core hydrogen is exhausted and it's beginning to expand.
  • Giant (30-59 items). Prominent and luminous. Corona wisps appear at the halo edge, thin arc segments of spectral light rotating slowly around the star. A deep family archive made visible.
  • Supergiant (60+ items). The most documented star in the constellation. Dramatically larger, with enhanced corona wisps and small bright convection cells that drift slowly across the core face. In real supergiants, these cells are granulation patterns on the stellar surface, each one the size of Earth's orbit.

The evolution happens in real time. When you add a recording that crosses a threshold, you watch the star grow. Size, brightness, halo radius, pulse rhythm, particle effects: everything interpolates smoothly over two seconds. A protostar becoming a supergiant doesn't happen in one jump. It's a series of witnessed transformations, each one a reward for the stories you've preserved.

One detail that matters: deceased stars freeze at their evolution stage at the time of death. A grandmother who was a supergiant before she passed stays a supergiant, wrapped in her nebula. The evolution stage becomes part of her permanent stellar record. How much her family remembered about her is written in the size of her star.

Binary Star Orbits: Couples in the Cosmos

In astronomy, binary stars are pairs of stars that orbit each other around a shared center of mass called the barycenter. They're surprisingly common. Roughly half of all sun-like stars in the Milky Way exist in binary or multiple star systems.

In Eternity, couples orbit each other. When two family members are connected as partners, their stars gently circle a shared point in the constellation. The orbit takes 24 seconds per revolution, slow enough to feel cosmic. The eccentricity is 0.15, so the path is nearly circular with a slight organic elongation. Both stars are always roughly opposite each other, 180 degrees apart with a small random offset.

The orbits follow real barycenter physics. If one partner has a higher generational weight (more central to the family tree), that star orbits closer to the center while the lighter partner traces a wider arc. Equal partners orbit at equal distances. The math is the same equation astronomers use to model real binary systems.

But here's where it becomes emotional. When one partner passes, the surviving spouse doesn't stop orbiting. The deceased partner's nebula sits at the center, still and quiet, and the living partner continues circling it alone. The orbit slows from 24 to 32 seconds, solitary and unhurried. In Eternity, couples orbit each other, even after one is gone.

When both partners have passed, the orbits stop. Both nebulae rest side by side at the barycenter. At peace, together, still.

The Memorial: A Star Letting Go

Star birth in Eternity is a compression. Material spirals inward, collapses, ignites. The memorial animation is the opposite: an expansion. A star gently releasing its outer layers and settling into a planetary nebula.

Real stars at the end of their lives go through what's called the asymptotic giant branch (AGB) phase. The star's outer envelope becomes loosely bound. Over thousands of years, it gently sheds those layers into space, and they drift outward as an expanding shell of ionized gas. What's left behind is a hot, dense core surrounded by a glowing planetary nebula. The process isn't violent. It's a breath released.

When you mark a family member as deceased in Eternity, you witness this transformation once, and only once.

The star brightens to peak luminosity over two seconds, a final warmth. Then the outer layers begin to drift outward: 20 to 25 particles spiral slowly away from the halo edge at walking pace, not explosive speed. Their color cross-fades from the star's spectral warmth to cool silvery-blue as they travel. After two and a half seconds, they decelerate and settle into the nebula shell. The planetary nebula forms around the star, taking on the slightly asymmetric shape that real nebulae have. A gravitational ripple expands outward from the star, and as it reaches each connected family member, their star briefly brightens, a wave of light passing through the constellation.

The whole sequence takes eight seconds. When it's over, the star has transformed into its deceased state: steady, wrapped in its nebula, its core still carrying the spectral color of the generation it belonged to. The memorial animation never plays again for that star. It was witnessed once. That's enough.

The design was intentional about what this moment is not. It is not an explosion. It is not a supernova. The star doesn't shatter or collapse violently. It lets go. The outer layers drift away like a long exhale. The people connected to that star feel it in their own brightness. And then the constellation settles into its new shape, one star different, everything else continuing.

Star Birth: Three-Phase Protostellar Collapse

When you add a new family member to your constellation, you see a star birth animation. It's the most technically ambitious visual in the app, and it follows real stellar formation physics through three phases.

Phase 1: Nebula Swirl (first 40% of the animation). Particles orbit a center point at varying distances, spiraling slowly inward. Angular velocity increases as the radius decreases. This is conservation of angular momentum, the same physics that makes a figure skater spin faster when they pull their arms in. A diffuse molecular cloud is condensing under its own gravity.

Phase 2: Compression (40-70%). The collapse accelerates dramatically. Particles rush toward center. Angular velocity spikes to three times the swirl speed. Everything gets brighter, shifting toward white. A pre-ignition glow appears at the center as the protostellar core heats up. On iOS, a light haptic fires at 60%. Pressure is building.

Phase 3: Ignition (70-100%). At exactly 70%, the star turns on. A flash. A gravitational ripple expands outward from the birth point, and as it passes through existing constellation stars, they briefly brighten by 30%. This is inspired by how real protostars ionize surrounding gas with their radiation. The family's sky reacts to its newest member.

Particles reverse direction and fly outward (the natal nebula being blown away by stellar wind), fading as they go. The born star emerges, settles to its final size, and begins pulsing.

Three Birth Types

Not all births are equal. We built three variants based on the age of the person being added:

Baby stars (born less than 5 years ago): 3.2 seconds, 180 particles, and bipolar jets. Real young protostars eject narrow beams of material along their rotation axis. These are called Herbig-Haro objects, and they're among the most dramatic phenomena in star-forming regions. When you add a newborn to your constellation, twin jets of blue-white particles shoot out from the ignition point.

Adult stars: 2.6 seconds, 120 particles, no jets. Clean, efficient formation.

Elder stars: 3.8 seconds, 200 particles, no jets. This is the counter-intuitive one. Elder births are the slowest and most dramatic. The reason is astrophysically correct: more massive stars form from larger gas clouds, accumulating more material over a longer collapse. The formation event is grander and more commanding. Adding a grandparent to your constellation should feel weighty and significant.

The Corona (Close Zoom Only)

When you pinch to zoom in close to a star, a new layer appears: a slowly rotating plasma corona. 28-second rotation period, ring-masked with a gap between the halo and corona edges.

That gap matters. Real stellar coronas extend above the chromosphere, not from the photosphere itself. There's physical space between the star's visible surface and its corona. We modeled that separation.

We tested faster rotation periods early on. At 8 seconds, the wisps looked like shimmering artifacts. At 35 seconds, the motion stopped registering during typical zoom-in dwell times. 28 seconds was the sweet spot: slow enough to feel cosmically massive, fast enough that you can clearly see the rotation.

Living stars have warm-colored corona wisps matching their spectral class. Deceased stars have cool silver-blue wisps. The same two-channel temperature system extends all the way from core to corona.

The Night Sky Isn't Black

The background in Eternity isn't pure black. And it's not flat. Three layers create depth:

Layer 1: Base sky. A subtle radial gradient, center slightly brighter than edges. This mimics the Milky Way's central bulge illuminating the sky from behind. You'd never consciously notice it. But a flat dark background reads as "app," while a gradient reads as "sky."

Layer 2: Noise grain. SVG fractal noise at 3% opacity. This breaks up digital smoothness and adds photographic texture, the kind of grain you see in long-exposure astrophotography.

Layer 3: Nebula warmth. Three overlapping gradients: a warm center glow positioned near the densest part of the family constellation (the collective light of many stars), a cooler periphery, and a deep vignette that frames everything. As the constellation grows and its center of mass shifts, the warm glow follows.

On top of all this, three tiers of ambient background stars: roughly 150 dust particles at 1 pixel (barely visible, subliminal texture), 60 visible stars at 1-2 pixels, and 12 bright accent stars at 2-3 pixels. They anchor the background and prevent the void feeling you get from a featureless dark screen.

Connection Lines: Luminous Threads

Family relationships are rendered as lines with per-connection linear gradients. Each line blends the spectral colors of the two stars it connects, so a line between a gold grandparent and a blue-white grandchild shifts smoothly from warm to cool.

Spouse connections are thicker with higher opacity. Parent-child connections are thinner and subtler. Every line has a blurred glow layer underneath for depth. Founding generation connections are slightly more visible, because deeper roots should be more prominent.

We tested 22 connections (every relationship) and it looked like a circuit board. We tested 8 connections and orphan stars floated alone. 16 connections, spine-only (parent-child plus one spouse bond per couple), was the sweet spot. The topology implies sibling relationships without drawing them.

Haptic Design: Physics You Can Feel

Every haptic in the app is astronomy-informed, and restraint is the core principle. There are no haptics on scroll, pan, zoom, or tab switches. Nothing on routine interactions. This makes the meaningful moments powerful by contrast.

Star birth compression: a light tap at 60% of the animation. Pressure building. Star birth ignition: the heaviest haptic in the entire app, a single strong impact at the exact moment the star turns on. Baby star jets: a rapid double-tap 50 milliseconds apart, like a bipolar outflow boom.

The rule we follow: if you can't name the astronomical event that justifies the haptic, remove it.

Sound Design: Four Sounds, Each Earned

The app has four sounds total. Star birth is a warm tone rising over 2 seconds, like a sunrise translated into sound. Constellation complete is a warm chord that assembles itself. The bloom transition (tapping a star to open their page) is a quick, gentle whoosh of warm air.

The candle tribute sound is a real match strike. We tried generating it with AI audio tools and every version sounded synthetic. Some things you just have to source from reality.

An Astronomy Expert Reviewed Every Decision

Throughout development, we worked with an astronomy expert who reviewed every visual decision against astrophysical accuracy. The constellation was scored against a 14-point realism rubric. Early versions scored 8.5 out of 14. By launch, we hit 10 out of 14.

Some of the locked decisions that came out of those reviews: pulse peaks at 35% not 50%. Elder births are the slowest, not the fastest. Corona rotation is 28 seconds, not 8. The death marker is temperature, not brightness. Diffraction spikes were proposed and then removed (the cool halo is cleaner). Connection lines are straight, never curved (curves look like a mind map, straight lines look like threads of light).

Every one of these decisions is invisible to someone who doesn't know astrophysics. And every one of them is felt by everyone who uses the app. That's the whole point. You don't need to know why the pulse feels alive, or why the deceased stars feel peaceful, or why the birth animation feels momentous. The science does the emotional work without asking for credit.

Your family is already a constellation. We just made sure the stars are real.