Project Persephone - revival and improvement of SpriteOrbits


For KickSat-1 in 2014, we at Project Persephone relied on Orekit for code to predict and display the orbits of the dozens of Sprite picosatellites to be released from KickSat. The groundwork was done mostly by Orekit people, who provided the basic orbit propagation code and parameters. At the 2014 Tokyo International Space Apps Challenge, we mainly just added a graphical display, but somehow this was enough to win us a prize. Unfortunately, KickSat-1 failed to release its Sprites.

With KickSat-2 set to launch this year in November (mission NG 10), I’ve updated the main SpriteOrbits code because some of the API has since been deprecated and there was also a move to Hipparchus. But I’m pretty useless in orbital mechanics. Hence this message: We’re hoping to recruit seasoned Orekit users to help out on some of the details.

Orekit could benefit. In particular, KickSat-2 could be a chance to calibrate an appropriate Orekit drag model. Perhaps this would be a degenerate case of BoxAndSolarArraySpacecraft, which we didn’t have in 2014. Sprites (cracker-size, long memory-wire antennae) are a fairly extreme case of ballistic coefficient as satellites go. For such a calibration, their odd shape may be all to the good. The tracking effort and post-mission data analysis could also go hand-in-hand with some actual scientific research: the rate of deceleration of Sprites may provide some clues about atmospheric gravity waves in the thermosphere in the final hours of each Sprite’s flight.

We have until mid-November or a little later to get something together and tested as much as possible. Please consider helping out.


This is an interesting project. I guess several Orekit users could help (at least I am interested, despite
I have very few time available). I have two questions, though:

  • how will the sprites be tracked?
  • how many sprites will be released?

If only TLE are available for the sprites, I’m not sure we will get accurate calibration. TLE are a mean model
with limited accuracy and as the sprites will be released as a swarm, there may be some confusion between each individual sprite at the beginning, when they are close to each other.

If some ground system may track the signal from the sprites (I think they at least broadcast a unique identifier), then maybe we could get some measurements (Doppler for example) and could use Orekit orbit determination feature directly. It was not available in 2014 but is now fully operational.


I love the idea of having calibration data sets. This could actually be useful for other libraries and projects as well if it is generally releasable. As Luc said however for doing that sort of calibration the level of effectiveness is going to be driven by the level and accuracy of the underlying information. So for example, if we had high quality GPS nav solution and attitude data from the spacecraft themselves it could make a great data set for this sort of thing. As the data available drops then the efficacy for doing model calibration becomes less and less. However contributing the data for those purposes in any form is a wonderful idea.


I would also be interested. Although I’m afraid I won’t have much time to spare until the end of the year.
Michael (@ProjectPersephone), could you please detail a little the work you’d like the Orekit community to do for you on the project ?


I have just finished a code that simulates the release of a cluster of objects from a carrier object. The attitude motion (tumbling) of the carrier object can be specified with respect to the local-vertical local-horizontal frame and the ejection “delta vee” of each object in the cluster can be specified with respect to the body frame of the carrier object. I simulated the release of 88 3U CubeSats by PSLV C37 and it looked allright. The size (WxLxD) of the cluster objects is also an input; however, the code uses an isotropic (cannonball) drag model.

I have just started learning and programming Orekit’s field propagation so i can determine the effects of uncertainties on the orbits of the cluster objects.

I cannot share the code but I could run some sims when time becomes available.How can I help?