- What is Solar System Builder?
- How do I get the program?
- How do I use the program?
- How does the algorithm work?
- Is Solar System Builder® a registered trademark?

Since the user can control the masses and initial velocities,
this does not have to model only solar systems. However, the scale
of the plane (1 pixel __~__ one billion meters), velocities
(increments of 500 meters per second) and masses (one hundred billion
billion kilograms to
ten thousand billion billion billion kilograms) are geared toward
atronomical modelling.

Perhaps version 2 can introduce scaling controls for dealing with more human scale objects. But gravity is an extremely weak force and has little effect on human scale objects.

If you want to see the C++ code, get this all-inclusive zip file.

- Use the left mouse button to place objects onto the plane and give them an initial velocity. Click and hold down the mouse button to locate the object, then drag and release to indicate a magnitude and direction of initial velocity. The magnitude is about 500 m/s per pixel in the indicated direction.
- A dialog box will pop up which gives controls for setting mass (this is logorithmic--the position modifies the exponent) and viewing and modifying the velocity. Press OK when finished.
- Repeat steps 1 and 2 for all the masses on the plane.
- Press the GO button to start time ticking.
When started
- The time display (in the status bar) will show progress.
- The masses will move according to the simple laws of mechanics worked out by Sir Isaac Newton.
- The STOP button becomes available.

- Press the STOP button to pause the process.
When paused
- The GO button becomes available. Press it to resume operation.
- Objects can be modified. Right click near any mass and its properties dialog box will appear. Use it to modify its mass or velocity. Press REMOVE to eliminate the object from the plane.

- Adjust the time step at any time.
- Adjust G, the Universal Gravitational Constant at any time.

- At each timestep, the velocity of an object is modified:

**V**_{x}[t_{n+1}] = V_{x}(O_{1})[t_{n}] + V_{x}(O_{2})[t_{n}] + ... + V_{x}(O_{m})[t_{n}] + V_{x}[t_{n}]

V_{y}[t_{n+1}] = V_{y}(O_{1})[t_{n}] + V_{y}(O_{2})[t_{n}] + ... + V_{y}(O_{m})[t_{n}] + V_{y}[t_{n}]

where m = number of other objects on the plane. - The object then flies straight along this new velocity vector
for one time unit. The position of the object is modified:

**x**_{n+1}= (V_{x}× timestep) + x_{n}

y_{n+1}= (V_{y}× timestep) + y_{n}

This becomes accurate as timestep approaches zero. However, the smaller the timestep, the slower the simulation.

Send email to guy@professorguy.com

© Copyright 1999
**Guy T. Schafer**

Last updated August, 2011