The Solarist
Updated 3 years ago
4.2 K
The Solarist. Neon Challenge.



About me

I'm a Unity Developer having worked professionally with realtime simulations and real-world data visualizations . I have only basic skills in modeling or texturing so I'll try to create a minimalistic open environment with help of store assets and math as a mean of the expresive art =).



This project is inspired by Stanislaw’s Lem classic sci-fi novel “Solaris”[1]. Solaris is a thinking ocean planet on whose surface appear variously shaped phenomena, such as symmetriads, asymmetriads, mimoids, etc.


The main character is a scientist, Solarist-symmetriadologist. The contact with the ocean causes symmetriad to appear. Further detailed investigation of symmetriad makes it to create an environment that is based on scientist memories about his childhood on Earth.

Main Character

3D model taken without changes from (See list of used resources).
It comes rigged with basic animations (idle, walk, run and etc.)
Roughness texture inverted to Smoothness and packed with Metallic texture to Alpha and R channel respectively, so it can be used with UBER shader pack.


The whole scene will be lightened by dynamic time-of-day Directional light controlled by Usky Pro asset and Timeline and will not use any baked lighting. Default material shader is UBER from Asset Store. For more accurate shadows Next-Gen Soft-Shadows package from Asset Store is used.


Sky is created with Usky Pro assets from Asset Store. It’s simulates Earth atmosphere scattering based on precomputed transmittance and irradiance. I am using this asset because it can reproduce multiple-scattering phenomena and gave natural physically accurate look even for Non-Earth planets. So, I will change precomputation parameters to gave it non-Earth look at noon and dusk.


Ocean is created with The Ultimate Water System asset from Asset Store. Along with ocean waves simulation based on spectrum FFT this system can accurately blend it with shallow water simulation.
We will use this feature lately to gave additional details to water interaction. Color, PBR properties, Transmittance and Subsurface scattering parameters tweaked to gave an ocean dense, dark and ominous look.
We created two profiles for Calm and Disturbed ocean that will be blended according to the plot.


Clouds created with FogVolume 3 asset from Asset Store. By tweaking color, density and inscattering parameters I fit them to the scene. Also I created script that controls color parameters of clouds depending on time of day.
And I used spiral distortion animation to twist clouds in a point of disturbance.

Atmospheric scattering

Light scattering effect created with Hx Volumetric Lighting package from Asset Store. I used fog height functionality to create mist near ocean and light occlusion at dusk.


Symmetriad is based on 3D Mandelbrot (Mandelbulb) mathematical model described in following article [2]. To render Mandelbulb URaymarching asset is used. Couple of parameters were added to distance function to make morphing animation of symmetriad. Raymarch shader also were a little bit modified to handle large-scale objects.
The final distance function look like this:
inline float DistanceFunction(float3 pos) { float3 zd = pos; float dr = 1.0; float r = 0.0; float Power = _Cparam; float Bailout = _Bailout; for (int i = 0; i < 12 ; i++) { r = length(zd); if (r>Bailout) break; // convert to polar coordinates float theta = _Aparam *ACos(zd.z / r); float phi = _Bparam * ATan(zd.y/zd.x ) ; dr = pow( r, Power-1.0)*Power*dr + 1.0 ; // scale and rotate the point float zr = pow( r,Power); theta = theta*Power; phi = phi*Power; // convert back to cartesian coordinates float stheta = sin(theta); zd = zr*float3(stheta*cos(phi), sin(phi)*stheta, cos(theta)) ; zd+=pos; } return 0.5*log(r)*r/dr ; }
Changing Aparam, Bparam and Cparam I can achieve interesting morphing and shapes that looks like symmetriads.

Gravity annomaly

Effect is created with Mesh particles system with trails. Meshes and materials were taken from “Photoreal Stones Pack” asset from Asset Store.

Memory buildings

It's simple cubes created with ProBuilder asset from Asset Store. The windows area is extruded inside the cube.
I added window model from and put it in cube.
Instead of glass material I used Fake Interiors FREE shader from Asset store to give it a depth.

The brick material is based on Brick Wall with Light Grout material from but with UBER POM distance shader (and Distance map) to immitate distortions caused by Solaris inaccurasy.
Next we adding some props to our cube building from Asset Store (see full list) to make it look more interesting. Also I added a pole to connect a cable.

Now we duplicating it 10 times, and give different y-axis rotation to each of building to make it look more naturally.
To create cables I used Ultimate Rope Editor from Asset Store.
Put control points to each pole, adjust length and generate cable. Materials is just black color with some smoothness.

To make it more summer dusk atmosphere I added PA Particle Field from Asset Store. Default particle texture with Transparent Lit shader.

Memory island

The Island mesh is the only thing in this project created with external software. It' s basically a deformed sphere with noise created with Blender and exported to FBX. Material is Soil Mud with Beast tesselation shader from Asset Store.

Grass is taken from PBR Plant Pack Ontario and placed with QuickBrush tool from Asset Store.
Bench model is taken from Sketchfab: and is created by under cc licence.
Streetlight model is also from Sketchfab: and is created by under cc licence. I slightly add contrast to emission texture so it can work better with high intesities.
Manhole model is from Pack - ECI Environment from Asset Store.

Character animation

As it were mentioned before there is only few basic animations comes with the character model from store. To make more complicated moves needed by scenario I used FinalIK package from Asset Store. Full body biped IK and Look At IK solvers are used.
To create touch animation I used only one Hand Effector and move it and animated weight values to make character touch an ocean surface.
Look at IK is used to make character look at certain points durning scenario in a natural way simply just by changing target point.
All other character animations in this project created the same way.

Post-processing stack

I added post-processing stack right after tweeked sky and ocean. To create cinematic look I'am using almost all effects with just minor parameters changing. Lets take a closer look:


I used TAA because it gaves most cinematic look but it gave me a problem with ocean, bacause it produces a lot of wave motion and incorrectly handles velocity buffer, so we need to make sure waves don't move to quickly.

Ambient Occlusion

In my case its critical to gave symmetriad lightning details because of it rendering nature (it does't exists as geometry but it writes depth).

Screen-space reflections

Usually critical for realistic arch-viz in my case it gives just additional details to symmetriad and buildings.

Color Grading

It's funny but the filter with the most reach artistic features in this project I used almost "as is"just with some minor changes in Lift. "Neutral" tonemapping mode gave best calm, natural result.


I put Diffusion to 10 to have nice soft lens scattering effect.


Properly chosen grain size can increase cinematic look and hide some banding effect.

Vignette, Chromatic Abberation

Soft touch of it even more increasing cinematic look.

Motion Blur

It's just switched on and it works great.

Depth of Field

In this project I use Very Large kernel and small aperture to create narrow DoF. Focus distance and focal length are taken from cinemachine virtual cameras via Cinemachine post-processing addon.


Overall there is 17 virtual cameras, one for every cut. Mostly I used Transpose Composer for Aim and Dolly Track for Body. It's fantastic how you can setup the whole scene with cameras and targets and after adjusting position of some objects automatically get proper composition. The iteration time decreases dramatically. So lets take a closer look to cuts:
Here I am using Composer focused on a head and animated dolly track.
And here I am focused on right hand of the character and accurately following it durning animation.
Eagle eye fly-by around symmetriad is also created with composer and dolly track.


At first let's take a look at a whole timeline of this project:
I'am using animation tracks to control simple parameters and transforms durning scenarios. For more complicated behavious it should be good idea to write custom playables but I ended up with custom script that triggering via animation track.
Cameras cuts are controled via activation tracks.


Music is taken from Asset Store package Ambient Space: Sci Fi Soundtrack. I used 3 compositions thats seemlessly blending one in another via Timeline:

Asset Store

  1. UBER - Standard Shader Ultra
  2. Next-Gen Soft-Shadows
  3. Fake Interiors FREE
  4. Ultimate Rope Editor
  5. PA Particle Field
  6. Beast
  7. QuickBrush
  8. PBR Plant Pack Ontario
  9. Pack - ECI Environment
  10. Photoreal Stones Pack
  11. Final IK
  12. DOTween (HOTween v2)
  13. HQ Air Ducts Kit
  14. PBR Modular Rail Handrail
  15. Electric Fuse Box 01
  16. Air condition Unit 01
  17. Water Drips
  18. ProBuilder
  19. UWS - Ultimate Water System
  20. uSky 2.0 Beta: uSkyPro

Third-party assets

  1. URaymarching


It was very exciting to work on such a project, when you alone can create a new worlds =)
Hope you will enjoy watching the result as much as I enjoyed creating it.
Also I want to say special thanks to my wife Tatiana that supported me durning the project and helped me with camera angles =).


Alexey Semenov
CTO - Programmer