What's new in upcoming Gaia Sky 3.7.2

A summary of the features that have been in the works for a while, and are almost ready to release

I have been skimming the Gaia Sky git log, and I think we have enough new stuff to warrant a new release. This means that we now enter a testing period that will, hopefully soon, end up in the new version 3.7.2.

If you follow my BlueSky or Mastodon feeds, you have probably already seen most of these features in action. However, for those of you who don’t, this post aggregates and summarizes all the upcoming new features in the upcoming version.

Here is a list of these new features:

New billboard shading types

First, we have introduced new shading types to billboards in particle groups. Up until now, we shaded all billboards as emissive (additive-blended) blobs or textures. Now, we have a property, shadingType, which can be:

  • plain–same old emissive shading.

    Plain shading type. This was the only type we had up until now.

  • billboard_shading–particles are shaded uniformly depending on the view and light directions. This creates the illusion of physical particles, especially when these are small.

    In billboard shading type, particles are lit uniformly depending on their location with respect to the light.

  • spherical_shading–particles are shaded with a phong model as if they were spheres. Normals are computed for every point in the billboard, and light contributions are calculated according to those, in addition to the light and view vectors. This shades the particles as if they were solid bodies with volumes.

    Spherical shading approximates particles to a sphere and computes the resulting lighting. Here, flat billboards resemble bodies with volume.

The introduction of the new shading types can also be combined with the pre-existing textures to achieve a much more realistic effect. We’ll see examples of this in the next section.

Orbital element groups refactor

Up until now, particle groups (used for groups of particles, like SDSS galaxies, the Oort cloud, star clusters, etc.) and orbital element groups (mainly used for asteroids and SSOs) have been treated independently. Each group had its own loaders, renderers, and shaders. In Gaia Sky 3.7.2, we unify orbital elements into the rest of the particle groups. This provides orbital elements datasets with all the goodies that particle groups have had for a long time, plus some newer additions:

  • Filtering
  • Indexing
  • Focusing
  • Texturing
  • And now, also shading types!

We have used the newly merged orbital elements particle groups to develop new versions of the SSO catalogs and to create totally new datasets. Read on to know more.

Asteroids and SSO

We have updated the FPR asteroids and SSO dataset to use the new spherical shading, with rocky textures. The result is much more impressive than what we had before. Have a look at this video:

A trip through the asteroid belt with Gaia FPR data.

See the higher quality version on YouTube.

Saturn rings

In the meantime, we have also generated a dataset for the particles in the rings of Saturn. We have added the option to have an occluding spherical object to simulate the shadow of Saturn on the ring itself, and have used a ring profile image to approximate the density at each radius value.

Particularly tricky was getting the transitions to and from the ring 3D model right. Initially, artifacts were clearly visible, but with some work, the transitions are mostly seamless.

The result is a dataset of rock and dust particles that rotate around the planet in a realistic manner, and that displays the most important features, like the A ring, the Cassini division, and the B/C/D rings. The final dataset is showcased in the video below.

Exploring the new Saturn rings dataset.

See the higher quality version on YouTube.

Diffuse scattering

The rings of Saturn display diffuse scattering. This means that they do not behave like a solid object, but scatter light in pretty much all directions. When the rings are lit by the Sun, this effectively works a little bit like an emissive material. We have recreated this phenomenon for particle groups, adding a new optional diffuse scattering coefficient. 3D model materials already had this, but now we need it for the ring dataset.

Anaglyph custom colors

Following the many new features introduced in the 3D anaglyph system in 3.7.1, we now add the possibility to define custom right and left colors. This was rather simple to add, but may be a game changer for users of unorthodox anaglyph glasses.

In the new custom anaglyph mode, the user can pick and choose the colors for the left and right eyes.

Name conflicts

Gaia Sky now alerts users when multiple catalogs contain objects with the same name. When loading different datasets—such as combining the base asteroid catalog with additional asteroid surveys, or multiple star catalogs—some objects may be represented twice in the scene. Rather than silently loading duplicates, Gaia Sky displays a dialog at startup listing all detected name conflicts, allowing users to understand what’s loaded and make informed decisions about their data. The dialog includes details about each conflicting object, its source catalog or parent object, and the option to hide the warning for future startups. In the future, we plan to add options to keep all objects or remove duplicates for the session. Only indexed objects (shown in the left column) can be looked up by name, so understanding these conflicts helps users navigate the scene more effectively.

The new name conflicts dialog pops up at startup if conflicts are detected.

Prompted by this, we have looked at a number of catalogs and published new versions that attempt to reduce the duplicates:

  • Base dataset: remove Lutetia and Steins. Fix typo in Hygieia.
  • Asteroids/SSO FPR: remove all objects that are already in the base dataset, which is always loaded (minor planets—Vesta, Ceres, Hygiea, Iris, …—, and moons of Saturn, Jupiter, Uranus, and Neptune).
  • Nebulae: fix internal naming issues and misnamed objects.
  • NEARGALCAT: fix conflicts with constellation names by adding the " galaxy" suffix to some objects. Use procedural generation for Andromeda.

User Interface

The new Gaia Sky also comes with a number of user interface updates and new features.

Logarithmic sliders

We have introduced logarithmic sliders to handle high dynamic-range input values. Most of those are in the galaxy procedural generation window.

Migration to gdx-freetype

In order to support CJK languages, we have migrated away from hardcoded fonts (created with Hiero, where we generated them offline and added the static .fnt and .png files to the project) in favor of using the gdx-freetype library to autogenerate them. We use the Noto Sans CJK font. This ends up being faster to load (we only load the characters that we use) and looking better, while cutting maintenance time.

New languages

We have received contributions to add three new languages:

  • Simplified Chinese, by 半城雨岁辞 (Mynorant).
  • Italian, by Roberto Zacco.
  • Japanese (WIP), by Yauchi Hiromasa.

The user interface and objects can now be completely translated to Simplified Chinese.

Aspect ratio of welcome splash

The splash image in the background of the welcome and loading GUI no longer resizes to the window bounds. Now, it maintains the aspect ratio by using letterboxing and pillarboxing.

The background image in the welcome and loading screens now maintains the aspect ratio.

Log window

We have added some QOL improvements to the log window, like a button to Copy to clipboard the log contents. We have also fixed some layout issues.

Camcorder hide UI

There is a new option in the camcorder to automatically hide the user interface when a camera path is playing. This can be enabled in the camcorder tab in the preferences dialog.

OptFlowCam news

We have fixed some nasty bugs in the OptFlowCam implementation that produced awful sudden orientation jumps. We have also updated the environment manager from pipenv to uv, which is much faster at dealing with dependencies. Here is an example video created with the OptFlowCam export using only 25 keyframes.

A tour of the solar system using the OptFlowCam export method.

Variable stars

Finally, we have updated the variable stars model and rendering system to include the option to have color variability. This has not yet been tested, but it will become necessary for the future Gaia DR4 datasets.

Bug fixes

This release also comes packed with bug fixes. I have generated the release notes from the current development branch, and the bugfix section sits at almost 100 unique items.

Conclusion

Gaia Sky 3.7.2 is coming, and it will be packed with new features and bug fixes. Especially important are the introduction of three new languages, which opens up the software to entire new communities, and the work done on orbital elements and particle groups.

For future releases, I plan to add an implementation of Gaussian splats. This would make it possible to load and render objects with this novel method.

Back to news