keeptrack.space

πŸŒŽπŸ“‘ TypeScript Astrodynamics Software for Non-Engineers. 3D Visualization of satellite data and the sensors that track them.

https://github.com/thkruz/keeptrack.space

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • β—‹
    CITATION.cff file
  • βœ“
    codemeta.json file
    Found codemeta.json file
  • βœ“
    .zenodo.json file
    Found .zenodo.json file
  • β—‹
    DOI references
  • β—‹
    Academic publication links
  • β—‹
    Committers with academic emails
  • β—‹
    Institutional organization owner
  • β—‹
    JOSS paper metadata
  • β—‹
    Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary

Keywords

orbit radar satellite satellite-orbit satellite-tracking space space-surveillance telescope visualization

Keywords from Contributors

mesh parallel networks interactive
Last synced: 6 months ago · JSON representation

Repository

πŸŒŽπŸ“‘ TypeScript Astrodynamics Software for Non-Engineers. 3D Visualization of satellite data and the sensors that track them.

Basic Info
  • Host: GitHub
  • Owner: thkruz
  • License: agpl-3.0
  • Language: TypeScript
  • Default Branch: main
  • Homepage: http://keeptrack.space
  • Size: 934 MB
Statistics
  • Stars: 954
  • Watchers: 15
  • Forks: 113
  • Open Issues: 61
  • Releases: 6
Topics
orbit radar satellite satellite-orbit satellite-tracking space space-surveillance telescope visualization
Created about 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Security

README.md

Latest Version GitHub commit activity language Languages GitHub issues License KeepTrack.Space

Table of Contents

Project Overview

Welcome to KeepTrack, an ambitious project aiming to make orbital analysis tools accessible to all. Keep Track is the only astrodynamics tool designed for non-engineers. It provides a simplified and streamlined experience for learning and interacting with satellites and space debris. Keep Track is built from the ground up with custom WebGL shaders and a high-performance render loop. It can simulate 2.5 million pieces of debris at 60fps. The core app is only 7 Mb and loads in 2 seconds. It's free, open source, and works on any modern browser.

Who is KeepTrack For?

Keep Track is used in operations centers, classrooms, and outreach programs. Here are some examples of how different groups use Keep Track:

Operations Centers

  • Get popup alerts when a satellite will pass through a sensor
  • Find when sensors can see a priority satellite in seconds
  • Easily simulate new launches for mission planning

Education

  • Learn through hands-on interaction, making learning engaging
  • Use Xbox controllers for classroom demonstrations
  • Experience AAA video game quality graphics

Outreach

  • Embed Keep Track on your website for free
  • Show your satellite design in orbit before launch
  • Explain space sustainability and the problem of debris

Features

The feature set rivals those of expensive toolkits, such as AGI's STK, and includes the ability to:

  • View comprehensive satellite data
  • Perform advanced field of view calculations
  • Create notional maneuvers
  • Model satellite breakups
  • Simulate new satellite launches
  • And much more

Screenshots

Installation

KeepTrack is automatically deployed with the most-current version of the main branch to https://keeptrack.space via Cloudflare.

Prerequisites

KeepTrack.Space is built using ES6+ modules and assembled with Webpack. If you would like to build it locally, you need to install git and npm.

Setting up a Local Copy

bash git clone https://github.com/thkruz/keeptrack.space #Clone the github files. cd ./keeptrack.space/ #Switch into the directory. npm i #Install the dependencies. npm run build #Build the project. npm start #Start the server.

A more detailed tutorial can be found here.

Usage

The main index.html page loads a canvas element set to the size of the window that displays the earth, satellites, and stars. The UI is loaded in DOM elements on top of the canvas element. Two webworkers are loaded (positionCruncher.ts and orbitCruncher.ts) to handle constant calculation of satellite locations and updating orbit lines when an object is highlighted.

The main draw loop (drawManager.ts) has been optimized to reduce memory leaks and to keep FPS high. This is commonly done by having functions modify global variables vs returning a variable and using long functions rather than splitting them into pieces - this is definitely intentional.

Any modifications to a satellite require that information to be passed to the positionCruncher webworker to ensure the UI calculations match the dot on the screen. Most calculations utilize a brute-force method of guess and check (lookangle times, missile trajectories, etc). Optimizing the loop for those calculations is critcal to keeping the project responsive. One trick to improve performance is that satSet creates a dictionary of index -> Norad ID number and index -> COSPAR number to allow rapid lookup of satellite data.

There are Typescript files for generating TLE.json that are not included, but https://api.keeptrack.space/v2/sats can be referenced for an up-to-date catalog.

Release Notes

Contributors

License

Copyright (C) 2025 Kruczek Labs LLC

KeepTrack.Space is licensed under the GNU Affero General Public License. This means you can freely use, modify, and distribute it, provided you adhere to the terms of the license. For more details, see the Full License.

Owner

  • Name: Theodore Kruczek
  • Login: thkruz
  • Kind: user
  • Location: Boston, MA

πŸ”­πŸ›°οΈConstantly working on something related to satellite operations. I enjoy making space concepts accessible to everyone through JavaScript and TypeScript.

GitHub Events

Total
  • Issues event: 90
  • Watch event: 634
  • Delete event: 84
  • Issue comment event: 511
  • Push event: 416
  • Pull request review comment event: 56
  • Pull request review event: 88
  • Pull request event: 252
  • Fork event: 69
  • Create event: 68
Last Year
  • Issues event: 90
  • Watch event: 634
  • Delete event: 84
  • Issue comment event: 511
  • Push event: 416
  • Pull request review comment event: 56
  • Pull request review event: 88
  • Pull request event: 252
  • Fork event: 69
  • Create event: 68

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 1,929
  • Total Committers: 11
  • Avg Commits per committer: 175.364
  • Development Distribution Score (DDS): 0.048
Past Year
  • Commits: 327
  • Committers: 3
  • Avg Commits per committer: 109.0
  • Development Distribution Score (DDS): 0.037
Top Committers
Name Email Commits
Theodore Kruczek t****k@g****m 1,836
dependabot[bot] 4****] 38
Le-Roi777 5****7 18
Le-Roi777 l****n@g****m 13
repo-visualizer r****r 9
Scott Hubert s****1@s****l 5
hkruczek 6****k 5
Theodore Kruczek t****3@u****l 2
cwang-pivotal c****g@p****o 1
codesee-architecture-diagrams[bot] 8****] 1
deepsource-autofix[bot] 6****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 176
  • Total pull requests: 575
  • Average time to close issues: 5 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 70
  • Total pull request authors: 5
  • Average comments per issue: 0.98
  • Average comments per pull request: 1.77
  • Merged pull requests: 239
  • Bot issues: 0
  • Bot pull requests: 318
Past Year
  • Issues: 65
  • Pull requests: 279
  • Average time to close issues: 29 days
  • Average time to close pull requests: 7 days
  • Issue authors: 42
  • Pull request authors: 4
  • Average comments per issue: 0.74
  • Average comments per pull request: 1.84
  • Merged pull requests: 146
  • Bot issues: 0
  • Bot pull requests: 117
Top Authors
Issue Authors
  • thkruz (105)
  • Patdwl (4)
  • ckuethe (2)
  • RDjarbeng (2)
  • marirene12 (1)
  • GMcc13 (1)
  • richard89andrade (1)
  • coodori21 (1)
  • lch743 (1)
  • xuezhennnn (1)
  • zhaohangli (1)
  • Waradu (1)
  • ssm0901 (1)
  • masters1212 (1)
  • nelsonbustamante84 (1)
Pull Request Authors
  • dependabot[bot] (324)
  • thkruz (261)
  • Koroviev-and-Begemot (4)
  • asantolaria (4)
  • deepsource-autofix[bot] (1)
Top Labels
Issue Labels
Bug (64) Enhancement (23) Feature (19) Optimization (13) Problems : Bug (9) Duplicate (7) Wontfix (6) Addition : Feature (3) Improvements: Enhancement (2) In-Progress (2) Good First Issue (2) Testing (1) Feedback : Question (1) Inactive : Wontfix (1)
Pull Request Labels
dependencies (324) javascript (121) Bug (22) Feature (17) Enhancement (6) github_actions (2)

Packages

  • Total packages: 1
  • Total downloads:
    • npm 45 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 11
  • Total maintainers: 1
npmjs.org: keeptrack.space

Complex astrodynamics tools designed for non-engineers to make learning about orbital mechanics and satellite operations more accessible.

  • Versions: 11
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 45 Last month
Rankings
Forks count: 6.5%
Stargazers count: 7.7%
Dependent packages count: 16.2%
Average: 16.5%
Dependent repos count: 25.3%
Downloads: 26.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package-lock.json npm
  • 1136 dependencies
package.json npm
  • @babel/core ^7.16.5 development
  • @babel/plugin-proposal-private-methods ^7.16.5 development
  • @babel/plugin-transform-modules-commonjs ^7.16.5 development
  • @babel/preset-env ^7.16.5 development
  • @babel/preset-typescript ^7.18.6 development
  • @testing-library/dom ^8.11.3 development
  • @testing-library/jest-dom ^5.16.2 development
  • @testing-library/user-event ^13.5.0 development
  • @types/agent-base ^4.2.2 development
  • @types/jest ^27.5.2 development
  • @types/jquery ^3.5.14 development
  • @types/jquery.colorbox ^1.4.32 development
  • @types/jqueryui ^1.12.16 development
  • @types/materialize-css ^1.0.11 development
  • @types/node ^17.0.21 development
  • @types/numeric ^1.2.2 development
  • @types/webgl2 ^0.0.6 development
  • @typescript-eslint/eslint-plugin ^5.30.7 development
  • @typescript-eslint/parser ^5.12.1 development
  • auto-changelog-thkruz ^1.0.0 development
  • babel-loader ^8.2.5 development
  • babel-plugin-istanbul ^6.0.0 development
  • child_process ^1.0.2 development
  • clean-terminal-webpack-plugin ^3.0.0 development
  • codecov ^3.8.3 development
  • copy-dir ^1.3.0 development
  • coverage-istanbul-loader ^3.0.5 development
  • cross-env ^7.0.3 development
  • css-loader ^6.7.1 development
  • cypress ^9.7.0 development
  • download-file ^0.1.5 development
  • eslint ^8.20.0 development
  • eslint-plugin-jest ^25.7.0 development
  • gh-pages ^3.1.0 development
  • html-webpack-plugin ^5.3.1 development
  • http-server ^14.1.1 development
  • husky ^8.0.1 development
  • ignore-loader ^0.1.2 development
  • imports-loader ^3.1.1 development
  • jest ^27.5.1 development
  • jest-canvas-mock ^2.3.1 development
  • jsdom ^19.0.0 development
  • jsdom-worker ^0.2.1 development
  • mini-css-extract-plugin ^2.6.0 development
  • mkdirp ^1.0.4 development
  • opener ^1.5.2 development
  • ponicode ^0.70.11 development
  • prettier 2.6.2 development
  • prettier-plugin-organize-imports ^2.3.4 development
  • retire ^3.0.7 development
  • serve ^13.0.2 development
  • source-map-loader ^3.0.0 development
  • start-server-and-test ^1.14.0 development
  • style-loader ^3.0.0 development
  • ts-loader ^9.3.1 development
  • typescript ^4.7.4 development
  • webgl-mock ^0.1.7 development
  • webpack ^5.74.0 development
  • webpack-cli ^4.10.0 development
  • webpack-dev-server ^4.7.4 development
  • webpackbar ^5.0.2 development
  • worker-loader ^3.0.8 development
  • @materializecss/materialize ^1.1.0-alpha
  • axios ^0.24.0
  • chart.js ^3.7.0
  • draggy ^1.6.6
  • echarts ^5.3.2
  • echarts-gl ^2.0.9
  • file-saver ^2.0.5
  • gl-matrix ^3.3.0
  • gremlins.js ^2.2.0
  • jquery ^3.6.0
  • jquery-ui-bundle ^1.12.1-migrate
  • meeusjs ^1.0.4
  • node-fetch ^3.1.0
  • numeric ^1.2.6
  • ootk ^1.5.3
  • resizable ^1.2.1
  • ts-node ^10.9.1
  • urlon ^3.1.0
.github/workflows/build-pipeline.yml actions
  • SonarSource/sonarcloud-github-action v1.6 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-node v2 composite
  • actions/upload-artifact v2 composite
  • cypress-io/github-action v2 composite
  • edplato/trufflehog-actions-scan master composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
  • ibiqlik/action-yamllint v3.1.0 composite
  • oke-py/npm-audit-action v1.8.2 composite
  • szenius/set-timezone v1.0 composite
.github/workflows/visualizer.yml actions
  • actions/checkout v2 composite
  • githubocto/repo-visualizer 0.9.1 composite
pnpm-lock.yaml npm
  • 262 dependencies
.github/actions/node-setup/action.yml actions
  • actions/cache v4.2.3 composite
  • actions/checkout v4 composite
  • actions/setup-node v3 composite