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!
Augmenting Our Universe on Magic Leap
Jul 31st
Video: Bouncing planets off of walls around a molten Earth.
Back in April, we announced that we received a grant to develop Universe Sandbox for Magic Leap, the augmented-reality (AR) technology that “lets you see and interact with digital content in the world around you.”
This is possible through mapping walls and objects and then superimposing images, making it seem like objects are right there in front of you. This also allows interactions between the real and digital worlds, so for example with Universe Sandbox, this means you could explore the Solar System in your living room and smash planets against your walls.
Leaps and bounds
Video: Increasing Earth’s radius until it’s as big as the room.
At that time of our last Magic Leap post, we had just gone through the Magic Leap bootcamp and had barely started on development. It didn’t take long to get to the point where it was possible to launch Universe Sandbox on the Magic Leap headset and see Earth rendered in the space around you. But this was about the extent of what was possible in the first couple of weeks.
Fast forward a few months and Universe Sandbox is now a whole new experience in Magic Leap. We’ve done a lot of work bringing the entire desktop user interface (UI) to AR. This means you’ll have the same amount of power and control you have on desktop when it comes to creating, interacting, and editing.
That’s right, all of the editable properties, all of the tools and settings and switches, they’re all available in AR. Except instead of appearing on your monitor, they appear right in the room in front of you.
Image: Our developer’s son holding up the Solar System, making Atlas’ job look easy.
We’ve also made considerable progress on getting performance to a manageable level. AR and VR are both pretty demanding when it comes to performance, as they’re dealing with more complex input and motion tracking. And for standalone hardware like the Magic Leap (and standalone VR headsets like the Oculus Quest), the hardware is necessarily more limited than what can be found in large gaming PC towers. One particular challenge for us right now is getting the interface discussed above — with its long lists of properties and settings — as fast as it should be. No one wants to wait for panels and controls to load. There’s definitely still more work to do (and in general, there will always be room for optimization with Universe Sandbox across all platforms), but we’ve gotten the experience running much more smoothly now.
Bouncing planets
Video: Launching planets toward surfaces detected by Magic Leap.
Ever play a game of racquetball where instead of a normal rubber ball you used a planet? Neither have we. But we’ve gotten pretty close to that!
It turns out that not only is it fun to smash planets against your wall, it’s also fun to let them bounce off the walls and around the room instead. This is pretty easy to do with Magic Leap, as it creates a map of your room which we then interpret as solid surfaces that are used for any type of collision.
In the video above, you can see the mesh that Magic Leap created for the walls, floors, and some objects as well.
Coming soon to VR…
In our original Magic Leap post, we also talked about how development for Magic Leap is going to improve Universe Sandbox on every other platform as well, from desktop to mobile to console*. This is especially true for VR. If you’ve played Universe Sandbox in VR, then you know the interface is fairly limited when compared to the desktop version.
This limitation will soon be a thing of the past once we make the changes to the interface we discussed above, which will bring over the whole desktop functionality. This has been a long-time coming for VR, and we’re excited to see how it’ll open up the experience. Of course, we still have some VR- and AR-specific tools and way of interacting in mind for the future that will take advantage of their unique capabilities.
Aside from this cross-platform interface, we should start to see some other changes ripple from Magic Leap development. The performance optimizations needed for AR should help with the mobile Android version, which in turn helps with a potential Oculus Quest version*. Ah, the circle of life!
We look forward to continuing Universe Sandbox development on Magic Leap through this year and seeing all our hard work pay off, not just for this unique AR experience, but for every platform in our future.
* Universe Sandbox is currently available on Windows, Mac, Linux, with support for Vive, Rift, and WMR. We are working on a mobile version (iOS and Android) as well as this Magic Leap version, and we are considering console development for the future. We’re not working on a Quest version yet, but that’s likely in our future as well. Want to receive updates about these new versions? Sign up for our newsletter!
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
Future Price Increase for Universe Sandbox
Jul 3rd
We want to give everyone a heads-up that we plan to increase the price of Universe Sandbox in the near future. It’s at least a couple months away still, but we wanted to give as much advance notice as possible.
Don’t own Universe Sandbox yet? Get it for 33% off in the Steam Summer Sale
How much?
We plan to raise it from USD $24.99 to $29.99.
Localized prices on Steam and other stores will be raised accordingly.
If you already own Universe Sandbox, there will be no charge and you’ll receive updates as usual as we continue development in Steam Early Access.
When?
Probably by the end of the summer (by October 2019).
It may take longer, we don’t have an exact date yet. We plan to raise the price on the same day that we release our next major update featuring Surface Grids & Lasers. We don’t know when this will be released yet, but we’re aiming for the end of the summer. If it takes longer to get the update out, then the price increase will be delayed as well.
Why?
To support continued development of Universe Sandbox.
We love Universe Sandbox and we want to keep working on it, making it better and better for the foreseeable future. It’s why we’re hiring to expand our team, and it’s why we got rid of the “2” in our name so now we’re just Universe Sandbox. We’re in it for the long haul. The extra resources will help us continue to develop new, awesome features and expand to new platforms like mobile and console, ultimately reaching more and more people.
We appreciate everyone who has supported Universe Sandbox so far. We couldn’t have done it without you.
On sale now!
Universe Sandbox is currently 33% off in the Steam Summer Sale: Buy Universe Sandbox
We’ll definitely be on sale again in the future, but with the price increase, this may be the lowest price for Universe Sandbox for a while.
Stay up-to-date with the latest Universe Sandbox news!
Beyond the Milky Way | Update 23
Jun 25th
June 28: Update 23.0.1 is a small patch to fix an issue with tidal heating.
Run Steam to download Update 23, or buy Universe Sandbox via our website or the Steam Store.
This update adds brand new galaxies that are much more interactive, accurate, and varied, making it easier than ever to create and customize on a galactic scale.
Three Types of Galaxies
Use the Add tool to procedurally generate a Spiral, Elliptical, or Irregular galaxy and add it to any simulation. Or select from galaxies like the Milky Way, Andromeda, or IC 1101, one of the largest known galaxies.
Accurate, Data-Driven Motion & Visuals
The motion and shape of the galaxy are now determined by its type and properties. You’ll also see red-yellow elliptical galaxies where the stars are older and bluer spiral arms where the stars are younger and hotter.
Full Customization
Adjust standard properties like mass and radius plus unique galaxy properties like the number of spiral arms and amounts of dust and gas.
Learn more about the new galaxies:
Home > Tutorials > 11 – Exploring New Galaxies
Or get started with the included galaxy simulations:
Home > Open > Galaxies tab
Check our a full list of What’s New in Update 23
Follow @universesandbox
Surface Grids & Lasers | Dev Update #6
Jun 23rd
Here’s our round six 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, and #5.
This will be a smaller update than usual because we’re focusing our efforts on the last sprint for the new galaxies we’ve been working on. We hope you won’t have to wait long for their official release, but if you’re feeling impatient, you can check them out by opting into the experimental version.
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.
Set Phases to Accurate
Our last dev update focused on the upcoming galaxies, but at the end we mentioned how Jenn, astrophysicist and Universe Sandbox developer, was working on vapor flow for the Grids model. We also joked that the challenging part here is creating this “accurately and performatively without single-handedly developing Weather Simulator 2020.” Unfortunately, the joke is all too real!
That doesn’t mean we are actually developing a complex weather simulator, but there is nonetheless complexity. While developing the vapor flow model, Jenn has been doing her homework with research into fluid systems and geophysics (if you’re looking for some light reading, you can check out Lectures On Dynamical Meteorology, Geophysical Fluid Dynamics, and An Introduction to Planetary Atmospheres).
The first part of vapor flow is determining what exactly is vapor; this is done by phase tracking, which determines what phase each material is in, based on temperature and elevation. For water, vapor is its gas state, then we need to see where it’s headed from there — whether it’s evaporating or condensing at the dew point, depositing, if it should be boiling away completely, etc. If it’s remaining as vapor, then the model accounts for a few factors to move it around: there are the prevailing winds which vary by latitude, are affected by planet rotation, and cause east-west movements (as seen in the GIF at the top), and there are temperature differentials from thermal flows and elevation that cause north-south movement (still a work in progress).
Image: The “heat map” shows vapor amounts (not vapor flow), where red is higher amounts and blue is lower. The poles are both much drier, and because there’s much less evaporation over land than oceans, you can see the outlines of the continents.
We want to stress that this is necessarily a very simplistic model, largely limited by its low resolution and the amount of memory we can allocate for this single component of Grids. There are lots of things missing that make this very different from more complex weather simulations — there are no vortices, so there won’t be anything like hurricanes, it is only a 2D simulation with no layers through the vertical dimension, and it’s fairly low resolution.
But we hope to use this data for the resulting local vapor amounts to have rough approximations for clouds, ice caps (for Mars, this effect happens with CO2 vapor flow), and for the future implementation of basic life simulation (vegetation), it could affect growth in dry and wet areas.
Loading…
In our last post, we also mentioned Chris’s work on saving and loading with Grids. This component of the feature obviously isn’t as interesting as, say, lasers, but at the same time, it’s essential to get it right and it’s another good representation of challenges on the edges of new feature development.
Here’s a shortlist of some of the questions and challenges that doesn’t even get into the technical weeds: How can we deal with file type and size limits for different platforms, like Steam Workshop, mobile devices, etc.? How can we maintain file size for fast, background autosaving and quicksaving? How can we get it to play nicely with previously saved simulations with objects that didn’t have all of the Grids data?
We had similar saving and loading questions with the new galaxies: What should happen if you load simulations that had the old galaxies? They won’t look and function the same. Should we change their shape and motion to use the new model, or should we preserve appearance? Is it okay to change sims on Steam Workshop that are very popular?
Saving and loading is something we all hope just works seamlessly and shouldn’t be something the player ever has to think about — which are both telltale signs that there is little room for bugs, errors, and bad user experience (UX). Thankfully, we have answers to all of these questions!
What’s Next for Grids
We’re hoping to make some good progress again on the visual side of Grids, rendering all of that wondrous data into some nice planet graphics. We’ve been recruiting our graphics developer, Georg, to work on some other projects (like the now so gorgeous galaxies), but it’s time for Grids attention again.
Thanks for reading! We’ll be back in two weeks with another update on development. And hopefully before that, we’ll have our next big update with new galaxies.
Dark Matter & Galaxies in Universe Sandbox
Jun 20th
You may notice that our new galaxy model (added in Update 23, released on June 25, 2019) no longer includes those bright red dots. The dots were how we represented dark matter in the old galaxy model (pre-Update 23), but we’ve decided not to include dark matter in the new model, for a number of reasons.
Short Explanation
Here’s the TL;DR explanation of why we removed dark matter in our new galaxy model:
Dark matter is a theoretical particle proposed to explain the unexpected motion of stars in galaxies. Due to performance constraints, our simplified galaxy dynamics model can’t simulate these complex orbits, so we’ve decided to remove dark matter from our simulations for now.
If you’re looking for a more in-depth explanation, keep reading!
Left: Spiral galaxy with dark matter (pre-Update 23). Right: Spiral galaxy in Update 23.
What is dark matter?
No one knows for sure what dark matter is, or even if it exists! But a number of different observations of our universe have revealed stars and galaxies moving under the gravitational influence of more mass than we can see. This hints at the presence of some kind of matter that affects stars and other bodies via gravity, but that can’t be observed directly. This proposed “dark matter” doesn’t produce light, but it also doesn’t block it, or we would be able to see it silhouetted against brighter stars and galaxies in the background (like we can see dust in the Milky Way).
We don’t know of a type of particle that has mass but that doesn’t interact with light, but a few ideas have been proposed. It may be a new type of particle that we haven’t discovered yet, and several ongoing experiments are trying to directly detect such a particle. Some scientists argue that dark matter does not exist at all, and that the “missing mass” in astronomical observations simply indicates that our mathematical description of gravity is not yet complete.
What does this have to do with galaxies?
Spiral galaxies were one of the first examples of the missing mass problem. Astronomers discovered the problem while calculating the “rotation curve” for these galaxies: a plot of the velocity of a star orbiting in the galaxy, versus the distance of that star to the center of the galaxy. The speed at which an object orbits in space is related to the mass of everything inside its orbit, and the distance to the center of the orbit. In the Solar System, nearly all of the mass inside a planet’s orbit is made up of the mass of the Sun, so the difference in speeds of planet orbits is due mostly to their distance from the Sun. Thus, the rotation curve of planets in the Solar System starts with the high speed of Mercury’s orbit, and then drops off as you move outwards to Venus, Earth, and the rest of the planets.
But in a galaxy, most of the mass is distributed among the stars that make up the galaxy, so stars farther from the center are orbiting more mass than stars closer in. We can estimate the distribution of mass based on the stars that we see, and predict a slightly more complicated curve: First, the velocities of orbiting stars should increase as you move away from the center, as more and more mass is enclosed by the orbit. But eventually, the extra mass inside the orbit won’t be enough to make up for the increased distance from the center, and the velocities will start to decrease again. The predicted curve has a sort of hump shape, with a long, decreasing tail.
Rotation curve of the galaxy M33. The yellow and blue dots indicate the data, while the dashed line represents the curve you would expect based on the amount of visible mass in the galaxy. Instead, the velocity increases with distance, indicating that more mass is present than we can see. Credit: Mario De Leo
But when astronomers actually measure these velocities and create rotation curves of spiral galaxies, the curves don’t drop off with distance. Instead, the velocities get faster and faster as you move outwards, with stars on the outer edges moving so fast that you would expect them to fly off, pulling the galaxy apart. One explanation for this discrepancy is that some kind of unseen mass (“dark matter”) may be present in spiral galaxies, keeping those stars gravitationally bound to the galaxy despite their high speeds.
Dark matter in Universe Sandbox
Since Universe Sandbox is at its core a gravity simulator, we tried to show the influence of dark matter in our previous galaxy model. For a given galaxy, we would calculate the distribution of dark matter that we would expect based on real observations of galaxy rotation curves. Specifically, we used what’s called the Navarro-Frenk-White (NFW) profile, after the astronomers who identified the distribution. We simulated the dark matter as points of mass scattered through the galaxy, and displayed them as bright red dots (because dark matter is invisible, we wanted to make it clear that we weren’t showing what dark matter “really” looks like!).
This model would give the “right” distribution of dark matter in a galaxy, but it couldn’t reproduce the most important feature of dark matter in galaxies: the rotation curve. This is because of the way that galaxy simulation works in Universe Sandbox.
How galaxies are simulated in Universe Sandbox
In both the old and the new versions of our galaxy model, we represent the galaxy as a collection of non-attracting particles orbiting a single attracting body, the black hole at the center. Each particle represents a cloud of gas, dust, and stars, which we call a nebula. This means that to our physics engine, the nebulae have zero mass, and the only gravity in the galaxy comes from the black hole.
But wait, earlier we said that the mass in a galaxy is spread out among all the stars in the galaxy, instead of being concentrated in the center like the Solar System. Why don’t we make all the nebulae into attracting particles? This would certainly make the motion of the galaxy more accurate, but in any gravity simulator, the number of attracting particles significantly affects performance. (You can see this for yourself by opening a simulation with a lot of attracting bodies, like Earth & 50 Moons.) To make galaxies look as good as they do, we need to use hundreds or even thousands of nebulae. A simulation with a thousand attracting particles would run extremely slowly even on a very powerful gaming computer. So instead, we used a simplified model of non-attracting nebulae orbiting an attracting black hole.
In the old version of galaxies, nebulae moved on circular orbits around the black hole, and the initial structure of a galaxy, whether it was a spiral or elliptical, would quickly lose its distinctive shape. In our upgraded version, nebulae are given specific orbits to allow the galaxy to hold its shape over time. The presence of another attracting body besides the black hole will pull the galaxy out of shape. (You can watch this happen in any galaxy collision simulation, or just by adding multiple galaxies to one of your own simulations!) During the development of this upgrade, we realized that adding attracting particles to represent dark matter would make it difficult to maintain the shape of spiral and elliptical galaxies for the same reason.
Because we are using a simplified galaxy model, we can’t reproduce the galaxy rotation curves we would expect either with or without dark matter. Instead, the rotation curves for our galaxies look more like the Solar System’s: the velocities of the nebulae drop off quickly as you move outwards from the center. Since this model can’t demonstrate the major effect of dark matter in galaxies, we decided to remove it for now.
We are hoping that a future version of galaxies will use computational methods like Smoothed-Particle Hydrodynamics (SPH) that will allow us to simulate hundreds to thousands of attracting nebulae orbiting the galaxy. This even more accurate model will be able to produce realistic galaxy rotation curves, and at that point, we’ll add dark matter back in so users can see its observable effect. In the meantime, we hope you enjoy our improved, interactive galaxy model!
Galaxies & Grids | Dev Update #5
Jun 7th
For this developer update, we’re going to take a little break from looking at our work on Surface Grids & Lasers to turn our attention on the upcoming new galaxies (these are a work-in-progress and are not yet available in Universe Sandbox).
You can check out Dev Update #1, Dev Update #2, Dev Update #3, and Dev Update #4 for a more in-depth look at Surface Grids & Lasers.
Keep in mind this is a development log for work-in-progress features. Anything discussed or shown may not be representative of the final release states for these features.
A Whole New World (of Galaxies)
We’ve been saying for a while now — and the community has been making sure to regularly remind us — that the state of galaxies in Universe Sandbox has not been so good. There was a pretty good looking preset simulation for a Milky Way & Andromeda Collision, but when it came to adding any type of galaxy to another simulation, you were left wondering why they all looked like the same amorphous blob, why they were difficult to work with, and what exactly all those red dots were.
Case in point, here’s a Milky Way added to a simulation with the old galaxies:
And here’s a new Milky Way:
We hope you agree this is a massive visual improvement. But there’s more than just beautification happening. Here are the major parts that make up the new galaxies:
1. Black holes & nebulae
- A galaxy is a combination of a black hole and a number of surrounding nebulae (each of which represents a group of stars)
2. Individual, editable properties
- Select and edit properties for black holes, individual nebulae, or the whole galaxy
- Each includes typical object properties like mass, radius, rotation, position, velocity, etc.
- Unique whole galaxy properties include galaxy type (elliptical, spiral, and irregular), elliptical B/A ratio, spiral number of arms, and pitch angle
3. Accurate motion
- Orbital elements of the nebulae are set by galaxy type and determine overall motion
- Nebulae positions and velocities change as galaxy type and type-related properties (B/A ratio, pitch angle, etc) are edited
- Galaxies in isolation will retain proper motion and shape over time
- Galaxies perturbed by massive bodies (like another galaxy or an isolated, supermassive black hole) become irregular type galaxies
4. Data-driven visuals
- Nebulae have a Gas Fraction property that represents the ratio of gas (the material available for making stars) to stars as well as an average temperature property
- Combined, these properties result in red/yellow elliptical galaxies, bluer spiral arms, and a visible increase in blue star production in colliding galaxies
- Nebulae also have a Dust Fraction property that represents the ratio of dust (opaque material) to gas and stars (luminous material); dust traces spiral arms and blocks light from the galaxy when viewed edge-on
GIF: Editable properties and the different visuals for different types of galaxies.
5. Procedural generation
- Create a randomly generated spiral galaxy, elliptical galaxy, or irregular galaxy
6. Support for trails & orbits
- Show trails or orbits for individual nebulae, which provides insight into realistic galaxy motion
7. No more dark matter
- Proper dark matter simulation is very complicated and we weren’t satisfied with its implementation in our last galaxy model
- In the future we’ll have a more in-depth explanation of this in a blog post from Erika, Universe Sandbox astrophysicist and developer behind the new galaxies
Image: A collection of randomly generated spiral, elliptical, and irregular galaxies.
The Future of Galaxies
We’re very happy with the status of galaxies right now. Before we can release them, there are some minor changes we need to make with the interface and other miscellaneous areas around the edges, and we still need a round or three of testing and bug fixes. But the simulation itself is in great shape.
When it comes to simulation features in Universe Sandbox, though, we almost never consider them a done deal. There are always improvements we have in mind for making them more realistic, performant, and fun to experiment with.
After the initial release of these new galaxies we’ll likely take a break from them for a bit. But here are some improvements and additions we’d love to explore more in the future:
- Barred spiral galaxies
- Visual representation of accurately-timed supernova flashes
- Values to show estimated numbers of stars in nebulae and total values in galaxy groups
- Randomization parameters for more “natural-looking” galaxies
- Run as fluid/SPH (smoothed-particle hydrodynamics) simulation
Surface Grids Sidebar
We’re hyped on galaxies and hope you are, too. Fingers crossed that the last stretch of finishing out this feature goes smoothly and quickly!
But of course, we’re also still working on Surface Grids & Lasers, so here’s a small update on those features:
Chris has been working on the saving and loading system for Surface Grids. This is a little less straightforward than it had been for saving and loading objects and simulations, due to the sheer amount of data that can be included with a lot of objects using the new Grids system.
Jenn has continued with making an accurate water vapor model, with the challenge of creating this accurately and performatively without single-handedly developing Weather Simulator 2020.
Georg has been applying his shader magic to galaxies and helping with proper rendering for Universe Sandbox on Magic Leap. Now that the graphics work for both of those are mostly finished, he’s got his eye on Surface Grids again as he continues to shape water data and heightmaps to get nice looking coastlines on Earth and other planets.
Stay tuned for another announcement about an opt-in version of Universe Sandbox that includes these new galaxies — we need to squash some of the nastier bugs still, but we’re getting close.
A Big Day for Physics | Update 22.3
May 30th
Run Steam to download Update 22.3, or buy Universe Sandbox via our website or the Steam Store.
This update officially switches over to our new physics system that is faster, more stable, and more accurate. This new system will be turned on by default, so there’s nothing you need to do to enjoy the improvement.
This update also includes a simulation commemorating an important historical date for physics: the 100-year anniversary of the total solar eclipse that was used to test and validate Einstein’s theory of general relativity.
Home > Open > The 100 Year Anniversary of the Eclipse That Validated General Relativity
General relativity is not simulated in Universe Sandbox, but even if it was, its effect would be hard to see. The difference in observed star position between Newton’s model and Einstein’s model is extremely small: about 1/2000th the width of the full moon.
Highlights from this update’s list of improvements and fixes:
- New Delete tool
- Reduced performance stuttering
- Smoother trails for fast-moving objects
- Fixes to updating Workshop sims
Please report any issues on our forums (local forum | Steam forum) or via Home > Send Feedback.
Check our a full list of What’s New in Update 22.3
We’re hiring a Graphics Developer! Learn more and apply
We’re hiring a Spaceship Physics Developer! Learn more and apply
Surface Grids & Lasers | Dev Update #4
May 24th
Image: Interface prototype for Surface Grids data map.
Time for our round four update on the development status of Surface Grids and Lasers. If you haven’t seen them yet, check out Dev Update #1, Dev Update #2, and Dev Update #3.
A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox (meaning it’s not yet available) 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.
Interfacing
In this update, we’ll take a close look at a part of the new user interface (UI) for the Surface Grids feature, specifically the data map. While the UI doesn’t affect the Grids simulation itself, it determines how easy and seamless it is to view and interact with the Grids feature. And as with other features and the experience as a whole, it is the UI and its accompanying user experience (UX) that ultimately determine how accessible and enjoyable Grids will be.
In previous posts about Surface Grids, we’ve shared screenshots that show a floating panel with a Grids data map, like this:
We had been using this panel for debugging, but it was never a representation of our end-goal for its design. We strongly believe that floating panels (the kind that can be dragged around the screen and can overlap) in applications and games can be very cumbersome; while they offer a lot of flexibility, managing them can become a task in itself. So instead of actually playing the game, you spend most of your time resizing them and moving them around to make sure they’re not in the way of the gameplay or other parts of the interface.
So instead, we try to create an interface where you don’t have to think about panels at all — where they’re intelligently docked, organized, and out of the way.
Below is a prototype that shows the Surface Grids data map first located within the Properties panel, then popped out to a larger view, then docked to the left. The panel is then duplicated and switched to a graph.
Disclaimer as always: Anything discussed or shown may not be representative of the final release state. It’s also likely this end-goal design (which is subject to change) will be reached over multiple releases.
Iteration Behind the Scenes
Dan is the creator and director of Universe Sandbox and he also leads the way in designing its UI and UX. Recently, Dan started using Adobe XD, a tool for designing, prototyping, and collaborating on UI/UX for applications. It has already proven a valuable tool in UI iteration for Surface Grids.
Designing for UI/UX can be challenging in its early stages because it’s often hard to get a sense of how it feels to actually use it until you can literally use it. Some things might seem great in design, but once you program it in, you realize that it lacks a certain flow, or feels awkward next to other interactions, and then it’s back to the drawing board. XD’s ability to create an interactive prototype can cut out this need to implement the UI for testing, which means it’s also easy to give others on the team a sense of what the designer is imagining. All of this can make the iterative process of design and feedback a lot faster and more efficient. (And no, this is not sponsored by Adobe! But we do enjoy their tools.)
Check out the interactive version of the prototype shared above: Interactive Surface Grids UI Prototype
This is very simplified and intended to only show new parts of the interface. You can click anywhere on the screen to highlight in blue the areas that can be clicked.
And here’s a behind the scenes look at Dan’s Adobe XD workspace for the above interactive prototype (large row on the right) and some other prototypes. Each rectangle is a different view of the UI, essentially creating interaction through branching paths triggered by click-areas.
What’s Next for Grids
We can appreciate that showing the UI may not be as flashy as a GIF of a molten Earth, but we’d like to show how much work and iteration, from all different sides, goes into a single feature.
Chris is continuing to work on the technical implementation, Jenn is working through the science, and Georg is gussying it all up — we’ll back in two weeks to take another look at our progress.
Bonus Galaxy Preview!
We’re really looking forward to Surface Grids, but let’s not forget the new galaxies that are coming. Here’s a preview showing some recent visual upgrades and the ability to see orbital paths for the individual galaxy particles.