Saturn’s New Moons | Update 23.2

Run Steam to download Update 23.2, or buy Universe Sandbox via our website or the Steam Store.

Introducing the new Moon Champion of the Solar System, with a total of 82 known moons, it’s the great ringed gas giant Saturn!

Take a tour through the discoveries of Saturn’s moons, from the first discovered moon, Titan, in 1655, to the latest discovery of 20 new moons in October 2019:

Home > Guides > Science > History of Saturn’s Moons

With 82 moons, Saturn now has the most known moons, surpassing the previous record holder Jupiter and its 79 known moons.

This update also includes a refresh of our database and Saturn simulations to add its new moons, plus a few smaller fixes and improvements.

Check out a full list of What’s New in Update 23.2


Universe Sandbox is 33% Off — Best Deal Before Price Increase

Universe Sandbox is now 33% off on Steam!

This is your last chance to get Universe Sandbox on sale before we raise the price on Tuesday, October 22 to USD $29.99 (localized prices will be raised accordingly). We’ll definitely be on sale again after we raise the price, but this will likely be the best deal for a while.

We announced our plans to raise the price earlier in the summer. This is slightly different than the original plan of raising it once we released Surface Grids & Lasers, but it still fits into the October timeline we mentioned. And while Surface Grids & Lasers aren’t available in any official releases yet, you can try them now in the experimental build!
What is Surface Grids?

It’s the next big, complex feature that is coming to Universe Sandbox. 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.

Learn more about Surface Grids & Lasers in our latest DevLogs

Surface Grids & Lasers | DevLog #11

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:

  1. Right-click ‘Universe Sandbox’ in your Steam Library
  2. Click ‘Properties’
  3. Select ‘Betas’ tab
  4. Set dropdown menu to ‘experimental’
  5. Close Properties 
  6. 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:

  1. Earths Around Sun x10 Tidally Locked
  2. Bombardment of Moon
  3. Earth & 50 Colliding Moons

Recommended experiments:

  1. Laser the Earth! (Tools > Laser)
  2. Throw water at a cold planet (Tools > Material)
  3. Terraform a Random Rocky Planet
  4. Tidally lock planets close to a star
  5. 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

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:

  1. Generate plates
  2. Generate large-scale features based on plate tectonics
  3. Add details
  4. Add impact craters
  5. 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!


Advice for Aspiring Game Developers

Whenever we put up a job posting, we get a handful of applications from younger fans who are aspiring game developers. They usually admit they’re not qualified, but they nonetheless write in because working on Universe Sandbox is their dream job.

While they may not have the experience we’re looking for (and some aren’t even old enough to meet the minimum employment age in the United States!), we definitely appreciate the enthusiasm. And for many of us on the team, we relate on a very personal level: we also dreamt of being video game developers when we were growing up. And it was only through some form and combination of self-teaching, mentorship, and lots of experimentation that we ended up as professional game developers working on a very cool project.

Recently, our graphics developer, Georg, put together some advice and suggestions in response to a younger applicant. But we realized there may be some nuggets of wisdom in here that others would like to see, too. So why not share it with everyone? So here they are, slightly modified to be relevant for any kind of video game programming role. If you’re more interested in game design, animation, music, production, quality assurance (QA), or any other aspect of game development, check out these suggestions anyway. The ideas can be applied to most things in life!


1. Download Unity and start working through programming tutorials. Don’t worry if you don’t understand it yet, you’ll get there.

Or choose any other game engine out there. We like Unity because it’s free for casual users but it’s still very powerful — it’s what we use for Universe Sandbox! Unity also has a bunch of really great, free tutorials on their site and elsewhere across the web, plus a big and helpful community at all skill levels.

If you’re feeling overwhelmed when you first start programming, don’t worry, that’s normal. You’re learning a whole new language!


2. Don’t give up if your code doesn’t want to cooperate all the time – nothing does, that’s part of the fun.

You’ll run into bugs, your game won’t start, you’ll bang your head on your desk, and you’ll begin explaining things to rubber ducks. Sometimes you’ll need to shave a yak. Don’t worry, all of this is also normal (…relatively). One of the best ways to learn how something works is to dive in, break it, then figure out how to fix it. And maybe go a little off the rails in the process.


3. Get inspired by your favorite games and apps. See something in a game you like? Find out if someone has written about how to develop it and see if you can recreate it.

Inspiration is a tremendously powerful motivator and driving force, and copying and recreating something is another great way to learn how something works. The best part? A lot of game developers (especially indie developers) love to share their knowledge in detailed blog posts and video devlogs. These devlogs dive into the technical weeds of projects the developers are working on, and they’re a great way to get inspired by developers you admire.

Just remember: when you’re first starting off, keep your aim narrow. Don’t set your sights on recreating a massive, AAA-style game. Instead, find one particular aspect you think is done very well or seems unique or interesting and begin researching it. Or see if your favorite indie developer or studio keeps a devlog of the projects they’ve worked on (we’ve got our own devlogs which lately have been talking about our work on the next big Universe Sandbox feature, Surface Grids, though they’re not quite as technical as others out there).


4. The community is helpful. There are no bad questions. Be kind and share your results with other students and teachers.

There are lots of people out there learning how to program and become video game developers, and everyone was once a beginner just like you. Don’t be afraid to ask for help or ask a question about how something works, even if it seems like something simple. Sometimes you’ll get an answer that explains a lot more about what’s going on than you’d realize if you had just brushed past it and continued on. As with all internet interactions, things will go more smoothly if you’re kind, you’re patient, you attempt to write clearly, and you provide context and details.

And while those who have been programming for a long time are definitely more qualified to give solid advice than someone who just wrote their first “Hello, World!” program, there doesn’t have to be a huge divide between the roles of teacher and student. Once you get your footing, it’s likely you’ll be able to help out the beginners with the very basics, even if it’s just pointing them to the resources you found helpful.


5. At some point, someone will call you a programmer. Much later, someone will pay you for that. And much later still, you’ll be working on something you love. Be patient, you’ll get there.

Hold on tight, it’s a long rollercoaster. With a little bit of patience, the excitement of seeing your skills grow and grow and using them in more and more projects will be plenty to keep you going.


6. Find others like you and do things together. Everything is better with someone to relate to. You’ll get further, faster.

Take a class, start a club, join a Discord server (and join ours while you’re at it), recruit your friends to your brand new indie game studio — do whatever it takes to find a community of people who are on the same path as you. The support and help of others who are interested in your wellbeing and success may be the exact thing you need at some point along the way to avoid giving up. Make sure to return the favor!


7. Never give up!

It’ll seem impossible at first, and then it’ll be hard later on, and then just when you think you’re progressing smoothly, you’ll run into another frustrating obstacle that makes you want to bang your head on the desk and start talking to the rubber duck again. Refer back to #5: Be patient, you’ll get there. If you’re stuck, take a break. Clear your head by doing something that’s not staring at your screen. Whether you step away from programming for an hour or a few days, it’ll help immensely.

Of course, it’s not all misery — far from it. We wouldn’t be doing it if that was the case. There are huge rewards in learning to program, like the joys of finally cracking a complex problem or creating a game with your name on it and seeing others love it as much as you do.

And if you want to take a more career-oriented stance, you can rest easy. Demand for software developers is already high and is expected to grow 21% from 2018 to 2028 in the United States, a rate much higher than in other fields. Learning to program is a safe bet on a path toward a stable, well-paying career.


We hope this helps! And maybe one day you’ll see one of our job listings and say, “I’m a perfect fit for that position.”

Surface Grids & Lasers | DevLog #9

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!

Galactic Clean-Up | Update 23.1

August 26: Updates 23.1.2 and 23.1.1 are hotfixes for startup issues for VR users and users with older processors.

Run Steam to download Update 23.1, or buy Universe Sandbox via our website or the Steam Store.

This update adds a bunch of improvements and fixes to the galaxy simulation, making for more stable and accurate galaxies and better collisions. There’s also a new and improved Introduction tutorial and a new simulation of 2019 OK, the near-Earth asteroid that surprised astronomers when it was observed just a day before it flew past us on July 25, 2019.

Some more highlights from Update 23.1:

  • Improved handling for galaxies & smaller-scale objects
  • More accurate galaxy masses
  • New galaxy Star Count property
  • New Teleport tool
  • Many smaller improvements & bug fixes

The new Introduction is designed for anyone who is just getting started with Universe Sandbox, but we encourage even the most seasoned creators and destroyers to check it out:
Home > Guides > Introduction

And have you tried the galaxy tutorial yet? It’ll show you how to get the most out of the new galaxies:
Home > Guides > Exploring New Galaxies


Check out a full list of What’s New in Update 23.1

Surface Grids & Lasers | DevLog #8

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

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

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).


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!