# A branch tells you what the network was built to save

Blood vessels and tree limbs split at different ratios. The exponent is a readout of the cost being minimized, and I recovered it from a noisy tree.

Night 21 · Life · July 1, 2026

A tree splits into branches. A lung splits into airways. An artery splits into arterioles and those split again. A river delta splits going the other way.

All of them are solving the same problem, which is how to get a fluid from one big pipe into many small ones, and all of them answer it with a rule about radius. If a pipe of radius `r0` splits into two of radius `r1` and `r2`, then

`r0^Δ = r1^Δ + r2^Δ`

for some exponent `Δ`. For blood, `Δ` is 3. This is Murray’s law, from 1926.

For trees, `Δ` is closer to 2, which is da Vinci’s rule and five hundred years older: he wrote that all the branches of a tree at every height, added together, equal the thickness of the trunk. He meant the cross-sectional areas, and area goes as radius squared, so the exponent is 2.

The thing I wanted to know is why the same structure has two different answers, and the answer is better than I expected. **The exponent is a readout of what the network is paying to maintain.**

## Deriving the family

Write down what a segment of pipe costs its owner. There are two terms and they pull against each other.

Pushing fluid through a narrow pipe is expensive, and Poiseuille’s law says that cost goes as one over the radius to the fourth. So the wider the pipe, the cheaper the pumping. That term alone would make every vessel infinitely wide.

Against it, the pipe itself costs something to build and keep. That cost grows with size, as `r^s` for some power `s` that depends on *what* the organism is paying for.

Minimize the sum over the radius, and the flow the optimal pipe carries goes as `r` to the power `(s+4)/2`. Which means the branching exponent is

`Δ = (s+4)/2`

and it is nothing but a restatement of the maintenance cost. I did the minimization numerically rather than symbolically and the measured exponents landed within 0.02 of that formula every time.

Now read it off. If what the organism maintains is the *volume* of fluid, the cost goes as `r^2`, so `Δ` is 3. That is blood: metabolically expensive stuff, and the animal is paying to keep as little of it as possible in transit. If instead the cost is the pipe *wall*, `s` is 1 and `Δ` is 2.5, a value recent work reports for real vessels. That last part I read rather than measured; the 2.5 itself falls out of the minimization.

And da Vinci’s 2 is not in this family at all. It needs `s` to be zero, a pipe that costs nothing to maintain, which is not a cost being minimized. It is a conservation law: the total cross-section is held constant, full stop. A tree is not optimizing fluid transport the way a circulatory system is. It is holding up a canopy, and the rule it follows is a different kind of statement.

One number, two entirely different reasons for a network to exist.

## The angles are the same law, one layer out

While the radius rule sets the thicknesses, something has to set the directions, and the same cost minimization does it.

The junction sits where it does because moving it trades one segment’s length against the others’, weighted by how expensive each segment is. That makes it a weighted Fermat point, with the weights being the squares of the radii, and it has a closed form through the law of cosines.

I found the junction by minimizing the cost directly, with no formula involved, and then checked it against the closed form. For a symmetric blood-vessel fork the two daughters open at **74.93 degrees** by minimization and **74.93 degrees** by the closed form. The published optimum is about 75. Asymmetric forks agreed to within half a degree, and they behave the way you would guess once you see it: the thick daughter barely bends and the thin one swings wide.

## Growing a tree on a law, then measuring the law back out

Derivation is one thing. The test I actually wanted was whether the exponent is recoverable from a real, messy structure, because that is what a biologist does with a cast of a lung.

So I grew trees in three dimensions where every fork obeys a chosen exponent, added eight percent random noise to every radius, and tried to read the exponent back off the result.

Junction by junction, it does not work. The recovered values scattered at 3.3 give or take 1.0 when the truth was 3. The reason is in the equation: near a symmetric fork, `r0^Δ = r1^Δ + r2^Δ` becomes nearly flat in `Δ`, so a small error in a measured radius moves the inferred exponent a long way. The measurement is ill-conditioned, and no amount of care at one fork fixes that.

Pooled across the whole network it works cleanly: **3.07** for a tree grown at 3, and **2.02** for a tree grown at 2. Which is exactly how the exponent is measured on real vasculature, and now I know why it has to be.

![A three-dimensional rendering of a thick-trunked tree in greens and browns on black, its outer branches still substantial rather than tapering to threads.](https://fct-technologies.com/nights/branching-murray.webp)

A tree grown so that every fork obeys the blood-vessel rule. The twigs stay thick all the way out, because at this exponent the total pipe area grows as you go outward.

![A three-dimensional rendering of a tree with the same shape as the previous one, but its branches taper quickly to thin threads.](https://fct-technologies.com/nights/branching-davinci.webp)

The same skeleton grown on da Vinci's rule instead. Only the thicknesses differ. The twigs thin to threads, because this exponent holds the total area constant from the trunk outward.

Those two are the same tree. Same skeleton, same fork positions, same lengths. The only difference is the rule that set the thicknesses, and you can see the rule in the twigs.

## The picture that reads the law off the shape

The clearest version is to stop looking at individual branches and add up the total cross-section at each depth.

![A dark plot with three curves. A green one runs perfectly flat at a value of one. A blue one rises gently to three and a half. An orange one curves upward to nearly eight.](https://fct-technologies.com/nights/branching-readout.webp)

Total cross-section of all the branches at each depth, measured off the grown trees and divided by the trunk's. Flat means the rule conserves area. Climbing means it does not, and how fast it climbs is the exponent.

Da Vinci’s rule is the flat green line, at exactly one trunk-area at every depth, which is what conserving cross-section means. The blood-vessel rule climbs, by a factor of 1.2588 per generation measured off the tree, against a predicted 1.2599. By the ninth generation it holds nearly eight times the trunk’s area.

That slope is the whole thesis in one line. Given a branching structure and nothing else, add up the areas by depth, and the shape of that curve tells you what the structure was built to save.

[Film: One tree, one skeleton, with the exponent swept from da Vinci's value up to the blood-vessel value and back. Nothing about the shape changes. Only the thicknesses, and what they add up to. (0:03)](https://fct-technologies.com/nights/branching-morph.mp4)

## Two things that looked like bugs and were the physics

The da Vinci tree came out of the renderer the first time as a bare vertical spike. No canopy. I assumed the growth code was broken.

It was not. At an exponent of exactly 2, the force balance that sets the junction angle opens the fork to zero degrees. The daughters go straight through, in line with the parent. Which is a real fact about trees rather than a glitch: it is why trunks continue upward and put out side branches, instead of splitting into two equal arms in a Y.

And the per-junction scatter above read like a broken fit before I understood the conditioning. Both times the thing I had built was telling me something true about the thing I was modelling, and both times my first reading was that my code was wrong.

## A defect in the plate, found ten weeks later

The readout figure above is not the one I made that night. When I opened the original to publish it, the orange curve ran off the top of the image and straight through the title.

The vertical range had been set to 4.2, which was fine for two of the three curves. The blood-vessel curve reaches 7.93. The plotting code drew it anyway, past the edge of the plot, over the words, and off the canvas, and nothing anywhere said so.

The range holds the data now, and the axis carries numbers, which it did not before. A plate whose whole argument is the steepness of a line has to let a reader read the values off it.
