1. What Are Orbital Rings?#

1.1. A Quick Introduction#

Orbital rings are rings around the Earth that are, in fact, not in orbit. They are stationary with respect to the ground, suspended at the very edges of our atmosphere, usually between 100 and 250 kilometers above the ground. While even large and close orbital rings would be pretty hard to see with the naked eye – the ones we’ll primarily be talking about would only look about as wide as a pencil eraser held at arm’s length – they are megastructures unlike anything that has ever been made by humanity before.

A ring might be as simple as a single thin wire with a few platforms on it, or it might be a kilometer wide and covered with solar panels, high-speed trains, telescopes, pressurized domes with massive green spaces, and more. While you’re on the ring, you’d experience nearly the same gravity as on the ground and, if you were to jump off, you would fall back to Earth (and with a pressure suit and a good parachute, this could be a lot of fun.) But we’re getting ahead of ourselves a bit.

At the core of a simple orbital ring is a wire (the rotor) spinning above orbital velocity, with stationary platforms suspended on it using magnetic levitation to stay in place. By speeding up or slowing down that wire, the ring keeps itself in equilibrium. The platforms can have tethers running down to the ground, to allow people and cargo to climb up to the ring.

This is a simplified model – a more advanced ring would have multiple rotors for stability and redundancy, may be entirely covered in platforms around the entire circumference, etc – but here’s what you need to know: these can be built with the materials and technology we have today. There are no major technological leaps “right around the corner” that we are waiting for, just a lot of engineering and a willingness to invest in the future of humanity.

1.2. What Is The Point?#

These are obviously extremely complex, massive structures. They’ll cost a lot of money to build, though not as much as you might be thinking right now, so we need to justify that cost somehow. While this list is by no means inclusive and we’ll go into much more detail on these elements later in this book, here are a few of the things orbital rings enable:

  • Comfortable, inexpensive travel between almost any two points on the Earth in under two and a half hours, with most routes taking an hour or less.

  • Solar power that costs an order of magnitude less than any terrestrial source.

  • Nearly free space launches with zero emissions.

  • Telescopes outside of the bulk of the atmosphere, without needing to build them for the rigors of space travel or worry about making them lightweight.

  • High-speed, low-latency wireless communication worldwide.

  • The average person would be able to go to space. Not as a once-in-a-lifetime experience, but so regularly that it could be a part of their daily, intercontinental commute.

All of these are great, for obvious reasons, but they only scrape the surface. We’ll get into much more detail soon, but let me give you one final teaser: A fully deployed orbital ring system would let us reduce our CO2 emissions by 50%, not even counting the CO2 we could pull out of the atmosphere given such inexpensive power.

1.3. Orbital Ring System?#

One single orbital ring can do a lot – space launches, for one – but can’t provide the transportation benefits, much of the solar power, or the wireless communication. For that, we need several rings positioned around the world. This is an orbital ring system, or ORS.

In this book, I’ll be proposing a total of 16: one situated around the equator that will serve as the primary mechanism to build the others and the primary launch ring for spacecraft leaving Earth’s orbit, and 15 at different inclinations to connect all the world’s major population centers.

Each ring would connect to every other ring at 2 points, where they cross on opposite sides of the planet. This interconnectivity means that if you live in Atlanta and want to get to Melbourne, it’s fast and easy. You would get on the Atlanta-New York-Paris-Dubai ring, transfer to the Dublin-Gothenburg-Bangkok-Melbourne ring, and arrive in about an hour and a half.

1.4. Where Would We Put Them?#

The first ring will be around the equator, for reasons we’ll discuss in detail later, but the short version is that it’s the cheapest place to build it, and it will allow us to build progressively more advanced rings affordably.

The other 15 depend on finding optimal placements to cover as much of the population as possible. We’ll be dedicating a chapter to placement, but the interactive widget below gives a good idea of where they could run. Bear in mind that this is not to scale, but you can drag around the globe to spin it and see the placement. The translucent yellow cone coming from each ring shows its tether range – stations up to the ring could be placed anywhere within these cones.

Hide code cell source
from IPython.display import display, HTML
display(HTML('''
<style>
#canvas {
    background-color: #000;
    width: 500px;
    height: 500px;
    border: 1px solid black;
    margin: 10px;
    padding: 0px;
    position: static; /* fixed or static */
    top: 10px;
    left: 10px;
}
</style>
<div id="canvas"></div>
<script type="module">
import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.163.0/+esm';
import * as addons from 'https://cdn.jsdelivr.net/npm/three-addons@1.2.0/+esm';
const OrbitControls = addons.default.OrbitControls
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, 1, 0.1, 1000 );

const renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( 500, 500 );
document.getElementById('canvas').appendChild( renderer.domElement );

const group = new THREE.Group()
scene.add(group)

const earthGeo = new THREE.SphereGeometry(1, 64, 64)
let albedoMap = new THREE.TextureLoader().load('/earthpolitical.jpg')
albedoMap.colorSpace = THREE.SRGBColorSpace
const earthMat = new THREE.MeshStandardMaterial({
  map: albedoMap
})
const earth = new THREE.Mesh(earthGeo, earthMat)
group.add(earth)

let ringHeight = 150;
const ringSpacing = 2.5;
const earthRadius = 6378.14;
const earthToThree = v => v / earthRadius;
const cylinderAxis = new THREE.Vector3(0, 1, 0);
const hexColors = [
    0xFF0000, // Red
    0x00FF00, // Green
    0x0000FF, // Blue
    0xFFFF00, // Yellow
    0xFF00FF, // Magenta
    0x00FFFF, // Cyan
    0xFF8000, // Orange
    0x8000FF, // Violet
    0xFF0080, // Rose
    0x80FF00, // Chartreuse
    0x00FF80, // Spring Green
    0x800080, // Purple
    0x008080, // Teal
    0x808000, // Olive
    0x008000, // Dark Green
    0x800000  // Maroon
];
let colorI = 0;
const ringWidth = 0.01

const findArcTheta = (altitude, length) => {
    const D = altitude
    const L = length
    const R = earthRadius
    return Math.acos((R**2 + (R + D)**2 - L**2) / (2 * R * (R + D)))
}
const findMaxRange = altitude => Math.sqrt(2 * earthRadius * altitude)

const addRange = (group, quaternion, ringHeight, range, color, opacity) => {
    const theight = earthToThree(earthRadius + ringHeight)
    const shape = new THREE.Shape()
    const theta = findArcTheta(ringHeight, range)
    const bottom = Math.cos(theta)
    const width = Math.sin(theta)
    shape.moveTo(theight, ringWidth / 2)
    shape.lineTo(bottom, width)
    shape.lineTo(bottom, -width)
    shape.lineTo(theight, -ringWidth / 2)

    const points = shape.getPoints()
    console.log(points)
    const geo = new THREE.LatheGeometry(points, 64)
    const mat = new THREE.MeshBasicMaterial({color: color, opacity: opacity, transparent: true})
    const obj = new THREE.Mesh(geo, mat)
    obj.setRotationFromQuaternion(quaternion)
    group.add(obj)
}
const normals = [
    {x: 0, y: 0, z: 1},
    {x: -0.44738093, y: 0.36552796, z: -0.816235},
    {x: -0.06990971, y: -0.44487047, z: 0.89286214},
    {x: -0.7563322, y: 0.33228904, z: 0.5635118},
    {x: -0.42068937, y: -0.73303604, z: 0.53448915},
    {x: -0.5788891, y: -0.0972214, z: 0.8095897},
    {x: -0.8802448, y: -0.1536299, z: -0.4489622},
    {x: -0.4126867, y: -0.43519154, z: 0.8001863},
    {x: -0.032104786, y: 0.6189813, z: 0.78474927},
    {x: -0.41248098, y: -0.6321049, z: 0.6559747},
    {x: -0.25873926, y: -0.42215383, z: -0.8688154},
    {x: -0.7919076, y: -0.2799982, z: 0.5426632},
    {x: -0.21544637, y: -0.06623004, z: 0.9742671},
    {x: -0.41143572, y: 0.86520106, z: -0.28661436},
    {x: -0.8201298, y: -0.36022264, z: -0.44455227},
    {x: -0.45247915, y: 0.73931354, z: 0.49867648},
]
normals.forEach(norm => {
    // Swap YZ to change from Z-up to Y-up
    const normal = new THREE.Vector3(norm.x, norm.z, -norm.y).normalize()
    const radius = earthToThree(earthRadius + ringHeight)
    const cylgeo = new THREE.CylinderGeometry(radius, radius, 0.01, 64, 1, true)
    const cylmaterial = new THREE.MeshStandardMaterial({color: hexColors[colorI++]})
    const cylinder = new THREE.Mesh(cylgeo, cylmaterial)

    const rotationAxis = new THREE.Vector3().crossVectors(cylinderAxis, normal).normalize()
    const angle = Math.acos(cylinderAxis.dot(normal))
    const quaternion = new THREE.Quaternion().setFromAxisAngle(rotationAxis, angle)
    //const euler = new THREE.Euler().setFromQuaternion(quaternion, 'XYZ')
    cylinder.setRotationFromQuaternion(quaternion)
    group.add(cylinder)
    addRange(group, quaternion, ringHeight, 400, 0xffff00, 0.15)
    ringHeight += ringSpacing
})

//camera.position.y = 1;
camera.position.z = 1.8;

const controls = new OrbitControls(camera, renderer.domElement)
controls.enableZoom = true
controls.update()

let dirLight = new THREE.DirectionalLight(0xffffff, 1.3)
dirLight.position.set(0, 0, 3)
camera.add(dirLight)
scene.add(camera)

window.animating = 0;
let animating = 0;

function animate() {
    // Stop when this cell changes
    if(window.animating != animating) return;
    window.animating = ++animating
    controls.update()
    //group.rotation.y += 0.005
    //group.rotation.x = Math.sin(animating / 2000)
	requestAnimationFrame( animate );
	renderer.render( scene, camera );
}
animate();
</script>
'''))

1.5. The Bottom Line#

There are massive challenges to overcome and they will cost a whole lot, but an orbital ring system would change the world in truly fundamental ways. By the end of this section, I hope to convince you that it’s worth it.