All Projects → Thorium-Sim → Thorium

Thorium-Sim / Thorium

Licence: apache-2.0
Platform for starship simulator controls

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Thorium

Offix
GraphQL Offline Client and Server
Stars: ✭ 694 (+536.7%)
Mutual labels:  graphql, apollo, hacktoberfest
Graphql Shield
🛡 A GraphQL tool to ease the creation of permission layer.
Stars: ✭ 3,121 (+2763.3%)
Mutual labels:  graphql, apollo, hacktoberfest
Mercure
Server-sent live updates: protocol and reference implementation
Stars: ✭ 2,608 (+2292.66%)
Mutual labels:  graphql, hacktoberfest, realtime
Graphback
Graphback - Out of the box GraphQL server and client
Stars: ✭ 323 (+196.33%)
Mutual labels:  graphql, apollo, hacktoberfest
Cookiecutter Django Vue
Cookiecutter Django Vue is a template for Django-Vue projects.
Stars: ✭ 462 (+323.85%)
Mutual labels:  graphql, apollo, hacktoberfest
Villus
🏎 A tiny and fast GraphQL client for Vue.js
Stars: ✭ 378 (+246.79%)
Mutual labels:  graphql, apollo, hacktoberfest
Gatsby Woocommerce Themes
⚡ A Gatsby Theme for WooCommerce E-commerce site Gatsby WooCommerce WordPress
Stars: ✭ 306 (+180.73%)
Mutual labels:  graphql, apollo, hacktoberfest
Learn Graphql
Real world GraphQL tutorials for frontend developers with deadlines!
Stars: ✭ 586 (+437.61%)
Mutual labels:  graphql, apollo, hacktoberfest
Erxes Api
API for erxes
Stars: ✭ 57 (-47.71%)
Mutual labels:  graphql, apollo, hacktoberfest
Graphql Transform Schema
Transform, filter & alias resolvers of a GraphQL schema
Stars: ✭ 84 (-22.94%)
Mutual labels:  graphql, apollo
Boilerplate Vue Apollo Graphql Mongodb
Start your magical stack journey!
Stars: ✭ 85 (-22.02%)
Mutual labels:  graphql, apollo
Card Game Simulator
Create, Share, and Play
Stars: ✭ 87 (-20.18%)
Mutual labels:  simulator, card
Apollo Scalajs
Use Apollo GraphQL from Scala.js apps!
Stars: ✭ 83 (-23.85%)
Mutual labels:  graphql, apollo
Apollo Prophecy
🔮 GraphQL error management made Easy, generate custom machine-readable errors for Apollo Client/Server from the CLI
Stars: ✭ 83 (-23.85%)
Mutual labels:  graphql, apollo
Apollo
Meteor & Apollo integration
Stars: ✭ 87 (-20.18%)
Mutual labels:  graphql, apollo
Graphql Doctrine
Automatic GraphQL types from Doctrine entities
Stars: ✭ 81 (-25.69%)
Mutual labels:  graphql, hacktoberfest
Quell
Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.
Stars: ✭ 90 (-17.43%)
Mutual labels:  graphql, apollo
Meteor Apollo Starter Kit
Meteor, Apollo, React, PWA, Styled-Components boilerplate
Stars: ✭ 91 (-16.51%)
Mutual labels:  graphql, apollo
Nestjs Cqrs Starter
NestJS CQRS Microservices Starter Project
Stars: ✭ 80 (-26.61%)
Mutual labels:  graphql, apollo
Thunder
⚡️ A Go framework for rapidly building powerful graphql services
Stars: ✭ 1,281 (+1075.23%)
Mutual labels:  graphql, realtime

Thorium

Be sure to check out Thorium Nova, the next generation of Spaceship Simulator controls

Test Discord All Contributors Version GitHub last commit (branch)

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 guided narrative multiplayer cooperative real-time spaceship bridge simulator. Let's unpack all that vocabulary

  • Narrative: Thorium prioritizes storytelling and narrative over action and spectacle.
  • Guided: The narrative is lead by a Flight Director, who works to help players feel connected to the story.
  • Multiplayer: Thorium is intended to be played by multiple players.
  • Cooperative: Players are intended to work together to win the game.
  • Spaceship: The gameplay of Thorium takes place in space.
  • Bridge Simulator: Players each run an individual station that runs a small part of the entire ship.
  • Real-time: The action in Thorium is immediate and non-stop.

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.

A note about support

Thorium is a self-organized "community support" project. I encourage everyone to use it and continue to submit issues and bug reports. As maintainer, here's what I will continue to do:

  • Review issues
  • Review pull requests and provide feedback
  • Merge pull requests
  • Create new builds/releases
  • Encourage and assist other developers
  • Focus my efforts on long-term projects and keeping the codebase modern.

Fortunately, you can get help from the excellent people on Thorium's Discord Server.

If you need better support for your Thorium simulator, I more than happy to contract with you to do so. Fill out the Thorium Service Request Form to start that process.

If you want to learn to contribute to Thorium, check out the development video series for some ideas for how to get started.

Hope this helps! ~Alex

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

Install Yarn from https://yarnpkg.com

then

yarn install
yarn start

Then open the app or GraphiQL

Building the App

yarn build

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

Deploying

Thorium releases are automatically deployed when changes are merged into Master.

Migrating

Thorium does not use a traditional database; instead, it stores information in a json file. To migrate your Thorium instance to another computer, simply copy the snapshot.json and snapshot-restore.json files along with any assets you may be using and drop them in the new thorium directory. Startup the Thorium app and you'll be on your way.

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.

Contributors

Thanks goes to these wonderful people (emoji key):

Alex
Alex

💻 📖 🎨
Emrix
Emrix

💻 👀 🤔
ctolley6
ctolley6

🤔
Todd Rasband
Todd Rasband

🎨
Brent Anderson
Brent Anderson

🤔
Farpoint
Farpoint

🐛
Isaac Ostler
Isaac Ostler

🐛
Jed Fox
Jed Fox

💻
Lilah
Lilah

💻
kimballfrank
kimballfrank

🎨 🤔
aBlueShadow
aBlueShadow

🤔 🌍
John Robe
John Robe

🐛 💻
Keith Smith
Keith Smith

🐛 💻
MaesonBusk
MaesonBusk

📖
Eric Mansfield
Eric Mansfield

💻 ⚠️
sassyspock
sassyspock

📖 🐛 💻
Justin
Justin

📖 🐛 📝 💻
thoriumsim
thoriumsim

📖 📹
JordanDeSmith
JordanDeSmith

💻
Mason Edmondson
Mason Edmondson

🐛
Isaac Evans
Isaac Evans

🐛⚠️

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].