keeptrack.space
ππ‘ TypeScript Astrodynamics Software for Non-Engineers. 3D Visualization of satellite data and the sensors that track them.
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
Keywords from Contributors
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
Metadata Files
README.md

Table of Contents
- Project Overview
- Who Is KeepTrack For?
- Features
- Screenshots
- Installation
- Usage
- Release Notes
- Contributors
- License
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
- Version 10.0 - Euclid
- Version 9.1 - Kepler
- Version 9.0 - Kepler
- Version 8.2 - Phoenix
- Version 8.1 - Phoenix
- Version 8.0 - Phoenix
- Version 7.2 - Nebula Navigator
- Version 7.0 - Vega Viewpoint
- Version 6.0 - Celestial Symphony
- Version 5.4 - Orion Overhaul
- Version 5.0 - Apollo Augments
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
- Website: keeptrack.space
- Repositories: 7
- Profile: https://github.com/thkruz
ππ°οΈ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
Top Committers
| Name | 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
Pull Request Labels
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.
- Homepage: https://keeptrack.space
- License: AGPL-3.0
-
Latest release: 3.1.2
published over 4 years ago
Rankings
Maintainers (1)
Dependencies
- 1136 dependencies
- @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
- 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
- actions/checkout v2 composite
- githubocto/repo-visualizer 0.9.1 composite
- 262 dependencies
- actions/cache v4.2.3 composite
- actions/checkout v4 composite
- actions/setup-node v3 composite