Tracking Satellites with Rust

Porting the satellite-js library into rust.
2 min read
under construction This post is a work in progress, and may be updated at some point in the potentially distant future!

One of my more recent side project ideas involves tracking satellites. Previously, I had used rust-libgpredict but stumbled upon satellite-js. So I decided to attempt to port it over to rust. It’s currently unstable / portions are untested, but the results seem ok enough for hobbyist use.


Note: I’m not rocket scientist or astrophysicist, I just think this stuff is cool. If I’ve made a major error, or would like to help, please let me know


The primary function of satellite-rs is to predict the position of a satellite given the two-line element sets (TLEs for short) which contain the orbital parameters and information for generating predictions with the model. TLEs can be found on and among others.

The motivation behind this project is to be able to utilize this tracking software, custom built antennae, and a rtl-sdr dongle (see for more information) to build a satellite tracking ground station. In the past, people have built smiliar stations to pull data GOES satellites which provide all kinds of satellite imagery.

Alongside richinfante/satellite-rs, I’ve also authored a few other modules for experimenting with satellites:

Satellite-Tracking Output

Position Vec3 {
    x: 2082.9470399808242,
    y: 3723.3038576584718,
    z: 5269.83489136562
Velocity Vec3 {
    x: -7.0774444026978225,
    y: 2.846370088589653,
    z: 0.782645802079306
longitude = 49.19921508318601
latitude = 51.184080224229106
alt = 249.8880487809588

Space-Plot Output

As part of my experimenting, I wanted a quick way to plot satellite locations in the terminal without needing a web browser. Space-plot (while not highly precise) can help provide an overview.

space-plot + satellite-rs output

Change Log

  • 4/9/2019 - Initial Revision

Found a typo or technical problem? file an issue!