explaingit

nasa/openmct

12,956JavaScriptAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

Open MCT is NASA's open-source web framework for building custom dashboards that display real-time sensor data or telemetry streams, runs in any browser, no special software needed.

Mindmap

mindmap
  root((openmct))
    What it does
      Telemetry display
      Custom dashboards
      Real time monitoring
    Tech stack
      JavaScript
      Node.js
      webpack
    Use cases
      Spacecraft operations
      Industrial monitoring
      IoT dashboards
    Key features
      Plugin system
      Browser based
      Mobile support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a real-time browser dashboard to monitor spacecraft telemetry or IoT sensor data streams.

USE CASE 2

Create a custom industrial monitoring display with graphs, gauges, and tables for any time-series data source.

USE CASE 3

Extend the framework with custom plugins to add new display types, data connectors, or analysis tools.

USE CASE 4

Run the included tutorials to build a plugin that visualizes data from your own API.

Tech stack

JavaScriptNode.jswebpacknpm

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Node.js, runs entirely in the browser once the local dev server is started with npm.

Use freely for any purpose, including commercial use, as long as you include the copyright and Apache 2.0 license notice.

In plain English

Open MCT (Open Mission Control Technologies) is a web-based framework built by NASA for visualizing data from spacecraft and other systems that produce streams of measurements over time. The NASA Ames Research Center developed it to support real space mission operations, and it is used internally for data analysis of spacecraft as well as planning and operating experimental rover systems. The core purpose of Open MCT is to give teams a way to display telemetry data, which is the kind of continuous stream of readings you get from sensors, instruments, or any connected device. Users can build custom dashboards that show graphs, gauges, tables, and other views arranged on a screen. The framework runs in a standard web browser on both desktop and mobile, so no special software is needed to view a control display. Open MCT is built for extension. Almost all its built-in features are implemented as plugins, and anyone building on the project can add new display types, data sources, or tools the same way. A plugin is a self-contained bundle of code that can be added or removed without breaking the rest of the application. This makes it possible to adapt the project for uses outside of space missions, such as monitoring industrial equipment or any system that generates time-series data. Getting a local version running requires Node.js installed on your machine. You clone the repository, run the install command, and start a local server, the app then opens in a web browser at a local address. The build system uses npm and webpack, which are standard JavaScript build tools. The project is fully open source under the Apache 2.0 license. A live demo is available at the address listed in the README, and tutorials for building custom plugins are included in the documentation on the project website.

Copy-paste prompts

Prompt 1
Using Open MCT, write a plugin that connects to a REST API returning temperature and humidity readings every 5 seconds and displays them in a real-time line graph.
Prompt 2
I want to build a factory floor monitoring dashboard with Open MCT showing 4 sensor gauges and a historical trend graph. Walk me through creating the layout.
Prompt 3
How do I run Open MCT locally with a mock telemetry data source so I can prototype a dashboard without a real sensor feed?
Prompt 4
Show me how to add a custom display type plugin to Open MCT that renders data as a heat map instead of a line graph.
Open on GitHub → Explain another repo

← nasa on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.