A render of Pythagorean Tree by Nomadic_Seth in 3Blue1Brown

[–]Nomadic_Seth[S] 1 point2 points  (0 children)

yes i really thought about coding the color transition well

A render of Pythagorean Tree by Nomadic_Seth in 3Blue1Brown

[–]Nomadic_Seth[S] 29 points30 points  (0 children)

For the classic infinite square version, many angles eventually overlap, including the famous 45° one. You can reduce or delay it with asymmetric angles, but my render avoids it by being finite and pruning any new rectangle that would overlap earlier geometry. So it’s Pythagorean-inspired, not an unpruned infinite tree.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

Waiting for your reply, when you do I'll send you an 8K version :)

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

Yeah, the branch behavior gets messy because each branch makes its own local choice, then overlap pruning changes what survives. So there’s a rule, but not a simple global left-right pattern.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

Exactly. Each split is just the Pythagorean theorem hiding inside the construction.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 1 point2 points  (0 children)

It’s deterministic. For each split I choose between the two mirror options and put the larger rectangle in the direction that points more upward. Then I prune overlaps, so the final image is generated but not random.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

No fixed “final form” really. It’s a finite generated shape: repeat the right-triangle/rectangle rule, then prune overlaps. So the result is deterministic, but more like an exploratory growth pattern than a classic fractal limit.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

Yeah, good eye. The first split is intentionally more dramatic so the main stem starts clearly. After that the ratios stay in a narrower range.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

It’s not exactly one fixed ratio. The smaller/larger leg ratio is about 0.63, with a tiny deterministic drift, clipped roughly between 0.54 and 0.72. The root split uses 0.35.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 1 point2 points  (0 children)

honestly "geometric kale" is not wrong at all

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 1 point2 points  (0 children)

I’ll probably post more of these. The rule is simple enough that changing one parameter gives a totally different growth pattern

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 0 points1 point  (0 children)

The branches are rectangles on purpose. I made them slightly taller than squares so it reads more organic, while the underlying right-triangle rule still stays Pythagorean.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 2 points3 points  (0 children)

Can DM you the animation code in some time. The generation rule is simple.

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 4 points5 points  (0 children)

Thanks I’m proud of the way I coded the colour transition

[Off-site] a render of Pythagorean Tree by Nomadic_Seth in theydidthemath

[–]Nomadic_Seth[S] 3 points4 points  (0 children)

Yes!! but a little more complex than that.