Coder Social home page Coder Social logo

1010101012101 / thorium Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thorium-sim/thorium

0.0 1.0 0.0 71.13 MB

Platform for simulator controls

Home Page: https://thoriumsim.com

License: Apache License 2.0

CSS 6.92% HTML 0.03% JavaScript 93.05%

thorium's Introduction

Thorium All Contributors

Build Status Discord

Thorium

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.

Guiding Principles

Thorium is based on years of experience building starship simulator controls for Space Edventures centers in Utah. This experience drives a number of guiding principles which should underscore all feature development in the project:

  • The Flight Director is the master of the simulation. Therefore, everything in Thorium should support the flight director. New features should not remove control or power from the flight director. Features should also strive to not distract the flight director from giving the crew the best experience possible. The best features both give the flight director more ability to help the crew while not detracting from the flight director's focus.
  • Crew enjoyment is the primary reason for Thorium's use. Education, research, and training are all secondary objectives to the crew having a good time. Why? Because if the crew is not having a good time, they likely aren't learning or aren't providing good data for research. Features in Thorium should certainly foster good environments for education, but not understanding how a card works or a task being too difficult or too boring can quickly take away from students learning.
  • While Thorium works hard to be the end-all-be-all of starship simulator controls, there is no reason every single feature has to be bundled with Thorium itself. The core of Thorium is a way to distribute and configure data between multiple clients. Using the same mechanisms which crew clients connect, external clients, like lighting controllers and hardware panels, can also connect.
  • Thorium is a powerful platform. Regrettably, while its design allows for powerful interactions and screens, it isn't friendly for beginning developers like many previous simulator controls sets have been. This is one of the biggest downsides to Thorium. Something that could improve Thorium's experience for beginning developers would be ideal.

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.

Deploying

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:

[default]
aws_access_key_id = **Your key here**
aws_secret_access_key = **Your secret here**

Automatic release notes are currently being developed.

Translations

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 community.

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.

Contributors

Thanks goes to these wonderful people (emoji key):


Alex

๐Ÿ’ป ๐Ÿ“– ๐ŸŽจ

Emrix

๐Ÿ’ป ๐Ÿ‘€ ๐Ÿค”

ctolley6

๐Ÿค” โœ…

Todd Rasband

๐ŸŽจ

Brent Anderson

๐Ÿค”

Farpoint

๐Ÿ›

Isaac Ostler

๐Ÿ›

Jed Fox

๐Ÿ’ป

Lilah

๐Ÿ’ป

kimballfrank

๐ŸŽจ ๐Ÿค”

aBlueShadow

๐Ÿค” ๐ŸŒ

John Robe

๐Ÿ› ๐Ÿ’ป

Keith Smith

๐Ÿ› ๐Ÿ’ป

MaesonBusk

๐Ÿ“–

Eric Mansfield

๐Ÿ’ป โš ๏ธ

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

thorium's People

Contributors

ablueshadow avatar alexanderson1993 avatar codacy-badger avatar ctolley6 avatar dependabot-support avatar dependabot[bot] avatar emrix avatar ericman314 avatar gitter-badger avatar greenkeeper[bot] avatar j-f1 avatar jrobe avatar ksmithut avatar lilith-nightrose avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.