A 3rd year University physics project for simulating satellites motion in orbit.

Overview

Satellite Simulator VI - Deluxe Edition

Satellite Simulator's Logo

CodeFactor

A university physics project for simulating satellites in orbit.

Installation instructions

  1. Clone the git repository locally or download the source-code and extract it.
  2. Install Node.js 16.x on your system.
  3. Enable Yarn through corepack, which ships with Node 16.x.
# Use an elevated shell (Administrator shell on Windows, sudo on Unix).
corepack enable
  1. Open a terminal in the root of the repository and install the project's dependencies.
yarn
  1. Start the development server.
yarn start
  1. A browser page should automatically open with the project running in it.

Tech stack

  • Three.js
  • TypeScript
  • Husky and ESLint
  • Webpack

Development Server

It's a webserver provided by webpack that serves the project while being built in realtime and stored in memory.

You can read more about it here, here and here.

Runs by default on port 9000 and so can be accessed at http://localhost:9000/ (should automatically open when starting the dev server).

Live Reload

When using the development server you'll have the benefit of automatic live reload whenever changes are made.

Hot Module Reload

The HMR support is enabled in the project, but the code has to support it.

Which means writing code that accepts the module replacements and does any adjustments needed.

That is implemented for src/app.ts in src/index.ts.

So when app.ts is modified it's hot reloaded without reloading the whole page, by replacing the old scene instance by a new one.

But when files such as src/physics/kepler-math.ts are modified with no HMR support, a whole page reload is automatically performed.

During the project development you might wish to implement HMR support for other sub-modules, for example to avoid losing the state of created scene objects.

You can read more at webpack's documentation page.

Build Instructions

After following the installation instructions run:

yarn build

The build can be then accessed at /dist and could be served as static page content.

Credits

Icons are from: https://www.svgrepo.com/

Satellite 3D model, under Creative Commons Attribution, was modified by RedDeadAlice.

Developed by

You might also like...

vota.dev - Vote the best web development trends of the year

vota.dev Welcome to vota.dev! This is a work in progress! Development GitHub - Set-Up an OAuth Application Using Railway Development Install the proje

Dec 28, 2022

Full stack app to journal and keep track of your overall mood each day of the year, inspired by GitHub's contribution graph.

Full stack app to journal and keep track of your overall mood each day of the year, inspired by GitHub's contribution graph.

Mood Tracker Mood tracker to journal and keep track of your overall mood each day of the year. How It's Made: Tech used: EJS, CSS, JavaScript, Node.js

Dec 14, 2022

A public board for all the Computer Society and Students to display their profile. An online year-book for you to display your profile in the most creative manner

A public board for all the Computer Society and Students to display their profile. An online year-book for you to display your profile in the most creative manner

Student's Yearbook by IEEE Computer Society Student's yearbook is an open-source project which intends to dispaly the students who will be graduating

Dec 18, 2022

Physics on web page elements.

MatterDropdown 0.1 Applies physics to DOM elements and lets you bounce them around with the mouse. Built with matter.js and ismailman/decompose-dommat

May 30, 2022

This is an example of Quantum physics congress.

This is an example of Quantum physics congress. This is an imaginary congress in which are shown 2 pages with information about the congress, about activities which will be held there and speakers who will speak about the topic

Jun 24, 2022

JavaScript 2D physics library

p2.js 2D rigid body physics engine written in JavaScript. Includes collision detection, contacts, friction, restitution, motors, springs, advanced con

Dec 28, 2022

Open game experiment with vehicles and physics in Three.js

TNTGame Open game experiment with vehicles and physics in Three.js You can try it online here: Crater scene: https://yomboprime.github.io/TNTGame/app?

Oct 5, 2022

All five assignments and the final group project is done in class CSCI5410 (Serverless Data Processing) Fall 2021 of MACS at Dalhousie University.

Dalhousie University | Fall 2021 | CSCI5410 | SDP (Serverless Data Processing) All five assignments and the final group project is done in class CSCI5

Dec 26, 2021

The project for my university. Using Odoo 15.0

UniversityTransfers The project for my university. Using Odoo 15.0 Designing a website for the University of Constantine using Odoo to process request

May 25, 2022
Comments
  • Hide FPS indicator when assets are being loaded

    Hide FPS indicator when assets are being loaded

    Current behavior

    The FPS indicator is present in the loading screen.

    Expected behavior

    The FPS indicator should not be displayed until all assets are loaded and the loading screen is removed.

    invalid 
    opened by HasanMothaffar 0
  • Visual improvements

    Visual improvements

    Overview

    This PR adds the following visual improvements:

    1. Add a trail that follows satellites in orbit.
    2. Add a collision effect (particles explosion)

    Note

    Please review the case in which the trail reaches that MAXIMUM_TRAIL_POINTS limit.

    Steps to reproduce:

    1. Add a new satellite with a high velocity.
    2. Speed up the simulation.
    3. Wait for a couple of seconds then observe the movement of the trail.

    If it seems ugly I can stop the track from being drawn altogether, but this is the best I could come up with.

    enhancement 
    opened by HasanMothaffar 2
  • Improve favicons

    Improve favicons

    Right now we're using only one favicon, but we can support more to suit all devices.

    Check out this Webpack plugin! https://github.com/jantimon/favicons-webpack-plugin

    It's a low priority issue but it's nice to have nonetheless.

    enhancement 
    opened by HasanMothaffar 0
  • Mobile support

    Mobile support

    Suggestions

    • Disable some graphics effects on low-tier mobile application.
    • Spawn some satellites by default.
    • Collapse the GUI by default.
    • Lower the time resolution.
    enhancement 
    opened by Rami-Sabbagh 0
Releases(1.0.1)
  • 1.0.1(Jun 22, 2022)

    What's Changed

    • Hide FPS indicator when app is loading by @HasanMothaffar in https://github.com/Rami-Sabbagh/satellite-simulator/pull/5

    Full Changelog: https://github.com/Rami-Sabbagh/satellite-simulator/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Jun 22, 2022)

Owner
Rami Sabbagh
A passionate, self-learner who loves open-source. Learnt programming at an early age with the help of the internet communities.
Rami Sabbagh
A mesh network that connects remote communities to emergency responders without relying on internet, cell towers, or satellites

A mesh network that connects remote communities to emergency responders without relying on internet, cell towers, or satellites. Winner of Hack the North 2022. ??

Alice Cai 4 Sep 23, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
The Remix Stack for deploying to Vercel with testing, linting, formatting, structure and mock for 3rd party API integration.

Remix DnB Stack See it live: https://dnb-stack.vercel.app/ Learn more about Remix Stacks. npx create-remix --template robipop22/dnb-stack What's in th

Robert Pop 61 Dec 13, 2022
This repository demonstrates how to integrate your Dialogflow agent with 3rd-party services services using a Node.JS backend service

This repository demonstrates how to integrate your Dialogflow agent with 3rd-party services services using a Node.JS backend service. Integrating your service allows you to take actions based on end-user expressions and send dynamic responses back to the end-user.

ddayto 10 Jul 21, 2022
PocketUniverse browser extension for simulating transactions.

PocketUniverse Layout Injected The injected script proxies requests from the website to PocketUniverse before forwarding it to window.ethereum. We don

Justin Phu 31 Oct 16, 2022
Simulating raindrops falling on a window

RainyDay.js A simple script for simulating raindrops falling on a glass surface. Project Page How to use Just add script to page and initilize RainyDa

Muhammad Ubaid Raza 89 Nov 7, 2022
project for IS2 course @ UNITN CS 3d year

IS2-MSGC-Parket Parket è un servizio che permette di risparmiare tempo e denaro fornendo ai propri utenti una piattaforma per affittare e prenotare pa

Matteo Gatti 6 Dec 19, 2022