Platform for simulator controls

Thorium All Contributors

Build Status Discord


A simulator controls platform

New here? Check out the contributing document

Want something to work on? Here's where we need help. Not sure what it is or how to work with Thorium? Guides are in the docs website. Thorium accepts donations.

What is Thorium

Thorium is a simulator controls platform which eventually hopes to encapsulate the following features (and maybe more):

  • Multiple simulators in the same framework

  • Multiple stations and cards

  • Arbitrary card assignments that can update in realtime

  • Realtime data sharing across devices

  • Federated architecture for supporting satellite devices (e.g. lighting control, Arduino panels, etc.)

  • Lighting Control

  • Sound Control

  • Video Control

  • 3D Rendering

  • Physics Simulations

  • Pre-recorded macros

  • Timelines

And more. The above merely scratches the surface.

Thorium is flexible enough to provide a system for creating an integrated, distributed, fault-tolerant show-control system that can power lights, sound, video, and take input and provide output to a wide variety of devices.

Created with ❤ by Alex Anderson and Fyreworks.

Getting Started

npm install
npm run start

Note: If you are on Windows, the dependencies are a little weird. You will have to run a few more commands

npm install
cd server
npm install
cd ../client
npm install
cd ..
npm run start

Then open the app or GraphiQL

Building the App

npm run build

Builds the app for production and bundles it into a packaged terminal app.


If you have access to upload to the S3 bucket Thorium builds are stored in, you can run the npm run deploy command, which builds, bundles, and upload Thorium in one go. To use this command, you must have your AWS credentials configured in the ~/.aws/credentials file, like so:

aws_access_key_id = **Your key here**
aws_secret_access_key = **Your secret here**

Automatic release notes are currently being developed.


Thorium is currently in the process of supporting i18n translations. Want to add translated strings for your language? If the language doesn't exist, add it to the package.json file. Also be sure to add the locale data to the /src/helpers/intl.js.

Translations are done with react-intl. A good example of how this can be used is the /src/containers/FilghtDirector/Welcome.js file.

Open-source Assets

When Thorium is started for the first time, in either development or production mode, it will automatically download assets from a remote server. These assets are regularly updated with content from the compunity.

You can download open-source licensed assets to be used with Thorium here.

Interested in contributing your own images, movies, sounds, and more to this repository? File an Issue and we'll give you access.


Thanks goes to these wonderful people (emoji key):


💻 📖 🎨


💻 👀 🤔



Todd Rasband


Brent Anderson




Isaac Ostler


Jed Fox





🎨 🤔


🤔 🌍

John Robe

🐛 💻

Keith Smith

🐛 💻



Eric Mansfield

💻 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!