XaiJu
pavelsevecek
pavelsevecek

patreon


Update 0.6 - Changelog

New 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:

Similarly, you can set the opacity curve, which determines how opaque (non-transparent) particles are. It can also be determined by a quantity:

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:

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

New content

Objects:

Presets:

That's all for now. Stay tuned for more updates.

Comments

Yes, you need a Patreon subscription to join the channel.

Pavel Ševeček

I’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

I don't have discord :[

jorge

The link is in the patreon channel on Discord

Pavel Ševeček

i cant find the download links for this or 0.5 update

Tayven Gaming

yay i have discord now can i have it wheres the download link

Smirity Rani Nath

how to get

Melissa Dunkelberg

I plan to put it to Steam in the future.

Pavel Ševeček

i dont have discord or steam but i really want it. is there another way?

Smirity Rani Nath

i cant join the discord, it leads me to a channel with text

hakeem alalawi

how do you update it

Abel Martinez

yes

Pavel Ševeček

is the 0.6 contest edition for a limited time

spacesim guy

W

Richard Boderman

There is a download link at the top

Pavel Ševeček

How can i download it?

Szymon Dubicki

whats contest edition

Petter Larsson

Nice

Grand Void


More Creators