Now hiring | Join our 100% remote team

Physics Engineer - Planetary Destruction

Cross-Platform Engineer

Create Your Own Simulation

Overview | Reference


If your question isn't answered here, just ask.




Universe Sandbox uses a file format called UBOX to save simulations. Use the built-in File Tools to access the easily editable XML files stored inside UBOX files.


Edit an existing UBOX file

  1. Open the File Tools panel in Universe Sandbox (Main Menu > New > Open File Editing Tools).
  2. On the File Tools panel, click 'Open folder where simulations are saved'.
  3. Find the saved UBOX file and drag it into the square on the File Tools panel. This will extract the UBOX file into a folder where it was saved.
  4. Find the folder it created and open it.
  5. Inside is the XML files that store the simulation data.
  6. Edit the XML file.
  7. Drag the folder created in step 3 back into the square on the File Tools panel to recreate the UBOX file (this will also move the folder to the Recycle Bin).


Create a new UBOX file

  1. Create your XML file.
  2. Open the File Tools panel in Universe Sandbox (Main Menu > New > Open File Editing Tools).
  3. Drag the XML file into the square on the File Tools panel to create a UBOX file (this will also move the XML to the Recycle Bin).



You can send us your systems for inclusion in future versions of Universe Sandbox. On the New page, just click 'Send System to the Creator of...'.


These instructions do not apply to the latest version of Universe Sandbox. They are for the v2.0 file format of Universe Sandbox Legacy.



Having trouble?

Post a message on the forums or use the 'Share Simulation with the Creator...' link to send me your simulation for help. Be sure to include your email address and we'll help you discover the problem.

How do I open the File Tools panel?

  1. Start Universe Sandbox.
  2. In the Main Menu click 'New'
  3. Click the link 'Open File Editing Tools'

How do I open a UBOX file in Universe Sandbox?

  • Double click on it to automatically open the file in Universe Sandbox.
  • Or drag the file into the Universe Sandbox window to open it.
  • XML files can also be dragged into the Universe Sandbox window to open them.

How do I edit the XML files?

See the reference below for help.

How do I open and edit the included simulations?

The simulations that are included with Universe Sandbox are saved in the 'Programs File' folder and it's best not to edit them. In the File Tools panel click the link 'Create copy of included simulations' to make a copy of these files that you can freely edit and delete with fear of messing anything up. (see the question "What are these 'Copy of' folders?")

What are these 'Copy of' folders?

In the System folder (under My Documents\Universe Sandbox\Systems) you may find two folders:


  • Copy of Data for Reference
    Object database and appearance info that you can refer to in your custom systems.


  • Copy of Included Systems
    A complete copy of all systems included with the Sandbox. Use these as a starting point for you own systems.


Since these folders are just copies of data you don't have to worry about deleting them or messing anything up. Universe Sandbox will ignore the contents of these two folders. Changing the content of these files will have no effect. You can delete these folders if you wish.

What's a good simulation to look at for reference?

Use the 'Create copy of included simulations' link and then copy the files back one level into the Systems folder and use the File Tools to extract it if necessary.

    Recommended starting files:

    • Moons, 75 orbiting Earth
    • Galaxy Collision - Parallel
    • Starting Point - Fictional System

Why do UBOX files look all jumbled if I open them in notepad?

A UBOX file is actually a zip file with a different file extension. You can use any program that opens zip files to extract or create a UBOX file. The File Tools drag square is designed to help automate this process.

Can I change the LocalObjects.xml or Appearance.xml files?

The copies of these files you may find under My Documents are never used; they are provided only for your reference. You could change the files that are used by Universe Sandbox in its installation folder, but your changes will be overwritten when a new update is available.


If you see a mistake or have a addition to these files, please let me know. I'd be happy to consider implementing your suggestions in a future release.

How do I easily reload a system?

  • Press Ctrl+R to reload/restart your current system.



These instructions do not apply to the latest version of Universe Sandbox. They are for the v2.0 file format of Universe Sandbox Legacy.


  • Every object or group needs to be inside a body tag.


  • Looks up this value in the LocalObjects.xml & DeepSkyObjects.xml files in the Data folder and uses the properties found there: name, mass, diameter, etc.
  • Use other tags (like <Name> or <Mass>) to override the default values of the object.
  • Also accepts the command: moonsof. This includes all moons of the body that are included in the Object.xml file | moonsof=Pluto
  • Example: (Creates Earth, renames it to Gaia, and shrinks its diameter to that of our moon)
    • <Object>Earth</Object>
      <Diameter>1 moon</Diameter>



  • Looks up this value in the Appearance.xml file to determine the color, texture, and model of the body.


  • The name of the body.

<PositionX> <PositionY> <PositionZ>

  • The XYZ position of the body in space. If these values are missing in the file it will look up the value the Horizon file specified by 'date' under <Settings>
  • The Z axis is up and down.
  • Default units are kilometers.
  • Other accepted units:
    • m = meters | 1000 m
    • moon = diameter of the moon | 4.3 moon
    • earth = diameter of earth | 2 earth
    • jupiter = diameter of jupiter | 1.4 jupiter
    • sun = diameter of the sun | 2.8 sun
    • AU = Astronomical Unit | .7 AU

<VelocityX> <VelocityY> <VelocityZ>

  • The XYZ velocity of the body in space. If these values are missing in the file it will look up the value the Horizon file specified by 'date' under <Settings>
  • Default units are kilometers per second.
  • Other accepted units (all in per second):
    • m = meters per second | 12320 m
    • km = kilometers per second | 12320 km
    • AU = Astronomical Unit per second | .7 AU


  • Mass of the body. If not specified it will come from one of the object xml files.
  • Default units are 10^20 kilograms.
    • kg = kilograms | 500000 kg
    • moon = Moon masses | 4.3 moon
    • earth = Earth masses | 2 earth
    • jupiter = Jupiter masses | 1.4 jupiter
    • sun = Sun masses | 2.8 sun
    • milky way or mw = Milky Way masses | 1.2 mw


  • Diameter of the body. If not specified it will come from one of the object xml files.
  • Default unit is kilometers.
  • See <PositionX> above for a list of accepted units.


  • Set the position and velocity of the object using Orbital Elements.
  • The two required values are body and a. All other values default to 0.


    • Set the body the object is orbiting around. | body=Earth


    • Semimajor axis, a distance | a=0.7 au


    • Eccentricity, a value from 0-1 | e=0.1


    • Inclination, the vertical tilt of the orbit, a value from 0-180 degrees | i=20


    • Longitude of the ascending node, an angle from 0-360 | node=0


    • Argument of periapsis, an angle from 0-360| peri=0-360


    • Mean anomaly at epoch, an angle from 0-360 | m=45
  • You can also use apogee & perigee instead of a. The semimajor axis is then calculated as the average of these two values plus the radius of the body. | apogee=568 km ; perigee=563 km
  • Examples:
    • body=Sun ; a=.0226 au
    • body=Earth ; apogee=358 km ; perigee=349 km ; e=0.0008892 ; i=51.6405 ; node=179.1416 ; peri=50.8416 ; m=309.3534
    • body=Sun ; a=1.2 au ; e=0.5 ; i=20 ; node=165 ; peri=30 ; m=300


  • Special optional commands that are specific to the body.


  • Sets the velocity to orbit the specified body | orbit=Earth
  • Automatically pick the parent body to orbit with parent | orbit=parent

L1, L2, L3, L4, L5

  • Automatically position the body at one of the Lagrangian points of the two bodies. | L2=Earth, Moon


  • Sets the rotation of the body along the X, Y, & Z axis. | rotate=45,0,0


  • Creates an asteroid belt around the body.
  • Properties:
    • sma - semimajor axis
    • smarange - range above and below the sma value
    • smamin - lower bound of belt
    • smamax - high bound of belt
    • count - particle count
    • h - value from 0-1 that sets the height of the belt h:0 is a flat right, h:1 is round like a doughnut, h defaults to a value of 1.
  • Belts are oriented to the plane of the body. You may wish to use rotate=0,0,0 to reset the rotation to zero (for example, if you're using <Object>Sun</Object> which tilts the body a few degres like our sun)
  • Examples:
    • belt=sma:.0226 au, smarange:.01 au, count:20000, h:0
    • belt=smamin: 30 au, smamax: 60 au, count:2000


  • Global settings that can be included with any <Body> group.
  • Commands can be strung together (separated by a semicolon) or be in separate <Settings> tags. | date=0;timestep=1
  • Why include Settings in the <Body> tag (that doesn't really make any sense)?
    • By keeping the XML as a simple table with rows (the bodies) and columns (the properties) it makes them editable in programs like Excel.
  • All of these commands are optional.


    • Starting date in seconds or as a long date in the format yyyy-mm-dd. If long date will look for position and velocity info in a corresponding Horizon data file. | date=0 | date=2008-01-01


    • Speed to start the simulation in seconds. | timestep=60


    • Starting value for gravity. Default is 1. | gravity=1


    • Moves the specified body to the center of the system. Useful when extracting planets and moons from Object & Horizon data.| movetocenter=Pluto


    • Applies the Zero Momentum command to the system on load. | zeromomentum=true


    • Sets the collision mode of the system. 0 Combine, 1 Bounce. | collisionmode=1


    • Sets the camera focus to the body on load. | focus=Earth


    • Create particles from the object.xml file that have horizon data specified by the date command. | particles=asteroids,transnep


    • Set the background image used | background=none


    • Set the minimum trail length | trailsegments=10


    • Turn lables on or off | labels=off