<< Home Page   Contact   Screenshots   Help and Instructions   Video Tutorial   Other Posts   Start Simulator

U-Fly-It Satellite and Space Elevator Simulator - Neato!

Instructions and Help/About Page

If you haven't yet started the
U-Fly-It Satellite and Space Elevator Simulator
click here to run it now.

Try your browser's Ctrl +/- keys to zoom out and make the buttons smaller.
(There are also other different ways to zoom described below.)

How to "make it go".

I put some tutorial videos up on Youtube. They're okay, but you should still also read the text (below) for some details glossed over or covered inexpertly by the videos.

      [Click here for the Video Tutorial Playlist]

Information Keys:
  A  About & License Info   (You can use this as a kind of a Pause button as well.)

Speed Control Keys:
 Arrow Up/Down DELTA-V +-500 fps (aligned with velocity)
 Arrow Right/Left DELTA-V +-500 fps (perpendicular to velocity)
 Shift + Arrow Up/Down DELTA-V +-50 fps (fine speed adjustment, aligned with velocity)
 Shift + Arrow Right/Left DELTA-V +-50 fps (fine speed adjustment, perpendicular to velocity)
 i,k DELTA-V +-500 fps (aligned with velocity)(same as arrow)
 j, l DELTA-V +-500 fps (perpendicular to velocity)(same as arrow)
 8, comma DELTA-V +-50 fps (fine speed adjustment, aligned with velocity)
 9, period DELTA-V +-5 fps (extra fine speed adjustment, aligned with velocity) - Good for getting circular.
 [, ] Reverse velocity, Zero-out velocity (respectively) by applying a retro delta-V of either 2X or 1X

Elevator Climbing Keys:
  v  Climb Space Elevator 1.0% (after grappling to one)
  c  Climb Space Elevator 0.002% (after grappling to one)
  x  Descend Space Elevator 0.002% (after grappling to one)
  z  Descend Space Elevator 1.0% (after grappling to one)

View and Misc. Keys:
 Shift+Home Resets the scrolling to the original start settings (in case you get lost))
 PageUp/Down or r/f (for Mac)ZOOM in and out to the Attention Object (not to crosshairs)
 p Toggle PAUSE (may not be implemented well)
 Shift-R RESET (may not be implemented well)
 Tab Cycle through list of Attantion Objects
 1 Make new trail dots thinner (limit 1 pixel)
 2 Make new trail dots fatter (limit 8 pixels)
 3 Make rings thinner (limit 0.04 pixels)
 4 Make rings thicker (limit 5.00 pixels)

Mouse scrolling and zooming added 22 Dec 2012:
 Mouse Click Sets the crosshairs to be at the clicked spot and shows the crosshairs.
 Mouse Double Click Moves both the current Attention Object and the crosshairs to the clicked spot. This is good if you get lost in scrolling and zooming.
 Mouse DragSCROLL. Move whole scene by the distance and direction you dragged. Grab anywhere and release anywhere.
 Attention Object (-) Zooms out from the Attention Object.
 Attention Object (+) Zooms in to the Attention Object.
 Park Crosshairs Moves crosshairs to the coincide with the Attention Object
 Hide Crosshairs Hides the crosshairs, but does not move them.
 Show Crosshairs Unhides the crosshairs in their current position
 Crosshairs (-) Zooms out from the crosshair spot on the screen whether the crosshairs are showing or not and shows the crosshairs.
 Crosshairs (+) Zooms in to the crosshair spot on the screen whether the crosshairs are showing or not and shows the crosshairs..
 Scrollwheel Zooms in/out to the spot under the cursor. --NOT YET IMPLEMENTED

Coordinate systems for velocity: Speed changes are aligned with the velocity vector and in either earth coordinates or moon coordinates and it is set by the [Horizon Orientation: EARTH/MOON] button. Delta-V commands are in the same coordinate system as this setting.

Coordinate systems for display of the trail: The trail can be displayed in earth coordinates or moon coordinates using the [Trail Center: EARTH/MOON] button. Unless the trail is in moon coordinates, an orbit around the Moon looks like a (squiggled) orbit around the earth.

Rotation for display of the trail: The [Trail Rotation: ON/OFF] button will rotate the trail (and distort it) at the rate of rotation of either the Earth or Moon depending on whether the trail is in earth or moon coordinates. This allows you to see the trajectory of (dropped) objects from the point of view of the (rotating) space elevators. The two settings can be confusing (Trail Coordinate System and Trail Rotation), but there are only four combinations, so if you are confused you can just try them until it looks right.

Orientation of horizon, velocities, and delta-Vs: The [Horizon Orientation: EARTH/MOON] button can add more confusion to the Trail display settings. But it is different. "Orientation" refers to three things at once:
1) How the horizon and nadir lines are drawn: relative to either the Earth or to the Moon.
2) How the velocity line is displayed. The velocity line always represents the velocity as compared to the Earth center or Moon center, depending on the orientation setting. Both Earth center and Moon center are moving and accelerating around the Barycenter.
3) The direction of the delta-V commands. Delta-V commands are lined up according to the current velocity and the velocity it uses is either Earth-referenced or Moon-referenced depending on the orientation setting.

Reverse and Stop: The ']' key and '[' keys zero out velocity or reverse it (respectively) by applying a delta-V of either 1X or 2X against the current velocity (and in the current Earth or Moon coordinate system). These stopping/reversing keys aren't realistic for real life, but they're useful for playing in the simulation.

Flight Path Angle Magnifier: When the [Velocity & FPA Magnifier ON/OFF] is toggled so the velocity line is displayed, the dim brown ray coming out of the satellite and moving rapidly between nadir and zenith is the 'flight path angle magnifier'. The flight path angle is the angle between the velocity and horizontal. It was implemented because when looking at only the velocity line and horizontal line it's sometimes hard to tell when the flight path angle crosses zero. This is likely to be a problem at apoapsis/periapsis if the orbit is only slightly elliptical. Toggling the horizon-nadir display off ([Horizon ON/OFF]) also makes it tricky. The flight path angle magnifier line simply exaggerates the angle between the velocity line and the horizontal so it's easier to see where apoapsis and periapsis occur and which is which.

Space elevator grappling: Just push one of the buttons on the first row and you will be attached to a Space Elevator at the specified point. When you are attached to a space elevator, delta-V commands show thrust and use fuel, but go nowhere. When you want to release, push the [Release] button.

[L4] and [L5] buttons: The [L4] and [L5] buttons work differently than the space elevator grapple buttons. They put you at that spot in space, but they don't attach you to a space elevator. You begin free flying immediately after you move to the spot (L4 or L5). I put the L4 and L5 positions at +-60 degrees from the Moon and right at the Moon's orbit level. This isn't the exact place where they would be in my model (circular moon orbit), but they're pretty close. When you go to either L4 or L5, the satellite immediately starts "orbiting" the stable Lagrange point in a surprising loopy way. Try it. Set the satellite to be the Attention Object, set the trail to be Moon-centered and rotating, then zoom way in to the satellite and watch the orbiting pattern unfold. You can increase the size of the pattern by adding speed in any direction then immediately taking the speed right out with the opposite key. This has the effect of causing the satellite to jump to a slightly different position while maintaining the same velocity vector. That new position will (most likely) result in an an orbit around L4/L5 that is similar in shape (loopy), but larger in expanse.

[L2] and [L3] buttons: The [L2] and [L3] buttons do attach you to a space elevator, the moon elevator. Except, the part they put you on isn't drawn. The [L2] button puts you on an invisible extension of the moon elevator on the other side of the Moon. The [L3] button puts you on an invisible extension of the moon elevator on the other side of the Earth. You will have to "Release" after pushing the [L2] and [L3] buttons to go anywhere.

What are the Rings?

1st Ring (need to zoom in to see it).....100,000 feet (about 3X height of airliner)
2nd Ring (need to zoom in to see it).....100,000 meters (100 km 'Karman Line' - common definition of 'Space')
3rd Ring..... 350 km - Height of International Space Station
4th Ring..... 66% of height of Geosynchronous Orbit - Minimum height for drop from space elevator into orbit.
5th Ring..... 35,800 km - Height of Geosynchronous Orbit (Communications satellites)
6th Ring..... Circle centered on Earth and going through L1 (Lagrange point).
7th Ring..... Circle representing the Moon's orbit, which is modeled as circular here.
Outside Ring. Circle centered on Earth and going through L2 (Lagrange point).
Moon Ring.... 100km altitude above Moon surface showing approximate height of Apollo CSM parking orbit.


1) Try to release from the Earth elevator at the right height and angle to land on or orbit the moon with the least Delta-V possible. In this version you can grapple L1 from anywhere and any speed difference. SO, only grapple when you are *really really close* and with a *really really small* velocity difference if you don't want to cheat. You should be able to get to the surface of the Moon with only about 1200 feet per second delta-v.

2) Try to drop from the Earth elevator into an orbit that later meets back up with the exact same spot on the elevator you dropped off from, with no difference in velocity, so you could grab right back on without any delta-v.

3) Find a spot on the Moon Elevator where you can release from it and enter into a 'not-too-steep and not-too-shallow' Apollo-style reentry. The trajectory needs to get low enough below the 100 km line so it gets enough drag and be shallow enough so it would slow down 'slowly enough'. Try to make the perigee tangent to a line that would be at 50,000 feet (halfway between the surface and the 100,000 ft ring). That sounds about right. Atmospheric drag isn't modeled here yet, so you'll have to pretend.

4) Play with Earth orbits that have perigees around GEO and apogees 'kinda close' to or higher than L1. Watch how the influence of the moon makes those orbit paths go all over the place. Turn moon gravity off and watch those orbits straighten right into nice clean ellipses.

5) Approximate a regular rocket launch from the ground to LEO. Put it in 'super slo-mo' mode. Then grapple the Earth elevator at ground level. Make the view so that the satellite is the Attention Object. Zoom in so the distance from the satellite to the 350 km level is a fair part of the screen. Take it out of 'slow-mo' and speed it up until the elevator is maybe 10 degrees short of vertical (this orients it upward more naturally), then put it back in slo-mo. Release the satellite. It will just sit there because time is almost stopped. Add some speed so the velocity line (turn it on) is longer, then use the 'secret' sideways delta-v keys ('j' and 'l') to rotate the velocity line to about 5 degrees short of vertical. The longer you made the velocity line, the more the sideways delta-v-ings will be a finer grained control over the direction. Then take all that speed back out with 'k'/'down arrow', and 'comma', so the leftover speed is maybe about 200 - 500 fps.

Now you are ready to 'launch'. Go to realtime mode and start tapping the '8' key, adding 50fps at a time. Tap about 600 times. You need to regulate how much speed you add and its timing so you meet up tangent with the 350 km line moving at 25,295 fps (350km circular orbit speed in this model). It should take about 8 minutes (bumping up time scale to 8 or 16 or so might be more satisfying). Look back at your track and marvel! Gravity did the turning for you - no need to thrust sideways. Once you can meet your triple mark (on speed, on altitude, on horizontal flight path angle), try to do it with the least delta-v.

If you added too much speed too soon you will cross your target altitude with an upward flight path angle. Recoverable, but not efficient and 'not so professional'. If you add too little speed early on you will apogee short of 350km, once your flight path angle goes below the horizon (lowered by high altitude) you won't be able to recover even by accelerating quickly. You will be able to save delta-v by thrusting vertically for as short a *period* as possible to minimize 'gravity drag'. Thrust hard while near vertical, then thrust less to allow a the gravity turn to be more effective, then when nearly horizontal thrust like crazy to get your speed up to circular orbit speed (right at horizontal and target altitude). It's all very tricky for humans to do by the seat of their pants. That's why in the real world it's all planned out very carefully and computers control it in real time.

The rate you tap the thrust key is proportional to acceleration ('gravity drag' will decrease your actual acceleration). A real rocket has limits on how much or how little thrust it can make and how quickly it can change that thrust. Thrusting near vertical to make a 350 km apogee almost right above the launch site then accelerating madly at apogee to 25,295 fps is unrealistic. Real rockets start out accelerating much more slowly at liftoff than at burnout because fuel burns off. A smooth increase in tapping rate from liftoff to burnout is more realistic.

Numerical strangeness and fun.

A limitation in the way numerical integration works can cause a burst of escape speed or cause precession when the satellite is whipping 'real fast' and/or 'real close' past a big gravity source (earth or moon). This is because the direction of the gravity changes a lot during the 'delta-t' (time) over which the integration is done. I've taken some steps to minimize this problem in this version (v0.2). I've increased the number of integration steps per frame when the velocity angle changes rapidly and I've also stopped allowing the satellite to fly easily around inside the planet (when it crashes, it goes into the super slow time scale mode). The satellite can still fly inside the planet if you lower it there by elevator or if you increase the time scale back up the a normal speed after it crashes. You can also induce the effect if you speed up the time scale really fast while the satellite is flying happily outside the planet. So watch out for that.

The numerically-induced burst of escape speed can also occur if you hold down the 'k' (or down arrow) key so it repeats until the speed drops to near zero and the next key 'press' (which is automated) takes the speed negative. The rapid transition from 'forward' to 'backward' within one frame has a similar effect as whipping too fast by a gravity source. So watch out for that too. Don't engage key-repeat all the way through the transition from forward through to zero and backward. I'll try to make a fix for that at some point. <<<Late note: The changes I made to make it less easy to induce "zing-out" while whipping by a gravity source also seem to have made it less easy to "zing-out" by holding the 'k' key. That's a good thing, but I don't yet know why. It looks now like you can hold retro-thrust with key repeat without worry, unless (maybe) you have a really fast key repeat. Try it.>>>

When the strength and direction of the total force on the satellite changes significantly during the 'dt', the accelerations applied to the satellite lag what they should be based on it's position. It's not unlike the way Mercury precesses because the pull of gravity is limited by the speed of light and so the pull lags what it would otherwise be if gravity propagated instantaneously (That's how I understand it at least).

Here's my take on what's going on with the numerical 'zing-out'. Just before it 'zings-out', the "time delay" in the system results in a large phase lag, larger than 180 deg. This is a negative (unstable) phase margin. The large numeric lag adds not-real energy into the system, and lots of it. The satellite goes zinging away at many times the escape velocity and sometimes faster than the speed of light (which is possible in this model because it isn't meant to model relativity). Again, these super speed boosts aren't real, just so-called 'simulation artifacts' of the numerical method used.

In this version I've modified it so the number of iterations per frame increases as the change in angle per iteration increases. This reduces the tendency to "zing-out". To further assist in avoiding those numerical errors caused when whipping past Earth or the Moon, slow the time scale down during those really fast periapses when the angular rate (as displayed on the screen) around the Earth or Moon is high.

Also, even when the satellite is orbiting far away from these gravity things, if you speed up the time scale a LOT, the satellite may zing-out then too. The time scale has to be really fast though.

One more thing about numbers. With really deep zoom-ins, you may notice odd effects. I think they have to do with reaching the limits of precision of the variables beings used here. I did notice that the farther from Earth, the earlier the strange "quantum" effects come into play when zooming. That makes sense because there are fewer "least significant digits" way out there because the most significant digits are busy keeping track of the vastness of the distances. Someday I'll look into ways to get better precision out of Javascript's doubles. Some of the effects may, of course, be due to bugs. I am aware of a few possible bugs along those lines that I will address when I can. For now though, as long as you don't go zooming in too far, the numerical representations of physics here are pretty hunky dory.

Does it run well on your system?

You might need a 'fast-ish' computer for this to run with a small enough framesize to not be jerky. Frame size (in milliseconds) is adjustable manually. A long frame will have a jerkier animation while a shorter frame may be too short for the calculations and drawing to complete in the scaled time 'promised'. The movement speed will slow down and frames will be displayed at the speed the computer will permit. This is noticeable when the trail data is displayed, turning off and clearing the trail will speed things up.

Development of this version (V0.2) was on Firefox 15 so I can't say if any Firefox less than that will work.

The first version (V0.1) was developed and tested on Firefox 10. I tried it on Chrome and while it basically worked, the graphics had some bizarro qualities - a lot like "Squigglevision". Also, in my test, Chrome couldn't draw things quite lined up right. For example, the dot at L1 didn't line up with where the L1 ring and the lunar elevator crossed (they're drawn with the same data). Opera had the same jitteriness and misalignments as Chrome, plus a list of its own special pathologies. IE9 didn't start the Javascript at all, maybe IE10 will work. I'm working (slowly) to improve compatibility. For now, just get the latest Firefox and it should work fine.

The graphics library I use is JSGL. I incorporated version 2 of JSGL on Dec 11, 2012. It solved the "jittery" problem with Chrome and Opera. In the process, I discovered that the inability to "line up right" (in Chrome and Opera) is related to inaccurate drawing of circles. The combination of the graphics library plus the particular browser results in the arc being rendered at a radius that varies slightly from the "commanded" radius. The radius is only correct at the N, S, E, W, and NE, SE, NW, and SW points around the circle. In between those points the radius is larger by up to 0.3%. So, the L1 dot is drawn at the correct location, but the ring with a radius of L1 isn't a really well drawn circle, it varies in radius as you go around. That 0.3% is very noticeable. If you use Chrome, you'll have to try to ignore it, or use Firefox. So, Chrome is no longer "jittery" and is now usable if you can ignore the slightly wonky circles. Opera still has its special weirdnesses, it's not really usable for this. IE8 still didn't launch the graphics with the new JSGL, I haven't tested the new JSGL on IE9 yet. Firefox is the best for U-Fly-It.

I uploaded an update on Dec 13th 2012. In addition to bug fixes and general prettification, the most noticeable thing on it is the images for the Earth and Moon instead of drawn circles. It's much nicer too look at. I also added a velocity marker extender. It's a longer, fatter, blue translucent line. It shows up at slow speeds when the main (thin yellow) velocity marker is too short to be of any use. It looks kind of like a searchlight. I may refine its looks. In the process of testing these changes, I noticed that Chrome actually is faster. On my 3+ year old desktop, when the trail is turned off and cleared, I can often get the ms/frame down to 20 (that's 50 frames per second) without overflowing the frame for some nice smooth motion. With Firefox, I can't get the frame rate as fast. The downside of Chrome is (again) the oddly-drawn circles, and the trail (when drawn) moves in a herky-jerky way when it's translating or rotating rapidly across the screen.


<< Home Page   Contact   Screenshots   Help and Instructions   Video Tutorial   Other Posts   Start Simulator