DevLog
Terraforming Preview | Adding More Materials to Universe Sandbox
Oct 24th
Our new composition system, including eight new materials, like oxygen and methane, is still in active development and has not been released, but you can opt-in to a preview version now on Steam. Every planet in Universe Sandbox is simulated with a combination of materials, like iron and water, that are used to compute properties like planet radius and water flow. However, our current composition system is too simple to simulate phenomena like lakes of liquid methane on Saturn’s moon Titan. Our new system will allow you to realistically simulate planet surfaces and atmospheres, accurately terraform planets, and more.
Try the Terraforming | Update 34 preview right now!
Eight new materials and our new composition system are now available for testing and feedback. Learn how to opt-in to a preview version on Steam:
https://universesandbox.com/support/previewversion
Material Properties in Universe Sandbox
Current Composition System
Universe Sandbox’s current composition system uses four materials (iron, silicate, water, and hydrogen) each with a set of physical properties including
- Density – to compute an object’s mass and radius and determine where materials are within a planet (for example, iron is the densest so it’s at the core).
- Thermal capacity – energy required to increase the material’s temperature by one degree. Used to determine the Surface Heat Capacity of a planet.
- Molecular weight – average mass of a molecule of the material. Used to create clouds of evaporating gas called volatiles.
Water, the only material currently simulated across an object’s surface, has some additional properties
- Boiling point – temperature where a material changes from a liquid to a gas
- Melting point – temperature where a material changes from a solid to a liquid
- Mass of the material in each phase (solid, liquid, or gas)
- Liquid and solid density, heat of fusion, and heat of vaporization – to determine how fast water flows, evaporates, and freezes on planet surfaces
- Realistic (and customizable) colors
New Composition System
Our new composition system has 12 materials: iron, silicate, water, hydrogen, helium, carbon dioxide, oxygen, sulfur dioxide, methane, nitrogen, argon, and ammonia. These are the materials necessary to simulate the most interesting internal, liquid, and atmospheric properties of most objects in our Solar System. Many, like oxygen and carbon dioxide, will also be necessary for life simulation.
Each material has all the properties described above, and they will update in real-time according to the conditions on the planet (though iron and silicate will only exist inside planets and won’t have customizable colors). Want to know the freezing point of carbon dioxide or see how fast it’s evaporating on your custom planet? We’ll simulate it in real time.
Using New Materials for Simulation
Material Phases
In our new system, all new materials can exist inside of, on the surface of, or in the atmosphere of a planet. A material’s phase will be simulated based on its temperature and pressure using something called a phase diagram. Our phase diagrams, which show a material’s state at different temperatures and pressures, are based on data taken in labs as well as geological and astrophysical models of planets. Check out the real-life phase diagram of water from Wikipedia as an example, pictured below.
We plan to show the phase diagrams we’re using to simulate each material eventually, but right now, they’re primarily for testing. Our phase diagrams have been simplified for performance reasons but still closely reflect the scientific phase diagrams. You can compare our water phase diagram below, which has been edited for clarity, to the real-life phase diagram of water above.
Planet Interiors
The cores of planets are hot and under intense pressure. These extreme conditions affect a material’s phase and density and thus the volume the material takes up in a planet’s interior. We’re using realistic models of planet density to compute and dynamically update planet radii from their compositions.
The graphs above show Earth’s density based on depth (or radius) in Universe Sandbox (top) compared to a scientifically researched model (bottom). While our in-game model is simplified, both graphs have the same shape and similar densities when compared to the radius. Comparing models allows us to check the integrity of our in-game model.
Our new composition model is more realistic but does not account for the porosity, or amount of tiny holes, of the internal structure of some objects, like the Moon. This means our model simulates some object radii slightly smaller than in real life. To account for this, we’ve added a porosity factor, which is usually an increase of a few percent, to adjust known object radii to match their real values.
The materials on the inside of planets, including iron and silicate (which are only simulated in planet interiors), do not mix together like materials on the surface or in atmospheres. Instead, we simulate planet interiors with layers of individual materials to accurately compute their radii.
Surfaces
Planets can be constructed with any (or all) of the materials available in Universe Sandbox using the Planetscaping tool, Material tool, or an object’s Composition tab. The four materials with the most mass are automatically simulated across an object’s surface, similar to how water is simulated now. You’ll also be able to override this and choose which four materials to simulate across an object’s surface regardless of mass.
Surface materials freeze into ices, evaporate to become part of the atmosphere, and melt or condensate to flow together and form oceans. This allows us to realistically simulate phenomena like the lakes of liquid methane on Saturn’s moon Titan and plumes of gas evaporating into the atmosphere during collisions.
We plan to increase the number of simulated surface materials in the future, but we’re still determining the best way to do that without decreasing performance. For now, we’ve found that four materials allow for realistic simulation and fun experimentation without significantly affecting performance.
We simulate material colors on the surface and in the atmosphere based on their thickness and scientific measurements of how much light they absorb and emit. The colors of materials in each phase are also customizable across the simulation. For example, liquid water has the same base color on all planets (not including other color changes from the atmosphere or starlight).
Our material color simulation only simulates single material colors and doesn’t include any complex particles that might normally be suspended in them in real life. This means Venus and Titan may not look completely realistic yet because their atmosphere color comes from tiny amounts of complex materials not in Universe Sandbox. We are actively working on the best way to realistically simulate these colors.
Atmospheres
Atmosphere color, opacity, amount of atmospheric heating (the greenhouse effect), and amount of Rayleigh scattering (which determines how light scatters in the atmosphere and is what makes Earth’s daytime sky appear blue) on planets is realistically simulated from the mixture of gasses in a planet’s atmosphere.
You can create realistic Earth-like atmospheres for habitable planets and oppressive Venus-like atmospheres just based on their compositions. Currently in Universe Sandbox, this is only possible by manually changing a planet’s Infrared Emissivity, which can increase the amount of heat the atmosphere of a planet retains.
The color and opacity are simulated locally throughout a planet’s atmosphere. If you add lots of oxygen in a single region of a planet’s atmosphere, it will get more opaque and change color based on the amount of oxygen in just that area.
New Minimum Operating System Requirements
To add new materials and eventually simulate more than four materials across planet surfaces, we will be dropping support for Windows 7 when this feature is released.
While it is never fun to have support dropped, this will affect just 0.25% of our users and will allow us to leverage newer computational methods to increase the performance of our surface simulation.
We’ll make sure all users who are affected by this change will be able to access the final version of Universe Sandbox with Windows 7 support.
What’s Still Being Worked On?
We’ve been prioritizing designing the properties, data views, and tools for you to easily construct atmospheres, build and terraform planets, and track these materials, but the interface for using them is still a work in progress.
Planets saved in previous versions of Universe Sandbox will only have the previous four materials, which will look and behave differently in our new composition system. Imagine Earth with a pure hydrogen atmosphere – not very realistic. We’re still trying to make this process as smooth as possible, and eventually, you’ll be able to easily update your planet’s atmosphere to be similar to Earth, Venus, Mars, or Titan.
And like any new feature, there may be bugs we have yet to find and fix – and you can help!
Try the Terraforming | Update 34 preview right now!
Eight new materials and our new composition system are now available for testing and feedback. Learn how to opt-in to a preview version on Steam:
https://universesandbox.com/support/previewversion
Let us know what you think and show us what you do with these new materials!
Join our community discussions on our Steam Forum and our official Discord community.
Universe Sandbox for Mobile | Development Challenges | Update 2
Aug 23rd
Bringing the complete Universe Sandbox experience to mobile is an exciting and challenging project, and while development was stalled while hiring a new user interface engineer, we are back on track! While we still don’t have a release date for Universe Sandbox on mobile, we want to share our recent progress and current obstacles.
For an overview of our plans for Universe Sandbox on mobile devices, you can read our first Mobile DevLog.
Pocket-Sized Complexities
We’ve been thinking about Universe Sandbox mobile for a long time and have been developing our panels and buttons to be easy to view and use on small screens for years. In fact, Universe Sandbox mobile is built from the exact same code as the version you already know and love, so it will have the same features and user interface as the desktop experience.
This shared codebase means you can enjoy any new features and improvements we add to Universe Sandbox on any device, whether you’re on a desktop, laptop, VR headset, phone, or tablet.
While these are seemingly simple goals, they create complex design challenges:
- How to automatically arrange panels and adjust your view so you can focus on controlling the simulation, not having to manage the user interface
- Switching between multiple panels, like an object’s properties, data views, and guide instructions, on small screens in landscape and portrait modes
- Overhauling our simulation tools (like explode, laser, and planetscaping), to adapt to all screen sizes
Under New (Layout) Management
While most other simulators and games have a different user interface for their mobile and desktop versions, we want ours to use the exact same interface for all platforms. We think we’re among the first to do this, but if you know of another or have done this with your game, please let us know! You can see what Universe Sandbox mobile might look like right now (including why we haven’t released it yet) by resizing the Universe Sandbox window on your computer to the size of your phone (since our user interface dynamically responds to your window size).
While we are still making performance improvements so Universe Sandbox can run smoothly on phones, our primary obstacle in mobile development is ensuring our interface is usable on a small touch screen like a phone. We’ve started tackling it by designing a system to intelligently hide and reveal panels as they open and close, which we’re calling our Dynamic Layout System.
While creating this system will take time, it should allow future improvements and new features to work in Universe Sandbox without any extra development, regardless of whether you’re playing on mobile or desktop. That means we’ll have more time to work on new features instead of spending time implementing the same feature in two different ways.
Current Progress
We’ve been researching the best way to create this dynamic panel management system and have made significant progress implementing it within Universe Sandbox.
There’s still other work to be done, and we do not have a release date or official price for mobile, but we’re still planning on it being a one-time paid app with no ads or in-app purchases.
We have yet to finalize the minimum device requirements for the mobile version, but it will likely require a modern device with decent specs. We will share more about hardware requirements as soon as we finalize them.
Taking a feature-rich, user-interface-heavy desktop game and porting it to mobile presents many challenges, but we are excited to tackle them and create an experience unlike any other at your fingertips.
To receive updates about mobile, like this one, sign up for our mailing list:
http://universesandbox.com/mobile/
Join our community discussions on our Steam Forum and our official Discord community.
Universe Sandbox for Mobile | DevLog 1
Sep 10th
You can purchase Universe Sandbox via our website or the Steam Store.
Have you ever wanted a universe in your pocket? We have too, and so we’ve been actively working on a mobile version of Universe Sandbox for both iOS and Android to make this a reality.
Universe Sandbox for mobile will have the same features and interface as the desktop version (in fact mobile and desktop are built from the same source code) and we are working to make sure it is an equally enjoyable experience.
All-Around Improved Experience
Our work on mobile has motivated many features and improvements that have already been made to the desktop version. This includes automatic scaling of graphics settings based on screen resolution and the separate, minimizable panel that comes up when you use a tool, like the laser. Additionally, optimizing Universe Sandbox for mobile has the added benefit of improving performance on the desktop version.
Designing a Handheld Universe Simulator
For the last few months, we’ve been focusing on making sure the mobile version is just as fun to play as the desktop version. In Update 26, we unified the user interface across desktop and VR, and we’re continuing to develop this unified interface with physically smaller (that is, mobile) screens in mind. You can check out how we are building this flexible user interface right now by making the window in the desktop version small. If you do try this, you’ll notice it presents quite a design challenge, not only for existing features but also for any features we add.
You may have seen some of the improvements we’ve made to our user interface in recent updates. For example, our bottom bar redesigns both create a sleeker, more adaptable desktop experience while also making everything more accessible on mobile. However, we are still working on solving a few design challenges including (but not limited to):
- What’s the best way to manage all of the different panels on a small screen (our guide system creates particular challenges)?
- Working around the limitations of minimum button sizes required for a touchscreens
- How do we make the user interface work in both portrait and landscape orientations?
What’s Next for Mobile Development
We have been working on numerous updated user interface designs that improve functionality and clarity no matter what device you are on, and implementing those is one of our major next steps. We’re also currently hiring a cross-platform engineer to help bring Universe Sandbox to mobile and beyond.
While we still do not have a release date or official price for mobile, we currently plan on it being a one-time paid app with no ads or in-app purchases. We hope to write more of these mobile-focused DevLogs as we make more progress, so stay tuned!
If you want to receive updates when there is new information about mobile, like this DevLog, sign up for our mailing list:
http://universesandbox.com/mobile/
To join our community discussions, please join us on our Steam Forum and our official Discord community
SPH Fluid Simulation | DevLog
Dec 13th
Video: Simulating a planetary collision using a new method called smoothed-particle hydrodynamics (SPH).
Hopefully by now you’ve had time to check out Surface Grids & Lasers | Update 24 of Universe Sandbox. If you haven’t, time to get out from that rock you’ve been living under and start terraforming all those other rocks floating through space.
We plan to continue to add to the Surface Grids feature with even more detailed surface simulation through next year and beyond. Surface Grids is a massive new feature that changes a lot with the core simulation of objects in Universe Sandbox, and so far we’ve just scratched the surface of what it can do. We’re excited to explore its possibilities even more.
But right now, let’s turn our attention to something our physics developer, Alexander, has been working on. Introducing… smoothed-particle hydrodynamic fluid simulation. Let’s just call it SPH for now.
SPH is NOT included in Universe Sandbox yet. This is a behind-the-scenes look at a feature that we are still working on.
What is SPH and how does it work?
For a deep dive into the mechanics of SPH, check out this paper from our very own physics developer, written back in 2010 (interestingly, not written in relation to Universe Sandbox, but for another project that was similar in many ways — there’s a reason why we hired him many years ago to help build this new version of Universe Sandbox, and it had more to do with relevant experience than it did with his propensity for typos… *wink*).
Or if you’re curious about SPH, but perhaps not curious enough to read 35 pages on it, here’s a crash course:
SPH is a computational method commonly used for modeling fluids (though it can also handle solids). That might make you think that we’d use this for simulating something like water flow on a planet’s surface, but “fluid” here actually has more to do with simulating much larger objects.
On an astronomical scale, many of the objects you can simulate, like stars and galaxies, behave like fluids. This is also true for planets, whether it’s a gas giant or a rocky planet with, or even without, a molten core. And even in the case of large chunks of solid rock colliding with each other, there is such intense temperature and pressure that the materials behave more like fluid rather than rigid solids: they’ll stretch and distort and be torn apart, rather than splinter, crack, and shatter.
So in short, SPH will help create more detailed, realistic simulations of collisions, fragmentation, and formation of different types of objects in Universe Sandbox.
How? First, the material, such as a planet, is broken into a number of “particles” that each have properties such as mass, temperature, velocity, and position. You can see these particles clearly in any of the videos in this post.
But the “smoothed” part of “smoothed-particle hydrodynamics” means that these particles are just sample points of what is actually a continuous material, where they each contribute to the properties at a given point based on a weighted, smoothed, average. Together, they describe the properties that exist at any given point in a flow of material, but they themselves are not the material. Think of it like buoys in an ocean: the buoys will each monitor the properties at their location, and they are distinct from the continuous fluid, ie the ocean, that they are monitoring. So for the future of SPH in Universe Sandbox, the current debugging visuals, where you can see individual particles, will ideally be replaced by something that better represents the continuous fluid that is actually being modeled.
By tracking how each of these particles move, and more importantly how they move in relation to their neighbors, you can calculate pressure and viscosity (friction) at any point in
the fluid. And then you can estimate how this will move over time under different forces. Combine this with gravity and you start to see a simulation with emergent behavior that matches what we observe in real life.
Why SPH?
Because you get accurate simulation with emergent behavior, rather than disparate modeling of phenomena that needs to be stitched together. For example, with SPH, material will collect under the influence of gravity, but it will not all fall to the center of mass. Instead, as more material collects, the pressure increases and starts pushing out material, preventing a total collapse. The result is a spherical shape, and not because we specifically told it to become a sphere, but because that’s what happens when you simulate physics on a more granular level.
Or look at the case of Roche fragmentation, where a moon may be torn apart from the gravity of its host object “pulling” more on its near side than its far side. In our current simulation, pre-SPH, where we model how single points of mass move purely under the influence of gravity, we need special handling to calculate when and how this should happen, according to analytical models. But with SPH, this phenomenon just happens as the result of forces acting on the moon.
Why SPH specifically and not another method? When simulating space, there is more literal space than there is simulated material. SPH is great for handling cases like this where material is sparse. Other methods instead require simulating each point of space, seeing how each of these points changes (versus tracking only points specifically in a material), which would be very slow for anything like entire star systems.
Universe Sandbox is a unique physics simulator because we aim to make it an accessible, real-time, interactive experience. When compared to non-real-time simulations run on supercomputers, this presents a lot of limitations, and SPH is not immune to these. The biggest issue we will need to navigate as we continue development is the resolution of the model — to be really accurate and demonstrate smaller, local changes, you need a lot of sample points. But each point comes at the cost of a good chunk of computing power. So as with all features in Universe Sandbox, we’ll need to find a balance, with enough points to model things in interesting ways, but not so many that it becomes a slideshow.
So… what does it do?
Technical explanations are fun (…did I get that right?), but what you really want to know is what does this SPH thing mean for me and my planets? That’s also answered above: it will help create more detailed, realistic simulations of collisions, fragmentation, and formation of different types of objects in Universe Sandbox. But what you really, really want is a bunch of videos of this is in action. Understandable.
Quick disclaimer: SPH is a feature in its early stages of development. Visuals are for debugging purposes. Anything shown many not be representative of how it’ll appear and behave when included in an official Universe Sandbox update.
Two equal-sized bodies showing pulsating behavior as pressure and gravity tries to find a balance.
Two earths spinning the same direction and colliding. The result is a combined body with non-zero angular momentum from the individual momentums adding together in the same direction.
Increasing the density and speed of Mars before it impacts Earth and shoots right through it.
The existing simulation “Earth & Moon x25 Offset” showing all Earths collapsing and combining.
Results of the Moon fragmenting around Earth.
So in short, SPH will improve or make possible simulations of the following:
- Total fragmentation
- Tidal deformation and Roche fragmentation
- Accretion disks / object formation from debris
- Giant-impact hypothesis (moon formation!)
And in the longer term, we hope to apply it elsewhere, including more accurate galaxy collisions and star formation.
What’s Next
As you can see, SPH is already working pretty well within Universe Sandbox. But you can also see that it’s not exactly integrated with everything else yet. The visuals right now are intended solely for debugging purposes, and the transition from our standard planet visuals to the SPH particles is a little rough. Making visuals that look more like molten planets being torn apart will definitely take time, but we have some ideas in mind that we’re excited to explore.
The visuals are just one component of what we’ll need to work on to integrate SPH with Universe Sandbox. Making it work with other complex aspects of the simulation, like the new Surface Grids feature, will be its own can of worms. But we’re no strangers to technical challenges. And since we think SPH is worth experimenting with on its own, we hope to release an early version of it using the debug visuals and let you turn it on if you’re interested in checking it out. We don’t know when this will happen yet, but hopefully not too long into next year.
And hopefully before then, we’ll have a small update ready that will add some oft-requested color customization…
Last Updated: November 14, 2022
Surface Grids & Lasers | DevLog #12
Nov 6th
Video: Saving an object and its Surface Grids data then adding it to the simulation.
Surface Grids & Lasers are not yet available in any official Universe Sandbox releases. But they are now available in the experimental version of Universe Sandbox! Learn how to take an early look at Surface Grids & Lasers.
If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, and #11. Keep in mind these DevLogs document a work-in-progress feature. Anything discussed or shown may not be representative of future versions of Surface Grids.
What is Surface Grids? It’s a big, complex feature still in development. It simulates the surfaces of planets, moons, and other objects, adding much more detailed, dynamic, and accurate visuals. And as a bonus, it makes it possible to add tools like lasers, which are essentially just a fun way of heating up localized areas of a surface.
Improving the Experiment
Since we released the first experimental version that included Surface Grids, we’ve released a few updates that have made a lot of improvements and bug fixes. Below are some highlights from the three major areas of the new Surface Grids feature, the interface, simulation, and visuals.
1. Interface improvements
- Better design for map interface
- New map legend
We moved around some buttons, turned others into drop-down menus, cleaned up some settings, and added a brand new color legend for all that wonderful data.
2. Simulation improvements
- Reimplemented tidal heating
- More stable heat diffusion (& new Thermal Diffusivity slider to adjust rate)
- Better water initialization for random planets
- Improved water flow
A lot of the individual simulation improvements, tweaks, and fixes can be harder to notice, because if everything’s working well, then they don’t draw much attention to themselves. Instead, they just work. But if you’ve been following along, hopefully you’ll notice that the surface simulation has been getting smoother and smoother.
3. Visual improvements
- Improved coastlines
- Improved lighting
- Improved terrain and vegetation rendering
- Improved visual noise (randomness) on ice edges
- Reduced texture seams
- Shallow water no longer fully opaque
Isn’t Earth looking georgeous? (…that’s what we call gorgeous things created by our graphics developer, Georg) On top of all of the visual beautification, which you can see with random planets as well, we’re pretty happy with how coastlines are now looking (these latest changes are not yet in the experimental build). They may not be as accurate as our real life home planet itself, but after lots and lots of tweaking and experimenting, we now have coastlines that are fairly accurate and work well with changing water levels.
Beyond the changes we’ve listed above, we’ve also added support for saving & loading objects, including retaining all of the Grids data (see video at top of post), performance improvements, and dozens of tweaks and bug fixes.
In the last update we also added a short, 15-second performance test that you’ll see pop up when you first run this version of the experimental build. Please run this test so we can learn more about how Surface Grids performs on different hardware!
If you want to stay up to date on the latest changes to the experimental version, join our Discord and check out the #experimental-build channel. We make announcements there whenever there’s an update.
What’s Next
As we continue to update the experimental build, we get closer to the official release of Surface Grids. Like before, this part of development is about balancing our work between continuing with all the other improvements and fixes we’ve had in mind and addressing community feedback as more and more people check it out — please let us know what you think!
Above are screenshots of some of Brendan’s newly generated heightmaps (detailed in DevLog #10) partially implemented in-game. There’s still more work to do on these, but we should hopefully have them in an experimental build soon.
We also are working on a tutorial about terraforming Mars. We’ve seen multiple users point out that terraforming is a lot more complex now, and that’s certainly true. This is easily seen when attempting to terraform Mars, which, it turns out, is a bit more involved than just spraying some water at it. Figuring out how to do it is part of the fun, but there are some tips and tricks that are good to know.
We’re super excited with how Grids is shaping up, and we hope that if you’ve been following along, you can see all the progress we’ve made. We look forward to sharing more. See you in the next DevLog!
Surface Grids & Lasers | DevLog #11
Oct 19th
Surface Grids & Lasers are not yet available in any official Universe Sandbox releases. But they are now available in the experimental version of Universe Sandbox! Continue reading to learn more about how to try this version.
If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, #8, #9, and #10. Keep in mind these DevLogs document a work-in-progress feature. Anything discussed or shown may not be representative of future versions of Surface Grids.
What is Surface Grids?
Surface Grids is a big, complex feature still in development. It simulates the surfaces of planets, moons, and other objects, adding much more detailed, dynamic, and accurate visuals.
How? It uses a grid of data to keep track of thousands of points across an object’s surface. Each point stores local data, like temperature, elevation, and composition, for that spot.
It also simulates how this data changes and moves from one point to the next across the surface. This allows us to simulate water levels, water and vapor flow, heat diffusion, material states, and more. These are complex phenomena that we simulate with simplified models based on geophysical and climate science.
And as a bonus, it makes it possible to add tools like lasers, which are essentially just a fun way of heating up localized areas of a surface.
Time to Experiment
Surface Grids & Lasers are not yet available in official releases of Universe Sandbox. But you can now try them out in the experimental build! This experimental build has an incomplete version of Surface Grids & Lasers. You’ll see areas of the simulation and interface that are works in progress. And you’ll see plenty of bugs. Part of trying out the experimental build now is helping us make these features better as we continue development.
To opt into the experimental build:
- Right-click ‘Universe Sandbox’ in your Steam Library
- Click ‘Properties’
- Select ‘Betas’ tab
- Set dropdown menu to ‘experimental’
- Close Properties
- Once updated, launch Universe Sandbox
Check out What’s New | Experimental Builds for an overview of changes, tips, known issues, works-in-progress, and other notes.
Recommended sims:
- Earths Around Sun x10 Tidally Locked
- Bombardment of Moon
- Earth & 50 Colliding Moons
Recommended experiments:
- Laser the Earth! (Tools > Laser)
- Throw water at a cold planet (Tools > Material)
- Terraform a Random Rocky Planet
- Tidally lock planets close to a star
- Dock Temperature and Displacement maps during a collision
We shared this experimental build recently on our Discord and we’ve had great responses so far, with plenty of feedback on what’s good, what’s broken, and what could be improved. Now we’d love for you try it out and give us feedback. The best place for feedback? Discord! Just keep in mind this isn’t the final version and there’s still work to do.
Keep an Eye on the Data
You’re welcome to enjoy Surface Grids & Lasers however you want, but if you ask us, we think the lasers are small potatoes compared to everything else that is now happening on object surfaces.
The Surface Grids map not only looks cool, but it also provides a lot of insight into what’s going on with Surface Grids. To see all of the available options, check out the very top of the Properties panel in the new Surface tab.
You can switch to Temperature, Elevation, Displacement (Impacts), Water Level, Lapse Rate, Vapor, and Ice, and you can dock multiple maps so you can watch them all at once. The most interesting data to watch depends on what is happening in the simulation, but you’ll also find that they’re all connected — for example, a collision will affect all of these as the temperature rises and craters form, which in turn changes the elevation and may displace or add water, depending on the composition of the impacting object.
What’s Next
Video: Surface Grids data, such as temperature and water depth, shown directly on an object’s surface (work in progress).
Moving forward with these experimental builds, we’re balancing our development between addressing feedback from the community and continuing with everything we had already planned for the release of Surface Grids.
One issue that has come up for some users is performance. Surface Grids is the first big Universe Sandbox feature that relies on the graphics card (otherwise known as graphics processing unit or GPU). Previously, the heaviest calculations were from the physics side of the simulation, and these were all performed on the processor (CPU). Now with more emphasis on using the GPU, not just for visuals but for running all of the calculations involved with simulating surfaces, we’ve better balanced out the simulation calculations across a user’s hardware. But this means that users with older integrated or mobile GPUs (usually found in older laptops) may see worse performance than before. We’re doing our best to squeeze out all of the performance we can get on older hardware, but ultimately there’s a limit to what we can do, and the unfortunate reality is that we’ll likely be raising our minimum and recommended requirements soon to include more dedicated video memory.
Beyond that, our focus is on fixing any bug that comes our way and improving the new interface, all to make these features as fun and easy to use as possible. Plus there are some of the more involved projects, like implementing Brendan’s heightmap generator for random planets (see our last DevLog), visual improvements and polish, the ability to see data maps directly on object surfaces (see video directly above), and more tools for surface interaction, all of which we’ll talk about more in future posts. See you then!
Surface Grids & Lasers | DevLog #10
Sep 20th
Video: a Surface Grids data map of elevation displacement as fragments from a massive collision carve and crater Earth’s surface.
Surface Grids & Lasers are not yet available in Universe Sandbox! This post is a behind-the-scenes look at our work on these features. We don’t have a release date yet, but we’re getting closer every week.
If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, #8, and #9. Keep in mind these are documenting a work-in-progress feature. Anything discussed or shown may not be representative of the final release state of Surface Grids.
A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox that makes it possible to simulate values locally across the surface of an object. In effect, it allows for more detailed and accurate surface simulation and more dynamic and interactive surface visuals. It also makes it possible to add tools like the laser, which is essentially just a fun way of heating up localized areas of a surface.
How to Build a Planet
In our last DevLog we welcomed Brendan, our new graphics developer. Brendan is jumping right into helping Georg, our senior graphics developer, with work on visuals for Surface Grids. His first project is building new tools for generating heightmaps.
Our goals for this project: create a random heightmap generator capable of building known geological features in randomized configurations for planets, moons, and other objects. For example, it should be able to generate a heightmap for a planet that has features like large mountains and rifts, echoing what we’ve observed on surfaces in our Solar System, but ultimately unique in its configuration.
Additionally, it should be able to work with a combination of randomized and known data. For example, it should be able to sensibly fill in the missing gaps when we have limited data from real-life observations.
The trick with all of this is to find the balance between messy, randomized heightmaps that don’t result in any recognizable shapes or features, and clean-cut heightmaps that look overly designed and artificial.
So with these goals in mind, Brendan has come up with a recipe:
- Generate plates
- Generate large-scale features based on plate tectonics
- Add details
- Add impact craters
- That’s a planet
Plate tectonics: Please note that this does NOT mean that we are creating a simulation of plate tectonics within Universe Sandbox. We know this is a common feature request — and we agree it would be awesome to have — but simulating and showing the actual movement of plates over time is much more complex and is something for further into the future.
Instead, our plan is to use the concepts of plates and tectonics to generate sensible starting points for large-scale features in the heightmap. Then from there, we add smaller details like lakes or hills, pepper in impact craters for older surfaces, and voila, there is the surface of a planet. (Of course, this results in just the heightmap, which informs rather than is the surface visualization.)
Keeping Tabs on Your System
In DevLog #4, we shared some mockups for some of the new user interface (UI) that’s part of Surface Grids. The most important part is the new data map, which shows the Grids data in a nice and colorful 2D map of the surface.
The map is a gateway to understanding the benefits that come with the Surface Grids feature: instead of seeing a single value in a textbox for a property like Temperature, there are now thousands of color-coded points all changing and moving across the surface as heat diffuses and the temperature adjusts to the factors of the simulation.
But beyond helping with understanding what Surface Grids is doing, the map is also a powerful tool for monitoring the data. And sometimes, you want to view data for multiple objects at the same time, so you can keep tabs on how the planets and moons in your system are changing in the simulation.
With the new map UI, you can “pop out” a map from an object’s Properties panel and dock it to the left side. Then you can set it to view different Surface Grids data or the standard surface or composition view, and you can stack them for different objects. Chris has been working on implementing the mockups for the map and its docking functionality, which can be seen on the left:
Unrelated to Surface Grids, one of our other developers, Jonathan, has been working on some styling changes to the user interface, adjusting things like font size, colors, and margins. They’re smaller changes on paper, but we think the improvements really make the whole interface look and feel better. Just part of our constant quest to make Universe Sandbox better and easier to use.
What’s Next
This has probably been said in a previous DevLog, but it’s worth repeating: Surface Grids is a big and complex feature. We know we’ve been working on it for a while, and it may seem like progress is slow-moving, but we really are moving along at a good pace — there’s just a lot to do. Since the last DevLog, Universe Sandbox astrophysicist and developer Jenn has fixed a handful of temperature issues, so now planets are created at, and settle into, more accurate temperatures. There are lots of little issues like this that come up when building a complex simulation of something we know so well, like Earth.
So now we’ll continue with more fixes to the simulation and the visuals, more work on the UI, more improvements to the heightmap generation, and more of everything else that helps make Grids fully functional. Hopefully we’ll have an opt-in experimental build soon. We thank all of you for your patience!
Surface Grids & Lasers | DevLog #9
Aug 30th
Video: Building a gigantic, snow-capped mountain by increasing elevation
Surface Grids & Lasers are not yet available in Universe Sandbox! This post is a behind-the-scenes look at our work on these features. We don’t have a release date yet, but we’re getting closer.
If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, and #8. Keep in mind these are documenting a work-in-progress feature. Anything discussed or shown may not be representative of the final release state of Surface Grids.
A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox that makes it possible to simulate values locally across the surface of an object. In effect, it allows for more detailed and accurate surface simulation and more dynamic and interactive surface visuals. It also makes it possible to add tools like the laser, which is essentially just a fun way of heating up localized areas of a surface.
New Highs & Lows
See that archipelago in the middle of the ocean? Those are the great Hawaiian islands. We’ve been tweaking the heightmap for Earth to get all the details right, and we’re happy to welcome back Hawaii and the full coastline for Florida. There are some details to iron out still, like the large body of water that’s currently sitting in the middle of Australia.
It’s a bit difficult to get the coastlines and bodies of water correct for a planet we’re all intimately familiar with — any errors are quickly noticed by a geography whiz or anyone who lives near the area that’s incorrectly flooded or barren.
This difficulty is due to a current limitation in the elevation simulation: When we divide the full range of elevation for Earth into the limited steps we have available for storing the data, we get 83 meters per step. This means the maximum detail we can account for is 83 meters. And unfortunately, geography doesn’t often look like 83 meter ocean-side cliffs. A lot of coastline is much closer to sea level, and the smaller distinctions between land and water are lost. We have ideas for improving this, but for now, some hand-tuning of the heightmaps can get us the results we’re looking for.
Creating Continents
Another issue we’re grappling with is the state of heightmaps for randomly generated planets. Right now, adding some water to a randomly generated planet will create bodies of water and land masses as you’d expect, but the results look less like geological formations and more like noisy data.
This is something our lead graphics developer, Georg, has been wanting to work on, but his plate has been full with other aspects of Grids. …Enter Brendan, our new graphics developer! Brendan will be working with Georg on graphics for Universe Sandbox, and first on his list is the not-at-all-complicated (wink) task of creating a random heightmap generator capable of building known geological features in unique, random configurations. We’re happy to welcome Brendan to the team. Hopefully we’ll have some screenshots of his work in our next devlog.
Making Mountains
Right now something interesting happens when you hold shift while using the laser: it makes mountains. Or technically speaking, it raises the elevation. You can also decrease the elevation, too. So even if you don’t like the new and improved randomly generated heightmaps that we’re working on, you can go in and shape it yourself.
This functionality won’t remain attached to the laser, that’s just a temporary, developer-only solution until we build out the interface for this new tool. We’re pretty sure you’re gonna like it.
In the video above, we’ve divided a planet with a mountain range and then flooded one half, creating one hemisphere of ocean and another of land.
What’s Next
In addition to working on these various aspects of heightmaps and elevation, we’ve been doing a lot of work in other areas of the Grids simulation and tech, like getting visuals working on gas giants and planetoids (see above) and making the auto setting for lasers a bit smarter.
Up next is patching up all the holes we find as we continue to poke at the simulation. We also want to add a lot more visual detail to the edges of different areas like ice and molten surfaces to make it look a bit more natural. And there are plenty of other improvements and fixes to make.
We’re only kind of joking when we say it’s getting harder to pull ourselves away from playing with this feature so we can actually work on it. But in all seriousness, we continue to make good progress and we’re really liking the way it’s coming together. We can’t wait to share it. See you in our next devlog!
Follow @universesandbox
Surface Grids & Lasers | DevLog #8
Aug 9th
GIF: Filling in the Moon’s craters with ice.
Here’s our round eight DevLog on the development status of Surface Grids and Lasers. Thanks for everyone’s patience with this blog post. We took a little break from Surface Grids to talk about our work on Magic Leap in our last post — check it out to see planets bouncing off of walls and our new, floating user interface. And if you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, and #7.
A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox that makes it possible to simulate values locally across the surface of an object. In effect, it allows for more detailed and accurate surface simulation and more dynamic and interactive surface visuals. It also makes it possible to add tools like the laser, which is essentially just a fun way of heating up localized areas of a surface.
Keep in mind this is a development log for a work-in-progress feature. Anything discussed or shown may not be representative of the final release state of Surface Grids. Read: Surface Grids & Lasers are not yet available in Universe Sandbox! To make this more clear, we’re now calling these posts DevLogs instead of Dev Updates.
Random Improvements
Everyone likes Earth and the rest of the cool, popular planets that make up our Solar System, but sometimes you want something a little different. That’s why we have the randomly generated planets. And with Surface Grids, the randomly generated planets are getting a little makeover.
We now have new textures and new elevation maps (which you can now see in the data map) that spruce these up and make them more unique. And we have further plans to improve how these are generated to widen the range of possibilities and customization.
Water Your Planet
It’s been possible for a while now to add water to planets in Universe Sandbox. But it’s never looked so good as it does with Surface Grids.
The key components to this improvement are great examples of what make Surface Grids an awesome and powerful new feature. It’s all about the localized data: First, you can see that the water spreads locally. Before Surface Grids, water would just fill in across the whole surface, regardless of where it hit. Second, you can see the direct correlation between elevation and water level. This was sort of possible pre-Surface Grids, but now there’s a data map for both of these that makes it even easier to see this in action (see screenshot below). And third, you can see the water freeze and the ice melt locally as well. That’s the nice localized temperature part of it.
Watch Your Step
Detouring from how awesome Surface Grids is, let’s look at one of its fundamental challenges. As with most simulation features in Universe Sandbox, Surface Grids has to battle against the simulation time step (the rate at which the simulation runs, for example 10 days per real-time second). We know that it would be awesome if you could just set the time step to whatever rate you wanted and it would just work, but that’s unfortunately not possible, at least not without sacrificing accuracy.
This fact is most obvious with gravity simulation in Universe Sandbox. The simulation automatically sets a limit to how fast the time step can go while still maintaining relatively accurate orbits. And if you try to set it faster than this limit, you’ll see a message that it’s not safe to do so. For Surface Grids, we’ll need to add a similar warning system, as it too has a limit for accurate results.
A good example of time step limits for Surface Grids is in the simulation of water flow. This is simulated by moving X volume of water from one cell to its neighboring cell each step. The maximum volume of water that can be moved in each step is the maximum volume contained in that cell — it can’t transfer water that it doesn’t have. So if you’re running at a time step that is already moving the maximum amount of water and you try to increase the time step further, the data starts to get a little weird.
We have some ideas for improving this, but ultimately there’s no way around time step limits. Our hope is that we can make a smooth experience by communicating where these limits are while allowing you to exceed them at the risk of accuracy loss.
What’s Next
We’re feeling really good about our progress on the Surface Grids feature. Now that we have the visuals and systems working for random planets, it’s time to turn to planetoids and gas giants. We also want to work on visualization for vapor, but that’s one of the few remaining items that still need a connection between data and graphics.
There are some more apparent issues to work through yet, too, like getting water levels to initialize properly on Earth. Then there are the new elements of the user interface (UI) that we’ve designed but have yet to add, and some questions about UI interaction that come up as we continue to play around with Surface Grids. And of course there are the inevitable giant bugs running around that have to be squashed.
All of this will definitely keep us busy, but the pile of tasks gets smaller every day as we get closer to releasing an experimental build and getting out the official update. We still can’t say when either of these will come yet — we thank you for your patience.
We’re also still working on a smaller update that will introduce some improvements and bug fixes for the new galaxies added in Update 23, plus a new introductory experience. Hopefully we’ll have this ready soon!
Surface Grids & Lasers | Dev Update #7
Jul 11th
GIF: Lasering away the ice on Earth.
Here’s our round seven update on the development status of Surface Grids and Lasers. If you haven’t seen them yet, check out Dev Updates #1, #2, #3, #4, #5, and #6.
We hope you’ve been enjoying the new galaxies we added in Update 23. We still have another round of improvements and bug fixes planned for galaxies, but we’re proud of what we released and we’re shifting our excitement back to Surface Grids & Lasers.
A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox that makes it possible to simulate values locally across the surface of an object. In effect, it allows for more detailed and accurate surface simulation and more dynamic and interactive surface visuals. It also makes it possible to add tools like the laser, which is essentially just a fun way of heating up localized areas of a surface.
Keep in mind this is a development log for a work-in-progress feature. Anything discussed or shown may not be representative of the final release state of Surface Grids. Read: Surface Grids & Lasers are not yet available in Universe Sandbox!
Gotta See It to Believe It
In the past few weeks, our graphics developer, Georg, has been taking the visual foundation that was built into the last version of Grids and plugging it into the new model.
This includes 1) getting the basics down for the shaders handling different materials and phases, from water to snow to molten silicate 2) getting all of Earth’s vegetation in the right spots 3) adding lighting, including effects for diffusion and specular and rim lighting for solar and atmospheric effects 4) and adding normal mapping.
The normal mapping creates the effect of bumps and ridges, or in other words elevation changes for things like mountains and crater rims. For a lot of visual effects, we often start with more exaggerated settings then dial it back and tweak it until we reach a more realistic appearance. In the screenshots below, the bumps are very pronounced and make for surface features that wouldn’t be discernible when viewing from space. While it’s not realistic and we plan to tone it down for the default setting, we are considering exposing this value and letting anyone set it to however they prefer.
Please note that you can safely ignore the incorrect water levels right now. We’re well aware that Europe is completely flooded and we’re working on a fix (even if it may be an accurate representation of what human-caused climate change will do to Earth…).
This visual foundation now works for planets with known heightmaps, but it will eventually be applied to all procedurally generated objects. So whether you’re lasering Earth or a randomly generated rocky planet, you’ll see the nice lighting and normal mapping.
Graphics for Surface Grids are definitely still incomplete, but everything is coming together nicely. The screenshot below shows a tidally-locked, near-Sun Earth that is frozen on the far side and molten on the near side (note: it looks especially “clean” now because it doesn’t yet include additional visual noise from blurring, blending, and randomness).
Lasers!
We haven’t shared much about lasers yet, so let’s fix that. Before, lasers were hooked up to the data side of things, so you could see its effects in the data map, but that was about it. Now that we have the visual foundation described above and can see the effects of temperature on the planet itself, playing around with lasers just got more interesting.
We recently added a radius setting that multiplies the area of effect (the laser visual itself is not yet affected by this). So whether you want to melt the whole ice cap or you want to carve your name, you can do it.
In the case of the GIF shared at the top of the post (and maybe I’m just hungry right now), this reminds me most of decorating a cake. Especially the part at the end where I do away with careful decoration and just throw a bunch of icing (er, lasering?) on the top.
We often see debates in the Universe Sandbox community about these lasers — some say they’re unrealistic and not a good use of development time, and others will stop at nothing to get their hands on them.
To the first, naysaying side we say this: Yeah, lasers like this don’t exist (at least, not yet). But… what if they did? Universe Sandbox has always been about realistic simulation of fantastical scenarios, and we think this fits very nicely into that. As for development time, lasers are a tiny fraction of the larger work on Surface Grids. They’re essentially a nice side-effect of having a system like Grids that can simulate localized surface properties, much in the same way Grids will allow us to add basic life simulation in the future as well.
And to the laser fanatics we say this: Yeah, they’re fun. Thanks for your patience!
What’s Next
There are a few higher-level things we want to get working, like being able to locally deposit water and having vapor flow connected to axial tilt. And then there are some must-fix issues like proper water level on Earth and proper phase-handling for Venus (it shouldn’t look like it’s covered in liquid water, right?). There’s also more visual work to do with blending materials and phases and handling procedurally generated objects.
So we’re a long way from the starting gate, but we’re not quite in the final stretch yet. It may be fair to say we’re at the point that was described all the way back in the second dev update: “… often times the longest and most challenging part of development comes later, when we’re tweaking, polishing, finding and fixing bugs, and making sure all the complexities of the fully fleshed out model play nicely with each other and the rest of the simulation.”
We’re definitely interested in making experimental builds available to the community in the future, before we’re ready for a full release. We’re not ready to say when these will come yet, but we hope they’re not far away.
As always, thanks for your patience and support while we work on this next big, complex feature for Universe Sandbox!
Follow @universesandbox