Update 0.6 - Changelog
Added 2024-06-07 12:00:10 +0000 UTCNew version adds gas particles, a material editor with customizable emission and opacity curves, textured meshes, anti-matter, and much more.
The build is available on Discord for all Patrons.
Gas rendering
The rendering of gas particles has been completely overhauled. Even though it was previously possible to create gas clouds or galaxies, particles could not absorb light - they only emitted light but had no opacity - and there was no way to add both solid and gas objects to the same simulation.
This update adds an option to set gas opacity, occluding gas particles and solid objects further away from the camera. The opacity can also depend on temperature to simulate the realistic behavior of gas. The gas rendering is supported by both the real-time renderer and the raymarcher, and both renderers give consistent results.
There are a couple of parameters that affect gas particles in the render settings, the most important being the 'gas rendering scale', which is a trade-off parameter between rendering speed and quality.
Gas ring with various values of the attenuation distance.

Phase transitions
Not only is it possible to have both solid and gas particles, the particles can also change their phase. Solid particles can heat up and evaporate, turning into gas, and gas particles can be compressed by gravity and turn solid.
The phase behavior can be set independently for each material. It can be always solid, always gas, or change phases depending on the simulation data, such as temperature or density.
Note that the phase is currently only a visual parameter, particle motion is not affected by the phase of the material.
Gas particles clustering together and forming solid bodies

Material editor
All material parameters can be now found in a new panel, separated from the parameters of individual objects. The material panel allows you to set the simulation parameters of the material, select its phase, and customize the emission spectrum and opacities.
In the emission editor, you can set the colors and intensities of light emitted by particles. You have several options: use the default black-body spectrum, select another color palette from the list, or create a custom one. Furthermore, you can set what physical quantity is used to determine the emission value. These are:
Temperature, which is the default for most materials. This gives you the usual black-body emission.
Acceleration, used for galaxies, cold dark matter and gas clouds
Velocity, changing particle colors depending on their speed.
Relative density, allowing the solid particle clusters and expanded gas particles to have different colors or intensities.
Similarly, you can set the opacity curve, which determines how opaque (non-transparent) particles are. It can also be determined by a quantity:
Density. This is the default behavior, low-density particles are more transparent.
Temperature. It makes hot particles more transparent than cold ones.
Kramer stands for Kramer's opacity law. It attempts to visualize gas in a physically correct way, the opacity depends on both the density and temperature.

Antimatter
In addition to emission and opacity controls, the material editor now also allows turning a material into antimatter. Antimatter particles behave the same way as their ordinary counterpart, except they annihilate when they come in contact with matter. Both the matter and the antimatter particle turn into energy, significantly heating all neighboring particles and creating a huge explosion due to the released radiation pressure.
A Moon made of antimatter, colliding with Earth, annihilating and creating a massive explosion.

Texture mapping
Objects can now use various texture projections, as shown in the previous development update. You can choose between the spherical, cylindrical or planar mapping, and most importantly, it's possible to load the texturing coordinates from the mesh files. This makes it possible to create custom textured objects in Blender or a similar program, exporting them to a .obj or .glTF format, and importing them to SpaceSim.
When you add a mesh object, the diffuse texture is set automatically. You can also manually set the specular, emission or city lights texture, if you prepare them for your object. The main limitation is that the mesh can only have a single material, meaning all diffuse textures have to be packed into a single texture atlas.
Objects with different texture mappings - cylindrical, spherical, planar and custom.

Raymarcher improvements
In the previous updates, the raymarcher has lagged behind the real-time renderer. This update rectifies that - it adds support for most of the missing features and makes the raymarcher faster and more stable.
The renderer now takes into account the various texturing options, added to the real-time renderer in the last update, such as specular reflections and city lights. It can also render massless particles, triangle meshes (custom shapes of rigid objects) and also the newly added gas particles. All these objects can illuminate each other, cast shadows and be distorted by black holes, with a few exceptions listed below.
Particle illumination is now based on light sampling. This leads to results independent of the number of particles, consistent rendering speed, and stability (no more crashes due to TDR). The downside is that it can lead to noisy results in some cases. The noise level can be controlled by the number of light samples and the iteration count, both set in the raytracer settings.
Current raytracer limitations are:
Refraction is not supported. This may be added in a future update.
Massless particles are always rendered solid and the motion blur is limited. It will only work when there are no sources of massless particles in the simulation (comets, black hole jets, etc.).
Black holes do not interact with gas particles correctly.
Orbital decay and black hole mergers
Due to popular demand, black holes can now collide and merge into bigger black holes. Furthermore, when two black holes orbit close to each other, they gradually lose their angular momentum due to the emission of gravitational waves as described by the general theory of relativity. Because of that, they get gradually closer to each other and eventually collide.
The raymarcher has also been improved to handle the rendering of multiple interacting black holes. Light can be distorted by more than one black hole at the same time, which comes in handy when the black holes start to merge.
The orbit decay and black hole collisions can be disabled in the simulation settings, if needed.
Two black holes with accretion disks, moving closer to each other, colliding and merging into one.

Camera projections
The update adds alternative projections for the raymarcher. In addition to the perspective projection, it's now possible to render the simulation using an orthographic, fisheye, spherical (360°) or cubemap camera. This is useful for making a 360° youtube videos or fulldome animations for planetariums.
The camera projection can be set in the render settings, in the 'raymarcher' category. Note that this does not affect the real-time renderer.
Example showing different camera projections

Alternative tracking option
The targeted camera can now use a 'dynamic tracking', as described in this development update. The tl;dr version is that the tracker now always follows an object, rather than a center of mass of a fixed set of particles. When two planets merge into one, the camera changes to track the newly formed planet instead of the old one that no longer exists.
The previous tracking behavior is called 'static tracking' and it's still the default, because it works more consistently and predictably with the simulation history. The dynamic tracker is mainly intended for simulation/recording without using history.
Helper points
The update adds two helper objects, barycenter and Lagrange point. These objects don't create any particles, but they can be used to easily place another object relative to the barycenter of a list of objects, or orbit a specific Lagrange point. This allows to create configurations of objects that were previously difficult to set up or even completely impossible, such as complex hierarchical star systems, a satellite orbiting an L4 Lagrange point, or an accretion disk around a binary star.
You can try to create the six-star system TYC 7037-89-1, the barycenter object makes it easy to do. Note that there is currently no way to track the barycenter during the simulation, I plan to add it in future updates.
Translation gizmo
Objects selected in the simulation setup now show a transform gizmo. You can use the gizmo to easily move them in space along individual axes, without having to adjust their coordinates manually in the object parameters. If you've used Blender or other 3D graphics software, this doesn't need any further explanation.
If needed, the gizmo can be turned off in the preferences.

Graphable properties
This is a small improvement that helps to visualize how object parameters change during the simulation. By right-clicking a property and using 'Plot' from the menu, you create a graph window that keeps track of the selected parameter. You can create any number of plots for all objects in the simulation.

Other improvements
Outlines of a selected object are no longer occluded by other objects. You can see the full outline even if the object is occluded by a ring or hidden behind another object. For gas particles, the outline shows the physical size of the particle, rather than their visual size, which is often much larger due to gas expansion. Furthermore, you can customize the outline color and transparency in preferences.
Setting the position of an object relative to another object now also affects its velocity, making it easier to set up orbits of moons, etc.
The list of simulation presets contains a set of filters to simplify the preset selection. You can use the filter to only show simulations of asteroids, "what if" simulations, and others.
Added two additional non-realistic color modes, allowing to color particles by their phase and expansion (visual radius scale of gas particles).
When selecting a satellite during the simulation, the panel shows the orbit parent and a set of orbital elements.
New content
Objects:
Added a Shearing sheet object. It's a square of particles representing a small part of a ring system. The ring can be simulated by turning on the periodic boundary conditions and enabling a new inertial force that simulates the gravitational effect of the parent planet. This force can be enabled by turning on 'inertial forces' in the simulation settings and setting 'epicyclic frequency' to a non-zero value.
Presets:
Anti-Earth is a collision simulation featuring an Earth made of anti-matter. It demonstrates the annihilation of matter and anti-matter and phase transitions.
Merging Black Holes showcases the newly added orbital decay and collisions of black holes.
Thorne-Żytkow object shows the formation of a hypothetical object, created by a collision and a neutron star with a red giant.
Shearing Sheet is a simple simulation that uses the eponymous object to show the formation of structures in a planetary ring.
Stellar prominences is a simulation that shows - you guessed it - stellar prominences. I realized there wasn't any example of this simulation option in the presets, so I added one.
That's all for now. Stay tuned for more updates.
Comments
Yes, you need a Patreon subscription to join the channel.
Pavel Ševeček
2025-01-23 01:43:09 +0000 UTCI’m in the dc server but I don’t have the channel, I’m a free patreon or whatever and I don’t pay I’m a member I think, do you have to pay? Also I’m new to patreon
legendary ations
2025-01-22 23:34:10 +0000 UTCI don't have discord :[
jorge
2024-09-23 22:30:10 +0000 UTCThe link is in the patreon channel on Discord
Pavel Ševeček
2024-09-22 22:51:30 +0000 UTCi cant find the download links for this or 0.5 update
Tayven Gaming
2024-09-16 00:30:28 +0000 UTCyay i have discord now can i have it wheres the download link
Smirity Rani Nath
2024-09-08 06:48:30 +0000 UTChow to get
Melissa Dunkelberg
2024-08-19 22:32:57 +0000 UTCI plan to put it to Steam in the future.
Pavel Ševeček
2024-07-28 18:26:02 +0000 UTCi dont have discord or steam but i really want it. is there another way?
Smirity Rani Nath
2024-07-28 05:51:25 +0000 UTCi cant join the discord, it leads me to a channel with text
hakeem alalawi
2024-07-08 09:35:02 +0000 UTChow do you update it
Abel Martinez
2024-07-01 19:41:51 +0000 UTCyes
Pavel Ševeček
2024-06-08 00:40:18 +0000 UTCis the 0.6 contest edition for a limited time
spacesim guy
2024-06-08 00:16:06 +0000 UTCW
Richard Boderman
2024-06-07 21:39:49 +0000 UTCThere is a download link at the top
Pavel Ševeček
2024-06-07 15:12:47 +0000 UTCHow can i download it?
Szymon Dubicki
2024-06-07 15:06:28 +0000 UTCwhats contest edition
Petter Larsson
2024-06-07 14:29:02 +0000 UTCNice
Grand Void
2024-06-07 12:37:27 +0000 UTC