At the time of this post, on April 1, 2026, NASA will launch the first crewed space mission around the Moon since the Apollo era. Known as Artemis II, the mission will not land on the Moon, nor will it orbit the Moon, but will undergo a free-return trajectory that whips the crew around the Moon and back along an asymmetric figure eight path.
In[]:=
Dataset
Artemis II
MANNED SPACE MISSION
["PrimaryCrew"]
Out[]=
Gregory Reid Wiseman
spacecraft commander
Victor J. Glover
pilot
Christina Koch
mission specialist 1
Jeremy Hansen
mission specialist 2
JPL Horizons published trajectory data that can be accessed via a Wolfram Function Repository item called “HorizonsEphemerisData”. Using this tool, you can ask for the state (position and velocity) of the spacecraft. The data assumes a launch on April 1 which is obviously dependent on finding no reason to delay the launch due to technical issues. JPL Horizons refers to the spacecraft using the numerical identifier “-1024”. Hopefully, in the future, NASA will publish a SPICE kernel that can be used for native support of such data.
In[]:=
horizonsEarth=
[◼]
HorizonsEphemerisData
"State","@-1024",<|"Frame"->"EclipticJ2000","Center"->
Earth
PLANET
,"Dates"->
Thu 2 Apr 2026 01:58:00GMT
,
Minute: Fri 10 Apr 2026 23:50GMT
,
10
min
|>,All,"Dataset";
The dataset can be converted to a tabular object for optimal display.
In[]:=
Tabular[horizonsEarth]
Out[]=
The dates and 3D positions of the spacecraft can be extracted via:
In[]:=
datesEarth=Keys[Normal[horizonsEarth]];
In[]:=
xyzArtemisEarth=QuantityMagnitude[Values/@Values@Normal[horizonsEarth[[All,{"X","Y","Z"}]]],"AstronomicalUnit"];
To visualize the event, we need a few pieces of data
In[]:=
earthRad=QuantityMagnitude
Earth
PLANET
["EquatorialRadius"],"AstronomicalUnit"
Out[]=
0.00004263521
In[]:=
moonRad=QuantityMagnitude
Moon
PLANETARY MOON
["EquatorialRadius"],"AstronomicalUnit"
Out[]=
0.000011618
In[]:=
flybyDate=DateObject[{2026,4,6,22,0},TimeZone->0];
In[]:=
moonFlybyPos=AstroPosition
Moon
PLANETARY MOON
,"MeanEcliptic",flybyDate,
Earth
PLANET
,"Cartesian"["Data"]
Out[]=
{-0.000870163,-0.00255084,-0.000243179}
In[]:=
moonPath=LineAstroPosition
Moon
PLANETARY MOON
,"MeanEcliptic",#,
Earth
PLANET
,"Cartesian"["Data"]&/@datesEarth;
In[]:=
artemisEarthTimeSeries=TimeSeries[Transpose[{datesEarth,xyzArtemisEarth}]]
Out[]=
TimeSeries
Time:
02 Apr 2026
to
11 Apr 2026
Data points: 1284

Manipulate can be used to interactively animate the event. Some undocumented code is used to get the correct rotation of Earth as a function of time.
In[]:=
artemisDataFromEarth[d_]:={StandardRed,AbsolutePointSize[10],Point[artemisEarthTimeSeries[d]],Opacity[.85],AbsoluteThickness[2],Line[xyzArtemisEarth]}
Here, some functionality that will hopefully be publically documented in a future version is used to rotate the textured Earth based on the date.
In[]:=
rotatingEarth[d_]:=ScaleGeometricTransformation
Earth
PLANET
["TexturedSurface"][[1]],Astronomy`AstroOrientationMatrix[{"ITRS",d},{"MeanEcliptic",d}],earthRad,{0,0,0}
In[]:=
moonDataFromEarth[d_]:=White,SphereAstroPosition
Moon
PLANETARY MOON
,"MeanEcliptic",d,
Earth
PLANET
,"Cartesian"["Data"],moonRad,Opacity[.5],AbsoluteThickness[2],moonPath
In[]:=
optionsFromEarth=
;
In[]:=
formatDate[d_]:=Style[DateString[d,{"DayShort"," ","MonthNameShort"," ","Year"," ","Hour24",":","Minute",":","Second"," ","GMT"}],GrayLevel[.75],Bold,17]
In[]:=
Manipulate[​​Graphics3D[{​​artemisDataFromEarth[d],​​rotatingEarth[d],​​moonDataFromEarth[d]​​},​​optionsFromEarth,PlotLabel->formatDate[d]​​],{d,datesEarth[[1]],datesEarth[[-1]],Quantity[1,"Minutes"]},SaveDefinitions->True]
Out[]=
​
d
We can also generate a list of frames and export them to a movie with the following:
In[]:=
frames=TableGraphics3D[{​​artemisDataFromEarth[d],​​rotatingEarth[d],​​moonDataFromEarth[d]​​},​​ImageSize->{600,720},optionsFromEarth,PlotLabel->formatDate[d]​​],d,datesEarth[[1]],datesEarth[[-1]],
20
min
;
In[]:=
SlideShowVideo[frames,DefaultDuration->15,RasterSize->{600,720}]
Out[]=
Notice that the Moon (in white) flies through the scene just as the spacecraft is reaching its furthest point from Earth

Lunar-centric View

It’s also possible to view this lunar flyby from the Moon’s point of view. The following variation is nearly the same as above, but changes the origin to be the Moon.
The dates and 3D positions of the spacecraft can be extracted via:
In this reference frame, the Earth appears to orbit the Moon and so creates an orbital arc with the Moon at the origin.

CITE THIS NOTEBOOK

Artemis II trajectory: crewed lunar flyby to launch on April 1, 2026​
by Jeffrey Bryant​
Wolfram Community, STAFF PICKS, March 31, 2026
​https://community.wolfram.com/groups/-/m/t/3672762