Skip to content

Instantly share code, notes, and snippets.

@PM2Ring
Created August 10, 2025 18:26
Show Gist options
  • Select an option

  • Save PM2Ring/bf63030443f844fb83b6fbf0b41b5655 to your computer and use it in GitHub Desktop.

Select an option

Save PM2Ring/bf63030443f844fb83b6fbf0b41b5655 to your computer and use it in GitHub Desktop.
Figure-8 orbit
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6">
<defs style="stroke:#8a8">
<pattern id="a" width="20" height="20" patternUnits="userSpaceOnUse">
<rect width="20" height="20" style="fill:#000"/>
</pattern>
<pattern id="b" width="100" height="100" patternUnits="userSpaceOnUse"
patternTransform="scale(0.01)">
<rect width="100" height="100" style="stroke-width:2; fill:url(#a)"/>
</pattern>
</defs>
<rect id="cvs" width="100%" height="100%" fill="url(#b)"/>
<g transform="scale(1, -1), translate(5, -3)">
<path d="M-5,0 h10 M0,-3 v6" stroke="#080" stroke-width="0.02"/>
<path d="M -0.00018,0.00017 C -0.31699,-0.29587
-0.64361,-0.5972 -1.01004,-0.85139
S -1.77175,-1.29555 -2.15759,-1.37783
S -2.9055,-1.4373 -3.19901,-1.35016
S -3.71779,-1.124 -3.8775,-0.97571
S -4.14519,-0.66182 -4.21648,-0.49617
S -4.31927,-0.16678 -4.31851,-0.00215
S -4.28452,0.32942 -4.21509,0.49583
S -4.03965,0.82558 -3.88046,0.97319
S -3.49625,1.26162 -3.20076,1.34991
S -2.54741,1.46062 -2.16314,1.37812
S -1.38101,1.1067 -1.01568,0.85383
S -0.31797,0.29948 0.00035,0.00169
S 0.64903,-0.60371 1.01378,-0.85517
S 1.76866,-1.29202 2.1553,-1.37618
S 2.9091,-1.43906 3.20289,-1.35119
S 3.71839,-1.12316 3.87682,-0.97374
S 4.14355,-0.66072 4.21545,-0.49693
S 4.32053,-0.16691 4.32002,-0.00041
S 4.28401,0.33196 4.21339,0.49641
S 4.03777,0.82287 3.87914,0.97302
S 3.49528,1.26635 3.2003,1.35132
S 2.54741,1.45711 2.16085,1.37703
S 1.3748,1.10742 1.01247,0.85344
S 0.31664,0.2962 -0.00018,0.00017"
style="stroke:#aaa; fill:none; stroke-width:0.03"/>
<circle cx="-0.00018" cy="0.00017" r="0.05" fill="#7d7"/>
<circle cx="-2.15759" cy="-1.37783" r="0.05" fill="#7d7"/>
<circle cx="-3.8775" cy="-0.97571" r="0.05" fill="#7d7"/>
<circle cx="-4.31851" cy="-0.00215" r="0.05" fill="#7d7"/>
<circle cx="-3.88046" cy="0.97319" r="0.05" fill="#7d7"/>
<circle cx="-2.16314" cy="1.37812" r="0.05" fill="#7d7"/>
<circle cx="0.00035" cy="0.00169" r="0.05" fill="#7d7"/>
<circle cx="2.1553" cy="-1.37618" r="0.05" fill="#7d7"/>
<circle cx="3.87682" cy="-0.97374" r="0.05" fill="#7d7"/>
<circle cx="4.32002" cy="-0.00041" r="0.05" fill="#7d7"/>
<circle cx="3.87914" cy="0.97302" r="0.05" fill="#7d7"/>
<circle cx="2.16085" cy="1.37703" r="0.05" fill="#7d7"/>
<circle cx="-0.00018" cy="0.00017" r="0.15"
stroke="none" fill="oklch(0.65 0.14 0)">
<animate attributeName="cx"
values="-0.00018;-0.31905;-0.65348;-1.01004;-1.38401;-1.76913;-2.15759;-2.53504;-2.88541;-3.19901;-3.47094;-3.69704;-3.8775;-4.01969;-4.13169;-4.21648;-4.27463;-4.30803;-4.31851;-4.30656;-4.27231;-4.21509;-4.13252;-4.02206;-3.88046;-3.70062;-3.47442;-3.20076;-2.88618;-2.5379;-2.16314;-1.7748;-1.38889;-1.01568;-0.65915;-0.32162;0.00035;0.3213;0.65757;1.01378;1.38515;1.76748;2.1553;2.53471;2.88788;3.20289;3.47403;3.69811;3.87682;4.01822;4.13023;4.21545;4.2744;4.30885;4.32002;4.30772;4.27211;4.21339;4.13016;4.02007;3.87914;3.69966;3.4736;3.2003;2.88615;2.53742;2.16085;1.7703;1.38375;1.01247;0.65925;0.32378;-0.00018"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
<animate attributeName="cy"
values="0.00017;-0.29438;-0.58211;-0.85139;-1.08397;-1.26264;-1.37783;-1.42755;-1.41531;-1.35016;-1.24628;-1.11829;-0.97571;-0.82248;-0.66128;-0.49617;-0.33086;-0.16647;-0.00215;0.16298;0.32915;0.49583;0.66096;0.82106;0.97319;1.11571;1.24471;1.34991;1.41585;1.42812;1.37812;1.26299;1.0851;0.85383;0.58555;0.29766;0.00169;-0.29596;-0.58663;-0.85517;-1.08413;-1.26032;-1.37618;-1.42798;-1.41673;-1.35119;-1.24651;-1.11755;-0.97374;-0.81996;-0.65993;-0.49693;-0.33252;-0.16687;-0.00041;0.16583;0.33143;0.49641;0.65974;0.81928;0.97302;1.11824;1.24827;1.35132;1.41397;1.42523;1.37703;1.26383;1.0859;0.85344;0.58444;0.29612;0.00017"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
</circle>
<circle cx="-3.88046" cy="0.97319" r="0.15"
stroke="none" fill="oklch(0.65 0.14 120)">
<animate attributeName="cx"
values="-3.88046;-3.70062;-3.47442;-3.20076;-2.88618;-2.5379;-2.16314;-1.7748;-1.38889;-1.01568;-0.65915;-0.32162;0.00035;0.3213;0.65757;1.01378;1.38515;1.76748;2.1553;2.53471;2.88788;3.20289;3.47403;3.69811;3.87682;4.01822;4.13023;4.21545;4.2744;4.30885;4.32002;4.30772;4.27211;4.21339;4.13016;4.02007;3.87914;3.69966;3.4736;3.2003;2.88615;2.53742;2.16085;1.7703;1.38375;1.01247;0.65925;0.32378;-0.00018;-0.31905;-0.65348;-1.01004;-1.38401;-1.76913;-2.15759;-2.53504;-2.88541;-3.19901;-3.47094;-3.69704;-3.8775;-4.01969;-4.13169;-4.21648;-4.27463;-4.30803;-4.31851;-4.30656;-4.27231;-4.21509;-4.13252;-4.02206;-3.88046"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
<animate attributeName="cy"
values="0.97319;1.11571;1.24471;1.34991;1.41585;1.42812;1.37812;1.26299;1.0851;0.85383;0.58555;0.29766;0.00169;-0.29596;-0.58663;-0.85517;-1.08413;-1.26032;-1.37618;-1.42798;-1.41673;-1.35119;-1.24651;-1.11755;-0.97374;-0.81996;-0.65993;-0.49693;-0.33252;-0.16687;-0.00041;0.16583;0.33143;0.49641;0.65974;0.81928;0.97302;1.11824;1.24827;1.35132;1.41397;1.42523;1.37703;1.26383;1.0859;0.85344;0.58444;0.29612;0.00017;-0.29438;-0.58211;-0.85139;-1.08397;-1.26264;-1.37783;-1.42755;-1.41531;-1.35016;-1.24628;-1.11829;-0.97571;-0.82248;-0.66128;-0.49617;-0.33086;-0.16647;-0.00215;0.16298;0.32915;0.49583;0.66096;0.82106;0.97319"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
</circle>
<circle cx="3.87682" cy="-0.97374" r="0.15"
stroke="none" fill="oklch(0.65 0.14 240)">
<animate attributeName="cx"
values="3.87682;4.01822;4.13023;4.21545;4.2744;4.30885;4.32002;4.30772;4.27211;4.21339;4.13016;4.02007;3.87914;3.69966;3.4736;3.2003;2.88615;2.53742;2.16085;1.7703;1.38375;1.01247;0.65925;0.32378;-0.00018;-0.31905;-0.65348;-1.01004;-1.38401;-1.76913;-2.15759;-2.53504;-2.88541;-3.19901;-3.47094;-3.69704;-3.8775;-4.01969;-4.13169;-4.21648;-4.27463;-4.30803;-4.31851;-4.30656;-4.27231;-4.21509;-4.13252;-4.02206;-3.88046;-3.70062;-3.47442;-3.20076;-2.88618;-2.5379;-2.16314;-1.7748;-1.38889;-1.01568;-0.65915;-0.32162;0.00035;0.3213;0.65757;1.01378;1.38515;1.76748;2.1553;2.53471;2.88788;3.20289;3.47403;3.69811;3.87682"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
<animate attributeName="cy"
values="-0.97374;-0.81996;-0.65993;-0.49693;-0.33252;-0.16687;-0.00041;0.16583;0.33143;0.49641;0.65974;0.81928;0.97302;1.11824;1.24827;1.35132;1.41397;1.42523;1.37703;1.26383;1.0859;0.85344;0.58444;0.29612;0.00017;-0.29438;-0.58211;-0.85139;-1.08397;-1.26264;-1.37783;-1.42755;-1.41531;-1.35016;-1.24628;-1.11829;-0.97571;-0.82248;-0.66128;-0.49617;-0.33086;-0.16647;-0.00215;0.16298;0.32915;0.49583;0.66096;0.82106;0.97319;1.11571;1.24471;1.34991;1.41585;1.42812;1.37812;1.26299;1.0851;0.85383;0.58555;0.29766;0.00169;-0.29596;-0.58663;-0.85517;-1.08413;-1.26032;-1.37618;-1.42798;-1.41673;-1.35119;-1.24651;-1.11755;-0.97374"
repeatCount="indefinite"
begin="0s"
end="cvs.click"
dur="10s"/>
</circle>
</g></svg>
@PM2Ring
Copy link
Author

PM2Ring commented Aug 10, 2025

Cris Moore's figure-8 orbit, plotted in Sage using Fourier series from Siwei Luo. https://www.researchgate.net/publication/369759901_The_remarkable_figure-8_solution_of_the_three-body_problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment