Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
NewsSteam's own announcements and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesNewsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
sfsimNewsShockwaves
Community

Shockwaves

sfsim · published 6 Sep 2026, 23:26 UTC

All newsPlayers around this dateRead on Steam

I am excited to share early results of shockwave rendering with the community!

I would like to add visualization of a glowing shockwave during atmospheric reentry in the sfsim spaceflight simulator. I explored possible approaches by discussing the problem with Google Gemini. Popular approaches seem to use meshes with animated semi-transparent noise textures. However this still leaves the problem of determining the shape of the mesh.

Also the shape of the single-stage-to-orbit spacecraft is complex and the shockwave will look different depending on the orientation of the spacecraft.

In the end, Google Gemini pointed out the Jump Flooding Algorithm (JFA), published in 2006. This algorithm essentially enables a real-time distance transform on the GPU. In this case, it can instead be adapted to fit a shockwave to each wind-facing surface patch and determine, for each pixel, which shockwave candidate lies farthest upstream in the wind direction.

Here is a depth image as seen from the direction the wind is coming from.

JFA then expands this image into a depth image of the shock front. Billig’s formula is used (with a fixed nose curvature radius for this prototype) to create a shockwave emitter at each surface pixel.

The following image visualizes the seed pixel coordinates for the image. JFA has to track seed pixel coordinates in order to properly propagate the dominant/nearest shockwave.

The remaining step is to use this depth image for volumetric rendering of the shockwave. The next image shows a volumetric box used for rendering the shockwave.

By limiting the fog to pixels behind the shockwave, one obtains the following image.

One can instead apply exponential fall-off to create a more realistic image of a glowing shock front.

Future work includes taking into account the surface slope and curvature to get more realistic shockwaves.

Let me know any feedback and comments in the sfsim playtest discussion forum or one of the social channels.

More from sfsim

Other announcements

All news
Major update27 Aug 2026Deferred RenderingI have released version 0.30-1 of sfsim . This release introduces a major overhaul of the rendering code as well as a runway for the spacecraft. The rendering system is implemented using the Clojure programming language as well as GLSL . LWJGL3 is used to access the graphics card’s OpenGL bindings. The new rendering code uses deferred shading , which first computes and stores per-pixel geometry…Game update7 Aug 2026Metallic and roughness factorI have released version 0.29-1 of sfsim . The Open Asset Import Library (assimp) which is shipped with the LWJGL3 library has been updated some time ago. I am now able to access the metallic value and the roughness value from the glTF exported by Blender . The metallic and roughness value are now used in the model shader programs so that the spacecraft has a more metallic surface. In the meanti…In-game event16 Jul 2026Deferred shadingCurrently I am working on deferred shading. This requires me to separate rendering into two passes: · Geometry pass : render data to a point buffer, normal buffer, and a color buffer, etc. · Lighting pass : use the geometry buffers to compute lighting including shadows and volumetric clouds. The change is quite a bit of work, because I have to split up the graphics code and the shaders for rend…