GithubHelp home page GithubHelp logo

md_hybrid's Introduction

This repository contains a templated codebase for a virtual venue. The goal of this project is to provide arts and educational organizations with a starting place for building their own web-based venues for live performances and virtual events.

This project was started to support a live performance incubated at CultureHub in Spring 2022.

Getting Started

This guide assumes some familiarity with your the command line (a text-based interface for your computer) and with web-development technologies. So when you see blocks of code below, these should be entered into your MacOS Terminal ๐Ÿ’ป or Windows/Linux equivalent.

# download this repository and change directory (cd) into the root folder
git clone https://github.com/AidanNelson/itp-ima-hybrid-experiences.git
cd itp-ima-hybrid-experiences

# install all dependencies on the front end
npm install

# start the front-end development server
npm run watch

# You should now be able to access the venue from your web-browser at http://localhost:1234/

In order to actually use this application, however, you will need to start the back-end server in a separate terminal

# enter into the /server folder and install all dependencies
# note that this may take several minutes as it will compile the Mediasoup package
cd server
npm install

# create certificates for local development (only required once)
# this will automatically set the country code to US.  Feel free to change if you like
# you may be able to ignore all other parameters
mkdir certs
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US" -keyout certs/key.pem -out certs/cert.pem

# once everything has been installed, start the server from the root of the repository
cd ..
npm run start-server


Customizing for Your Needs

The code is organized into a few different sections:

Server

The backend Node.js server code is contained within the /server folder. The server manages all real-time communications between audience members and the showrunners.

Front End

There are several web pages available in the front-end. These are available at the following paths.

Audience - This is where audience members will enter into your virtual venue.

Show Control - This is where you will control the show, move between scenes and otherwise affect the audience experience. Think of this page as home-base for a stage manager.

Broadcaster - This page allows a live performer or showrunner to broadcast to the audience using WebRTC broadcasting.

Feed - This page displays a simple view of the current broadcast from the broadcaster, for testing and recording purposes.

Technologies at Play

Here is a run down of some of the core technologies which enable this virtual venue to exist.

WebSockets

WebRTC

WebGL

To Do:

Server:

  • - Switch server to use HTTPS

Broadcaster:

  • - Use highest quality streams

Admin:

  • - Show currently active streams
  • - Show # of current audience members?

Client:

md_hybrid's People

Contributors

zhuodicai avatar aidannelson avatar

Watchers

Lauren Race 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.