Show HN: Beautiful 3D ISS tracker with live video and near-realtime clouds

iss.matteason.co.uk

139 points by matteason 17 days ago

This is a little hobby project that I hope you enjoy. You can see where the International Space Station is now, with live HD video from NASA, on a realistic 3D globe. The positions of the sun and moon are also accurate, though distances aren't to scale.

The clouds are also near-realtime; I span that out into a separate project at https://clouds.matteason.co.uk, where the cloud images I create from EUMETSAT data are freely available.

I've got more features almost ready to go, like the ability to turn off all UI, toggleable clouds and turning off the day/night cycle

I'd love for it to be used in education, so please do share it with any teachers you know who would find it useful

mncharity 16 days ago

Fwiw, there's also a set of monthly Blue Marble Next Generation[1] (2004), similar to the single Blue Marble (2002) used by clouds.matteason.co.uk. Snow cover is quite visible[2] - perhaps undesirable for a "are there clouds there?" ISS application, but nicer for a "loosely approximate Earth appearance". I used it years ago for an Earth seasons interactive - perhaps there's some way to get actual snow cover these days, rather than echoing 2004's snow? And more realistic ocean color?

[1] https://earthobservatory.nasa.gov/features/BlueMarble https://visibleearth.nasa.gov/search?q=blue+marble+next+gene... [2] Jan https://visibleearth.nasa.gov/images/73938/january-blue-marb... vs June https://visibleearth.nasa.gov/images/76487/june-blue-marble-...

alberduris 17 days ago

Very good looking. It'd be amazing if it has some kind of "time travelling" option or an easy way to know the next time the ISS will pass over a certain location.

  • jamesmontalvo3 15 days ago

    I work at Johnson Space Center on an app called CODA [1] that allows us to view all ISS video downlinks in sync with each other as well as with audio and data sources. We can view any moment back to 2013. The plan is to open-source the app, but that of course would not make the data available. We’re heavily plugged into the Artemis program and hopefully will get more of its imagery available from the beginning.

    [1] page 7 shows CODA https://ntrs.nasa.gov/api/citations/20230010012/downloads/EM...

  • matteason 17 days ago

    Thanks! Yeah rewinding would be good (especially if I can get the video to sync up) and next pass time would be great

zamadatix 16 days ago

For some reason this causes "A problem repeatedly occurred" on my iPhone 15. Reminding myself to try when I get home.

  • sccxy 16 days ago

    Safari runs out of memory with web maps.

    Reported it several times but no fix from Apple.

    Most powerful iPhone crashes but 5 year old Samsung with 2GB ram works fine…

  • matteason 16 days ago

    Sorry about that - unfortunately I can't reproduce it on an iPad Pro and I use Android but I'll see if I can borrow an iPhone to test on

  • pakr 16 days ago

    Same here

    • matteason 16 days ago

      I don't suppose either of you have any content blockers installed in Safari? Someone on Reddit has mentioned that disabling content blockers fixed the globe not loading

      • zamadatix 16 days ago

        I did have one but turning it off didn't change the behavior. It's not that the globe doesn't load it's that it starts loading for a split second (can actually see the globe), kinda fails, reloads, repeats the behavior, then loads the browser error page. I'm not sure if it's actually something you're doing wrong as much as maybe it tries to load too many resources and fails (iOS, and iOS Safari in particular, are sticklers about memory usage).

        • matteason 14 days ago

          If you have a minute would you mind trying this version: https://isstest.matteason.co.uk

          I've shrunk the textures down to about 10% of the size of the original to see if it's a memory issue caused by the large textures

sebosp 16 days ago

Can you think of a way to use your live cloud data as the background shader for https://github.com/sebosp/chartacritty ? I was also hoping to draw the iss progression through the earth, but sometimes people use terminals to actually read and may become confusing... For the rewind functionality you could look into rerun.io, not sure it's compatible with your current libraries but may be fun

  • matteason 16 days ago

    There's a composite image with the clouds and earth at https://clouds.matteason.co.uk/images/8192x4096/earth.jpg that you might be able to use?

    • sebosp 16 days ago

      Awesome, maybe some negative effect over it, how often does it refresh?

      • matteason 16 days ago

        The source data it uses refreshes every 3 hours but it runs more frequently because the timing of the refresh isn't guaranteed. If you configure your app to refresh every 30 minutes - 1 hour that's probably good enough.

9dev 16 days ago

I don’t know if it is interesting for this project, but I recently set up a Grafana dashboard for the telemetry feed from the ISS:

https://github.com/Radiergummi/iss-metrics

There’s also data on the position and rotation of various parts of the station in this feed. Might make for some interesting options when rendering the station!

  • matteason 16 days ago

    Ooh very interesting, thanks! I did have a little model of the ISS in place of the yellow dot originally but I ran into some issues with it. Would be very interesting to get that fixed up and rendering accurately too

jsemrau 16 days ago

Wow. This is really beautiful? Can the code be customized to other spacecraft? I made a tracker for starlink satellites but think your visualization is much nicer.

[1]https://jdsemrau.substack.com/p/code-clinic-tracking-starlin...

  • matteason 16 days ago

    Yes absolutely - I'm also using satellite.js so anything with a TLE available could be visualised. I'll have a think about how I could fit that in the UI.

    • mlyle 15 days ago

      Hey there-- thank you for putting this together!

      I am an educator who has done a bunch of stuff with space; we hosted a contact between our students and an astronaut on the International Space Station in 2021 and are looking to do it again. There's this commercial software to run on a Pi in an office, iss-above, that cycles between a few different things (2D orbit visualization, live video, pictures of the current astronauts aboard and mission patch, etc.) We've used them in our library and office to promote interest in the event.

      I'm interested/eager to work together on how to improve this so that schools doing space things can have something turnkey for this purpose. It would also be cool to get the "footprint" on here and be able to have it auto-cycle between different views, along with future visible pass predictions. I have a bunch of code around somewhere to do a lot of these thigns if you have interest.

      (Have you seen the ISS visualizer from Heavens-Above-- https://www.heavens-above.com/ISS_3D.aspx?lat=0&lng=0&loc=Un... )?

      (Also, my high school students are launching a satellite to space in late 2025, and being able to do it for our satellite/our telemetry display/our recent pictures would be pretty cool).

      • matteason 15 days ago

        Hey - this sounds really interesting and I'd love to work on making this more useful for schools. Do you mind dropping me an email or a Twitter DM with more info? They're both in my profile

urza 16 days ago

Haha this is neat. If you zoom out and rotate the scene, you can position the ISS to watch it transit in front of the Moon.

spuz 16 days ago

There are some crazy lightning storms over China in the live video feed at the moment. Very cool.

One thing I would change is to change the yellow dot to an actual image of the ISS. It would also be cool to be able to zoom in a little bit more (and maybe use some higher resolution images of the globe).

  • matteason 16 days ago

    It did originally have a little model of the ISS actually but I ran into some issues with the model loader - going to try and reinstate that feature

    • spuz 16 days ago

      Looking at your real-time cloud rendering, have you considered trying to interpolate between the images provided every 3 hours by EUMETSAT? I have tried this using images from DISCOVR but I'm not totally happy with the result. I wonder if you or anyone else might have some ideas to get more realistic movement between the clouds inbetween each 3 hour interval?

      https://github.com/alexspurling/earthflow

      • matteason 16 days ago

        I've wanted to do it but didn't really know where to start, so I'm very interested to hear if anyone has any pointers. I'll have a look at your project too

  • nullhole 16 days ago

    That makes me think: adding a live lighting map / lightning locations would be neat, since that is the kind of thing you can see from the video feed.

    There's a couple crowdsourced lighting status websites out there, might be possible to use the same data feed...

badcppdev 16 days ago

I love it!

My feature request is an option for a circle on the ground showing where the ISS is visible from at the moment.

can16358p 16 days ago

I'd love to try but it fails to load and crash the browser tab (an error repeatedly occured).

Safari on iPhone.

nx1 16 days ago

This is awesome, I work in Astronomy and what would be really cool is if you could get different space observatories on here with what they were observing, I know that's no small task but I could probably get you telemetry data for atleast a few :)

  • matteason 16 days ago

    Definitely interested in adding more if you have any pointers for where to get interesting data!

urza 16 days ago

Wow.

The video and map position appears to be a bit out of sync.

Was watching flyby over USA and when the map position exited land and went over ocean, it took about a minute for the video to transition from land to ocean.

Probably bc the nasa feed has delay?

  • matteason 16 days ago

    Yeah there's definitely some latency in the video. I thought about adding an option to compensate for it (ie delay the position shown by some amount of seconds) but the delay is probably going to vary quite a bit over time so I don't think I can do that reliably

pimlottc 16 days ago

This is neat, loading time was very slow for me, though. The Earth didn't appear for 30+ seconds, so most of the page was just a black background.

  • matteason 16 days ago

    Thanks, I'll see if I can improve that. The textures are quite hefty so that's probably slowing it down. Are you on a mobile/cellular data connection?

    • pimlottc 16 days ago

      Nope, home wifi, Firefox, M1 mac mini

remlov 15 days ago

Beautiful. Is the pixel ratio being set with: setPixelRatio(window.devicePixelRatio); ?

This would make this look razor sharp on HiDPI devices.

wkat4242 15 days ago

Works great on Android. Thanks for sharing!

mthoms 16 days ago

This is fantastic. Very nice work. Are you using CesiumJS?

Minor gripe: Please don't disable right click :(

  • matteason 16 days ago

    Thanks! It's not Cesium, no - I'm using Globe.GL [0] with custom shaders for the atmosphere effects and day/night transition

    Sorry about right-click. It's not disabled intentionally, it might be something in Globe.GL or three js. I'll see if I can enable it

    [0] https://globe.gl/

nirav72 15 days ago

This is amazing. Anyway to hide the youtube window?

  • matteason 15 days ago

    Yep, there's a settings link in the top left where you can toggle that and loads of other stuff :)

    • nirav72 15 days ago

      Thanks. I found it.

bingaling 16 days ago

zooming with mousewheel is a bit slow, takes ~10 scrolls to get to ~2x zoom (max)