Alex Marshall

Alex Marshall

@alxm.me

Visual artist, humanist, and creator of things. Science and engineering educated in California, raised in Europe. Based in London, UK. Creator of Stellata: https://stellata.xyz Other stuff, including artwork: https://alxm.me

61 followers144 following42 posts

Pinned

This is not a photograph, but it is the same moment that the famous "Earthrise" photo was captured by the Apollo 8 crew on 24 December, 1968. What you're seeing is a screenshot of an in-browser 3D model of our solar system, the galaxy, and eventually our universe that I'm building. Link in thread →

1/8 Which way is up? I replicated the Apollo program's FDAI (Flight Director / Attitude Indicator) instrument to help users orient themselves while exploring in Stellata. An attitude indicator (the other type of AI) tells you… 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

7/8 Lastly, the galactic plane is aligned to the Milky Way's orientation. The 0 latitude plane is coincident with the galactic disc, and 0 longitude points to the centre of our galaxy. Coordinate spheres suit the needs of the context and help you know which way you're pointing.

8/8 So that's how you know which way is "up"! And if you want to define your own up, you can always enable the REF flag, which allows you to set your own reference datum. Try it yourself, and find an orientation that you want around the Moon: stellata.xyz/v/BIXAgSUHlX...

stellata.xyzStellata — Explore the Universe in 3DA 3D model of the real universe in your browser: planets, stars, dust and galaxies in true colour, exactly as your eyes would see them. Nothing invented.

1/8 Which way is up? I replicated the Apollo program's FDAI (Flight Director / Attitude Indicator) instrument to help users orient themselves while exploring in Stellata. An attitude indicator (the other type of AI) tells you… 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

5/8 Orbital is available for any object (planet, moon, or star) with an orbit. 0 latitude is coincident with the orbital plane, and 0 longitude always orients towards the object being orbited. This is the only mode where the AI moves in sync with the object's current position.

6/8 The ecliptic is the plane that the sun traces through our sky. The planets' orbits are roughly aligned to this datum; it's a useful plane to orient on in our Solar System. 0 longitude is aligned with Earth's vernal equinox where the ecliptic and equatorial planes intersect.

1/8 Which way is up? I replicated the Apollo program's FDAI (Flight Director / Attitude Indicator) instrument to help users orient themselves while exploring in Stellata. An attitude indicator (the other type of AI) tells you… 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

3/8 In orbit, the (0,0) reference on the AI is the desired orbital path. This is why this is so clearly marked on Apollo's FDAI with extra clarity on the 0 longitudinal marker. In transit between orbits (0,0) is re-oriented to the desired course so the crew can stay on track.

4/8 Stellata covers such a wide range of domains that a few different reference plains are available: equatorial, orbital, ecliptic and galactic. Equatorial is Earth-only and the 0 latitude is referenced to the equator's plane. This makes it easy to orient around and near Earth.

1/8 Which way is up? I replicated the Apollo program's FDAI (Flight Director / Attitude Indicator) instrument to help users orient themselves while exploring in Stellata. An attitude indicator (the other type of AI) tells you… 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

2/8 the orientation of your spacecraft or aircraft. The question is: relative to what? In an aircraft, the most important thing is knowing where the ground is so that you can safely fly with reference only to instruments. In space, there are many context-dependent choices. (Here's an original FDAI.)

🧵 There's a partial lunar eclipse next week: see the entire ~6 hour event in just over a minute. It's not a coincidence that lunar eclipses follow solar eclipses a few weeks later. The Moon and Earth swap positions, and the alignment is often... 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

Stellata's HDR lighting model is perceptual: it automatically adapts to what your eye would actually see. Note the background stars that appear at the peak of the eclipse and the burst of brightness at the exact angle that the Moon's regolith reflects the Sun's light directly back to the camera.

🧵 There's a partial lunar eclipse next week: see the entire ~6 hour event in just over a minute. It's not a coincidence that lunar eclipses follow solar eclipses a few weeks later. The Moon and Earth swap positions, and the alignment is often... 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

...just right to produce another eclipse event. Next week's partial eclipse is most easily visible from the Americas. Note the colour changes as different components in Earth's atmosphere influence light absorption at different frequencies. The penumbra starts imperceptibly around 1.25am UTC...

...followed by absorption dominated by ozone as sunlight is filtered through the upper atmosphere, then the much darker umbra, the true shadow of Earth. The deep red colour you see is sunlight refracted through the atmosphere: the light of every sunset on Earth simultaneously.

One month of lunar rotation in 2.5min (model clock sped up to 4.6hr/sec), with a guest appearance from Earth in early September. And what's up with that shadow in the middle? That's the next partial lunar eclipse happening next week on 28 August... 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

My current challenge is cross-browser-platform performance, so I'm migrating from WebGL to WebGPU. After implementing an HDR pipeline with a beautiful, adaptive scene model, perf has taken a hit. Certainly some optimisation to do within ... 🧵 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

... the pipeline itself, but I need to get to a common baseline across browsers regardless. WebGL on Chrome translates through ANGLE, whereas Safari on macOS goes straight to Metal, which makes a massive difference. Turns out _almost_ native is a pretty big compromise.

The 🌕 has some pretty wild craters on it! This shows the maps that are stored to render surface lighting for any ray direction. Red is the horizon map, shown summed for all directions simultaneously, and blue is the normal surface deviation map. 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

It turns out that rendering bumpy surfaces is tricky! This is the same view as yesterday's post, but notice that the terminator detail looks different. It's the same underlying photographic texture, but can you tell what I improved? Solution in 🧵👇 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

With altitude and angle for each pixel, you can pre-calculate this information and then your live render engine just has to light the surface. Notice how much narrower the terminator is in the updated version and how much more realistic and dramatic it looks with crater shadows.

There's still something else missing, though, to make this render more realistic. Do you know what it is? More to come in a future post... Follow for more updates as I continue building out the astronomical model that powers Stellata! 📔 1968's Earthrise: stellata.xyz/v/BI3AgQUHZv...

stellata.xyzStellata — Explore the Universe in 3DA 3D model of the real universe in your browser: planets, stars, dust and galaxies in true colour, exactly as your eyes would see them. Nothing invented.

It turns out that rendering bumpy surfaces is tricky! This is the same view as yesterday's post, but notice that the terminator detail looks different. It's the same underlying photographic texture, but can you tell what I improved? Solution in 🧵👇 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

View full thread

You might think that's enough: less light where planes on the edge of the spheroid fall off more sharply, and more light where the planes are more oriented towards the camera. But there's an additional problem: each point on the bumpy spheroid has a different horizon over which it receives light.

The trap is that you cannot assume that the spheroid is completely smooth up until the point that you evaluate surface topology relative to the normal. You also have to know whether light is even reaching a given point: its local horizon. The elegant part is that topology data gives you both...

It turns out that rendering bumpy surfaces is tricky! This is the same view as yesterday's post, but notice that the terminator detail looks different. It's the same underlying photographic texture, but can you tell what I improved? Solution in 🧵👇 🔭 #Astronomy #SpaceSky #BuildInPublic #AstroCoding

The first order version needs to know the surface topology so that the renderer knows the orientation of individual planes on the surface. Then it knows how light reflects from them towards the camera. This involves vector multiplying the smooth surface light falloff against each angled surface.

This is not a photograph, but it is the same moment that the famous "Earthrise" photo was captured by the Apollo 8 crew on 24 December, 1968. What you're seeing is a screenshot of an in-browser 3D model of our solar system, the galaxy, and eventually our universe that I'm building. Link in thread →

View full thread

At 16.39 UTC you can see the far side of South America and dusk falling on Western Africa and Spain, just as you can in the original 1968 image. Stellata is available to anyone with a browser, desktop-only for now, and I'm going to share my progress as I add new functionality and fix issues.

This is not a photograph, but it is the same moment that the famous "Earthrise" photo was captured by the Apollo 8 crew on 24 December, 1968. What you're seeing is a screenshot of an in-browser 3D model of our solar system, the galaxy, and eventually our universe that I'm building. Link in thread →

Recreating these moments in Stellata is fun, but this serves an important purpose, which is to validate the accuracy of the model's physics across a 6,000-year range. Based on the original "Earthrise" image, Stellata's model lines up to within 15min.

Alex Marshall reposted

Starter packs are genius, but I was surprised there wasn't a list of them for people to find. So I built it: blueskydirectory.com/starter-pack... The website monitors the packs being shared and adds the ones it finds to the database. Missed your stater pack? Message me and I'll get it added.

blueskydirectory.comAll - Bluesky DirectoryA curated collection of all things relating to the Blue Sky social media platform.

You are up to date.