coballast / TetheredRing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TetheredRing

A Tethered Ring is a dynamic structure that can cost-effectively support space launch facilities, transportation infrastructure, and a sizable human settlement at high altitudes. An altitude of 32 km and a population of 250,000 is shown to be achievable using circa 2017 science and technology. The structure resembles a pipeline formed into a ring having a diameter similar to that of Earth’s moon. It stays aloft primarily by generating and properly combining inertial forces with tensile forces to offset the pull of gravity. The inertial forces are produced by the circular motion of magnetically levitated rings within the pipeline, and the tensile forces are generated by appropriately tethering the pipelines to the planet using stays made of strong, light-weight, industrial fiber. The entire structure can be fabricated on Earth and neither its construction nor its deployment depends on a pre-existing space infrastructure or space-based industry. The deployed structure is resilient to catastrophic failure because its precision-guided fast moving components are: a) not exposed to seismic or climatic battering, and b) safely above and thus out of range of tacit civilizational threats, such attacks involving torpedoes or commandeered aircraft. The tethered ring is an optimal “stepping stone” infrastructure for furnishing humanity with a safe, affordable, and sustainable means to escape Earth’s gravity, expand its civilization into space, and ultimately evolve into a multi-planetary species. Check out the brief explanation and full whitepaper at: https://www.project-atlantis.com

Video Explanation: https://youtu.be/k5fki-C3r70

Getting started

Install NodeJS & NPM

https://nodejs.org/en/download/

Note: NPM is now included with NodeJS

You can verify installation and determine your installed version using the commands below

Node (v19.0.1 tested)

node -v

NPM (9.1.1 tested)

npm -v

Setup

Clone the repo

If you haven't aready, create a directory on your PC for your three.js projects. For example, you can do this with the command:

mkdir C:\Users\Username\Documents\repos\Three.js\

cd into this directory. Then clone the repository with...

git clone https://github.com/philipswan/TetheredRing.git

Switch to the project directory

cd TetheredRing

Install required packages

Standard node modules installation

npm install

Sync development files

This is an additional required setup step in order for the model to be displayed correctly. This script is responsible for syncing the textures from the remote server to your local development environment.

npm run dev-sync

(Note: If you encounter a problem using the dev-sync script, an alternate method of downoading the texture files is to use the following commands...

cd textures
wget https://www.project-atlantis.com/wp-content/threejs-simulation/textures/bluemarble_16384.png -outfile bluemarble_16384.png
curl.exe -O https://www.project-atlantis.com/wp-content/threejs-simulation/textures/moon.jpg
curl.exe -O https://www.project-atlantis.com/wp-content/threejs-simulation/textures/movingRingTexture.jpg
curl.exe -O https://www.project-atlantis.com/wp-content/threejs-simulation/textures/myakka_oli_2022031_lrg.jpg
mkdir 24x12\LR
mkdir 24x12\HR
cd 24x12\LR
foreach ($X in @(0..23)) {foreach ($Y in @(0..11)) {curl.exe -O https://www.project-atlantis.com/wp-content/threejs-simulation/textures/24x12/LR/earth_LR_24x12_${X}x${Y}.jpg}}
cd ..\HR
foreach ($X in @(0..23)) {foreach ($Y in @(0..11)) {curl.exe -O https://www.project-atlantis.com/wp-content/threejs-simulation/textures/24x12/HR/earth_HR_24x12_${X}x${Y}.jpg}}
cd ..\..\..

)

Run the development server

Handled by Vite

npm run dev

Navigate to the URL specified in the run dev output to view the model

Note: when working on the project, on occasion you may need to hard refresh the browser in order for the model to display properly. This is usually the command <ctrl> + <shift> + 'R'

Using the Model - Keyboard:

Key Function
P Moves the point that you orbit around. It will place it just above the surface of the Earth, or on the transit tube, depending on which of these objects the sprite is hovering over when you press this key.
O Moves the point that you orbit around back to the center of the Earth.
R/L Slowly raise and lower the ring.
U/D Increase and decrease the altitude of the camera.
Z/X Slowly zoom in or out.
Q Slowly orbit around the point set by P or O.
W Instantly "warp" you over to a point much closer to the ring.

About

License:GNU General Public License v3.0


Languages

Language:CSS 77.9%Language:JavaScript 21.9%Language:HTML 0.2%Language:GLSL 0.0%