Current Satellites Orbiting Earth

Edit: see latest version here.

Current data downloaded and saved in browser to minimize number of downloads (updated every 4 hours). Not a lot of extra functionality at the moment. Time accelerated: 1 second = 1 minute.

15 Likes

that’s so many!
way more than I thought there would be

I’m guessing that’s what this large ring is? : O so cool : D

Yup! The large ring is geosynchronous orbit, which includes geostationary orbits. Edit: The graveyard is probably not shown. These are active satellites.

1 Like

so the graveyard is even higher? that’s so high lol
amazing stuff! : ))

1 Like

That’s so cool, I had no idea there was an API for that! Why is the earth mirrored though :joy: ?

1 Like

Apparently an old method of wrapping used by software at the time, retained by babylon for backward compatibility (changing would be a massive “breaking change”). One solution I’ve seen is using frontUVs in CreateSphere, but I can’t seem to get that to work. Scaling value of (-1,-1,1) does work, so I’m going to try that with added bakeVertices on the earth sphere. An update with this as well as on/off control and speed control coming soon. Hopefully can get picking with info display, too.

1 Like

Better accuracy, but stull not fully verified. Now shows the sun (light) moving across the earth.

Turn satellites on/off, adjust speed. The satellite positions are accurate-ish only within a two week window.

That looks better :ok_hand:

It would be even better with satellite movement being interpolated :eyes: right now, they kind of teleport so it is not easy to track one satellite

Agreed. Will try to implement. I’ve been thinking about how to do that at various speed settings. Need a close enough “orbit interpolation” but maybe that’s a curve with three points. How many points define an ellipse? Maybe b-spline is sufficient?

1 Like

If the updates are close enough in time a simple linear interpolation would probably work :eyes:

You can also use the tangent to the trajectory to make a bezier curve.

Really depends on the timestep used, but from your demo it looks like a linear interpolation could work nicely :+1:

What’s weird is that only north and south America are mirrored. (At least that’s what it looks like to me.)

To me, it looks like the rest was also mirrored in the first version

Select orbit regime in upper right to see the satellites in that regime. Select a satellite from the table to zoom to that satellite in the 3d display. Select a satellite in the 3d display to highlight its row in the table. Expand the table using the “<” in the upper left. Click again to collapse.

I have not fully implemented the speedups suggested. If anything, this version is slower. It also has bugs in the calculations of orbit.

I’ve added some pretty big additions to help me debug calculations. I’ve updated this version to be ECI instead of ECF, which means the earth should be rotating (you’ll notice that it doesn’t). I’ve added elliptical paths (also not correctly calculated) as well as a table of satellite data regarding orbits. This is data coming from the TLEs, lightly processed by the sgp4 calculation.

Most resources indicate that an elliptical path as I’ve drawn it is not very accurate. My hope is that it is somewhat accurate for at least the current revolution. I can’t cast judement on that without correcting the more major calculation problem in the ellipse drawing.

There are still bugs in the UI, but I’m hopeful that it’s sufficient to do some debugging of the calculations.

2 Likes

Still not faster, but getting there. Refactored to, soon, switch to using thinInstances. Much improved interface, though may need to reload instead of just “Run” playground a second time.

  • can select satellite and it will increase in size to be visible while zoomed way out.
  • select will show path estimate in purple.
  • purple path is much closer, but still a little off in many cases.
  • selecting in 3d view will highlight and scroll to table row.
  • table select will also select in the 3d view.
  • selecting a second time in the table will zoom to view that satellite.
  • improved earth view (brighter sun, a little emissive to see the dark side, removed sun reflection on the earth, increased diffuse level to be more vivid)
1 Like

Nice, looks like the satellites are moving on their orbits :ok_hand: LEO is so crowded as well haha

1 Like

MUCH faster and smoother. Now updating on every frame. There is some reversion in functionality.

Setting speed to “15m” is the sweet spot. Viewing from polar at 15m clearly shows groupings in LEO that are rotating around the poles at nearly even longitude intervals. Also watch GEO satellites rotate slowly (in ECI) around earth. Many of these are likely geostationary, but don’t look like it because earth doesn’t rotate in this version (but should).

The bad:

  • no longer highlighting or selecting from 3d view or from table (I hope to fix this).
  • on rerun, if table was compacted (to only name), then you can’t expand it. You must reload page.
  • earth rotation is not working.

The good:

  • performance when showing all satellites (or LEO only) is decent. 30fps on my machine.
  • performance for all other orbit regimes is nearly 120fps.
  • table expands to show satellite orbit data.
  • sort table on any column.
  • sun rotates around earth, but not sure if it’s right.

Edit: performance obtained by going from Instances to ThinInstances and updating entire matrices buffer at once. I also cranked down the segments per sphere from 32 to 2. This is only noticable when zooming way in to a single satellite.

1 Like

Nice much smoother :ok_hand:

Also funny how you can see satellites avoiding the polar region :laughing:

sun rotates around earth, but not sure if it’s right.

Everyone knows that’s absolutely right :upside_down_face: Jokes aside, it is completely equivalent as long as you only consider the Sun-Earth system :+1:

A small speedup by directly updating the matrix[12,13,14] only.

A lot of UI cleanup. Added the ability to

  • toggle: axes, markers (ECI markers), sun ground path (aka sub-solar)
  • reset time (to Now)
  • reset sizes, colors, and table highlighting
  • make satellites Big (to see from a distance).
  • fixed the table expansion issue when Run again.

It’s pretty fun to view Highly Eccentric Orbits (HEO) with Big and at 2h, 4h, or 6h speed.

Still a few things to fix: thinInstance pick, thinInstance color, earth rotation.

Very smooth and satisfying to see them zoom around haha

I think the orbit picker needs some work, maybe you could use the BabylonJS GUI?

1 Like

Great idea!

I fixed the calculations for regimes and created a visualization for the main cutoff altitudes that define them (“Regimes” button on far right).

(edit: turned down alpha for regime spheres)

I still have to show some of the inclination boundaries, but I wonder if there’s a usable arrangement of regime buttons besides a straight vertical list?