GithubHelp home page GithubHelp logo

upstage-org / upstage Goto Github PK

View Code? Open in Web Editor NEW
20.0 9.0 0.0 42.87 MB

UpStage is a platform for cyberformance: remote players combine digital media in real-time for an online audience. All you need is a web browser!

Home Page: https://upstage.org.nz

License: GNU General Public License v3.0

Python 10.13% HTML 0.08% JavaScript 52.03% Vue 27.09% Dockerfile 0.01% Shell 0.11% SCSS 0.42% TypeScript 9.42% Less 0.24% CSS 0.46%
cyberformance theatre real-time art

upstage's People

Contributors

cbeez23 avatar dependabot[bot] avatar elisadcg avatar fuyloon2018 avatar gloriajw avatar helenvarley avatar jenkins-fans avatar nakasaky55 avatar paul-rohrlach avatar teddyfullstack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

upstage's Issues

stage: audience nicknames

as an audience member on a stage, i expect to have the option to choose a nickname when i enter the stage; if i don't choose a nickname, my chat will appear anonymously, without any preceeding nickname.

stage: show player nickname

as a logged-in player, i expect my nickname to show in the chat window with my text when i am not holding an avatar.

workshop: footer with version and date

As a logged-in player accessing areas of the workshop, and as a non-logged-in anybody accessing the home screen (log-in page) i expect to see a footer containing the software version and the date of that version (& perhaps licensing info?)

future dream: collaboration tools

this is thinking into the future, please don't prioritise it for now :)

it would be cool to have tools that groups could use to assist in their UpStage collaborations. for example we frequently use etherpad/piratepad for brainstorming, planning, collaboratively writing. but there are always problems with the free installations - they close down, or they are unstable. we also swap a lot of files around, & exchange a lot of emails.
so it would be great if there could be a "collaboration" area, where a group working on an UpStage performance could store/exchange files, have a collaborative writing pad, maybe some kind of calendar would be useful as well.

vicki:
yeah this has been in the user stories reprioritised on the website at one stage would be useful for sureBUT do we want to end up as storage for everyone’s planning files …i think an an ether pad yes, place to collect files no - if they have made the grade and are going to be shared through UpStage okbut collective working space which enables file sharing not so surepulling things in on the fly as a feature i imagined just linking to where the ‘thing’ existed on the internet usually (like a movie before renderingso if the movie/audio whatever was later moved then it would have to be sourced again…we could infect open ourselves up to quite an issue of copyright contravention if we enable file sharing …On 10/05/2017, at 7:50 PM, Helen Varley Jamieson [email protected] wrote:this is thinking into the future, please don't prioritise it for now :)it would be cool to have tools that groups could use to assist in their UpStage collaborations. for example we frequently use etherpad/piratepad on freely available installations, for brainstorming, planning, collaboratively writing. but there are always problems with the free installations - they close down, or they are unstable. we also swap a lot of files around, & exchange a lot of emails.
so it would be great if there could be a "collaboration" area, where a group working on an UpStage performance could store/exchange files, have a collaborative writing pad, maybe some kind of calendar would be useful as well.—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

helen:
yes fair point about not becoming file storage for everyone's multiple notes.
i was thinking about it because i just spent some time looking for a way to have a piratepad-like thing on the website (as a solution for our current situation), looking at wordpress plugins. & then i was thinking, it would make sense to have some kind of collaboration space built into UpStage. but you're right, it shouldn't be allowed to become a storage place. it could/should be pretty simple.
eg:

  • collaborative writing space (etherpad)
  • info page that would show the usernames of the players (perhaps possible to email them from there?) & maybe little messages/notices between the players
  • calendar??

paul:
Could people not just use Keep/Evernote/OneNote ?

helen:
that's what we've been doing, with etherpad instances. the problem is that these instances are not always stable, or they get closed down (like titanpad). certainly there are plenty of things like this that people can use, & this absolutely isn't a priority. i'm just thinking about what might be useful to us as performers, in the future :)

paul:
Fair enough slightly_smiling_face

vicki:
yes those three useful

stage: customisable chat window position

as a logged-in player, i expect to be able to determine the position of the chat window on a stage that i am the owner of. e.g. it could be on the left or right hand side of the screen, or even not shown.

Erase part or all of a drawing

as a logged-in player on a stage, i expect to be able to select and erase part or all of a drawing i have made.

previously in UpStage it has only been possible to clear an entire layer, which means that if you make a mistake or for whatever reason want to remove part of what you've drawn, you have to remove the entire thing.

could there be one button to clear the whole layer, & another that is an eraser tool that can be used to rub out any part of a drawing? an "undo" feature that allowed you to undo the immediately previous line would also be useful.

Thickness of line

as a user i can select the size (thickness) of the line i draw by adjusting the line tool size with a slider. The drawn line should be rendered smoothly (if a curve) as a continuous line

"Clear" function

as a user when i select the clear button, one click clears the last line drawn (like edit undo) and holding down the button clears everything that has been drawn so far on that stage

(is it possible to "hold down" a button in a GUI? would it work as a double click? or would it be better to have 2 buttons - one that is clear last line & the other clear entire drawing layer?)

Animated avatar movement

As a player, I want to be able to move an avatar around on the stage, and I expect to be able to adjust the speed of its movement from very slow to jumping

smartphone / tablet experience

the experience of using/viewing/participating via a mobile or tablet is going to be different to the experience on a computer, therefore it makes sense to think about this & plan the functionality a bit differently, & try not compromise either experience because of the other one. the main differences are size, & the keyboard (i think - any others?)

from an audience perspective, the main issue will be the keyboard. when they want to type in the chat, the keyboard is going to obscure a significant amount of the screen & stage. i would guess that this means audience members participating via mobile/tablet are not going to comment as much as those with a proper keyboard (unless they're using a tablet with a separate keyboard). one possibility to facilitate easier input could be things like emoticons, & the applause button.

from a player perspective, what functions are going to be difficult/easy if using a tablet/phone?

  • streaming: if you're using your device to stream, then you're probably not going to be doing anything else on it, as you'll need to be pointing it at whatever you're streaming.
  • operating avatars: it might be ok to select and move avatars, but speaking is going to be difficult without a keyboard
  • drawing: probably ok?
  • audio: probably ok?
  • using the workshop interface: might be tricky?

(i've copied the discussion from the limelight repo issue, https://github.com/upstage-org/limelight/issues/171, below)

vicki:
it should be relatively easily to detect device and deliver accordingly - but it is probable that the users on mobile (small screen) are more likely to be audience
for using all the tools it seems likely the player would be using a laptop
however still a mobile device but with bigger screens are tablets - by the sounds of the size of your laptop hen maybe the screen size could be approaching yours - the only difference might be the keyboard appearing when trying to input text

helen:
my new laptop is 14", the old mac is 13", so at the smaller end of laptops. but plenty of people have small laptops.
what if we decided to make the mobile interface audience only? would that make programming easier, or would it not really make any difference? as vicki says, mobile users are more likely to be audience, apart from perhaps streaming (will that still require the use of another app? in which case it's also fine because currently we can stream from a mobile into UpStage, without needing to be in UpStage on the mobile device).

vicki:
arohamai - i meant audiences on mobile (as in phones)
tablets are another thing - and many are using these instead of laptops (this would include schools which is where i started running into issues with trying to do workshops …
i think it is too limiting to restrict ‘mobile’ to audience only
and its ok hen - size doesn’t matter ;)

helen:
it would be useful to do some early testing then, to work out how we can try to ensure that it isn't a frustrating experience on phones/tablets, & also that whatever modifications are necessary to achieve that don't end up compromising the experience for those on laptops.
i just succeeded in uploading an image from my phone, it works fine. i guess we need to wait for stages to be working on mobile & then see how it is.
@vickis - do the schools usually have keyboards with the tablets, or just use the on-screen keyboard?

vicki:
agree
schools do use a range
now that many have byod (bring your own device) they have everything
most would i think not use keyboards with tablets as a rule
but actually the last few projects in have done with schools have been in the hands on, outside and/or using electronics not in the classroom at all (as such)
agree it would be good to consider all users but to determine what works best for the majority
my internet would be in a space that does not have barriers to access (as in when it was important to have dial up all those years ago
the most ubiquitous tech is now the phone … but are we going to mass ubiquity
or really still a pretty niche product ;)

helen:
ubiquitous & accessible are 2 different things ... we aren't trying to be social media & i think if we did suddenly get hugely audiences then we would have a whole lot of new problems to deal with like paying for our server traffic for one thing!
from my own personal perspective, i don't think i would want to perform from a mobile device. streaming from a phone is one thing, but i don't think i'd even want to watch a performance on my phone. i might watch something on a tablet, but probably only if it wasn't possible for me to use a computer. that's because for me the text interaction is really important, & i think i'd find it really frustrating to not have a proper keyboard.
if you were designing a schools project using Limelight, & it was going to be in & outside the classroom, what kinds of things do you think the kids might want to do on their phones or tablets outside? i'm guessing that it might be mostly gathering live media, e.g. streams & images & sounds, that are being fed into a performance. so could it be that the mobile devices are mostly media gathering, & there would be some players with computers doing the onstage manipulation?
what other ways do you think that Limelight might be used on the go? (apart from audiences watching).

vicki:
off hand interacting between digital and physical space, mapping, motion sensing that kind of thing :)

helen:
can you describe how these might actually happen with limelight? what would the kids actually be doing, how would they be using limelight?

paul:
If I may interject here - Responsive design (more specifically, how we make assumptions on the device) is a bit more complicated than 'Phone, Tablet, Laptop, Desktop'
On the browser, we (quite rightly) have very limited access to information about the machine it's running on. We don't know exactly what kind of device we're on, we don't know what screen size we have. We don't even know the size of the window we're running in.
What we know is the size of our viewport. Using this, we try to guess what the screen size might be. But this assumes our viewport is 1:1 with the window size (Which we default to, but the browser can override if it wants to) and that our window is running full screen.
What I suggest we do initially is this:

  • Anything that we assume is a computer, can access everything as normal
  • Anything else is audience-only with slide-in chat in terms of the performance space
    There isn't anything special about the workshop functionality so we can have a fully featured tablet/mobile experience here off-the-bat but obviously the UI will need to adapt (as it already does)
    Over time, we can add performance functionality to the tablet/mobile experience provided that we can actually come up with a usable way of doing so.

vicki:
Well seeing as how i am working with school age youth now is alongside a coomunity engagement project around an urban waterway (aside from the weaving project with the harihari group)
They might be telling the story of the waterway
Walking around its previous path and introducing its current meander through the endangered inhabitants
They would be talking about the sensor array they have installed and describing how temperature can present a physical barrier to passage highlighting areas where the waterway is comprised due to canalisation.
They could be pulling in data from the sensors, overlaying it with live images of the stream and avatars of the species that would be there in ideal conditions
They might draw in how improvements could be made

that looks reasonable Paul :)
i went off on a possibilities tangent there!
dreaming big ;)

helen:
big dreams are good :)
paul, your proposal sounds sensible. getting the mobile audience on board first, & then perhaps we have some interesting projects for future students in developing mobile features :)

show hide avatar name

as a user i should be able to toggle between visible and invisible for the name appended to the avatar

stage: change player nickname

as a logged-in player, i expect to be able to change my chat nickname at any time, whether or not i am holding an avatar.

workshop: animation formats

as a logged-in player, i expect to be able to upload visual animations in multiple formats, as avatars, props or backdrops; and to be able to manipulate these animations on stage, i,e, play, pause, stop. (similar to what we can currently do in UpStage v3)

player audience counter on foyer

As anyone - audience or logged in player - i want to be able to see how many players and audience are on a particular stage in the stages list. I expect to be able to easily see which stage might be currently active, from the numbers of audience and players there. I expect this information to be recorded someone and accessible after the fact as documentation.

create new user

As an admin, I want to add a new user and I expect to have an intuitive form to do it.

workshop: media edit interface

as a logged-in player, i expect to be able to access a media edit interface that provides a thumbnail preview of the media item along with tools to:

  • edit information e.g. name, voice
  • replace media item with a new file
  • delete media item
  • download media item

and showing information including:

  • player who uploaded this item
  • date of upload
  • stages to which it is assigned
  • permissions (e.g. anyone can use it / no-one can use it / use only with uploader's permission)

the current UpStage v3 media edit interface is quite good:
image

Avatar Voices

As a player on a stage, when I am holding an avatar and I type text for the avatar to speak, I expect to hear the text spoken by the voice that has been assigned to that avatar. As an audience member on a stage, I expect to hear text2speech voices speaking aloud the avatar's text.

Dashboard: layout of stage list interface

as a logged in player, i expect to be able to see a list of stages that includes information such as:

  • the access i have to each stage (e.g. audience, player, owner)
  • a counter showing the numbers of players and audience currently on that stage
  • date of creation
  • date last used / accessed
    and possibly other information such as when the stage was last used, or if a public performance has been announced to happen on that stage.

email free user

as an admin i want to be able to add a user for a one-0ff session (as in a guest user) - override the requirement for an email
all others must supply an email to register an account

layout of user list interface

As a logged in player (or only admin?) I want to see an alphabetical list of all users with information including username, permission/rights, date account was created, date of last log in, and possibly other information. This should be in a table that can be sorted by all columns (e.g. I can easily see which players have not logged in for years) and should also be searchable.

dropdown menus - multiple selection

As a player, when I need to select options from a dropdown menu, I expect to be able to select multiple options if appropriate, by holding down the shift or ctrl key.

I also expect to see the available options in a logical order, e.g. alphabetical, numerical, time-based etc. (not a random list).

set media copyright

as a user when creating or uploading media items i have the ability to determine the copyright permissions and use categories referencing Creative Commons
a drop down or similar should display options something like:
copyright free (can be used by other players in any way without need for permission)
use with permission (other players must ask the owner for permission if they want to use the media item)
use with acknowledgement (other players can use the media item as long as the owner is acknowledged)
not shared (nobody except the owner can user the media item; that is, only the owner can assign it to stages - if it is assigned to a stage then it would be available for players who have access to that stage).

stage accessibility - public or non-public

As the creator/owner of a stage, or as an admin, I can make a stage public - i.e. visible to someone who is not logged in - or non-public - i.e. only visible to logged in players who have access to that stage. I expect to be able to change this setting on a stage's edit screen.

stage: hide player nickname

as a logged-in player, i expect to be able to hide my nickname in the chat window if i want my text to appear as anonymous audience text.

Erase pen

as a user i can select an eraser tool from the drawing toolbox to delete a described area

stage: player / audience counter

as either audience or player, i expect to be able to see a counter on stage showing the number of players and audience currently on that stage at any time. i expect this counter to update in real time if players or audience enter or leave the stage.

additionally, this counter would allow me to see the names of players and audience members (if they have chosen to have a name) - for example a dropdown list of names appears when i click on the number.

currently in UpStage this counter appears above the chat window:

image

stage: customisable tool palettes position

as a logged-in player on a stage, i expect to be able to move tool palettes to different positions or to hide them entirely (e.g. if i'm not using a feature in a performance).

the position of tool palettes is obviously not something the audience would see, & would maybe be most useful if it could be individually customised rather than for all players in a show. for example some people might find it easier to have the avatar wardrobe, drawing palette, etc on the left of the screen. (of course this then raises issues about covering up areas of the stage but this would just be for players so presumably they would know what they were doing & why).

vicki:
I like the floating palettes feature idea
If they were collapsable and dragable then they could begin in a default set up and restore to that at each stage re entry :)
(in VisitorsStudio, there were palettes that could be moved around the screen by the individual - actually the chat as well as media palettes)

streaming

as an admin or any level down to player - i want to able to add real time streaming to the stage the functionality of which is handled by an external source (eg WebRTC or other) this requires permission of the browser

stage: private communication for players

as a logged-in player on a stage, i want to be able to communicate privately (unseen or heard by audience) with one or more of the other logged-in players.
currently in UpStage players have the ability to "whisper" to each other - send text messages that are not visible to the audience. this is done with the /wh command, in the chat window. it is problematic for many reasons - very easy to make a typo & have your whisper appear to everyone; not intuitive; time consuming especially when you want to whisper to specific individuals rather than to all players on that stage.
it would be great to find a new solution, that would allow the players on a stage to communicate privately; that doesn't take up much space & is quick & easy to do in the heat of a performance (as it's usually when something isn't going quite right during a performance that you need this feature!)

vicki:
perhaps as with the water-wheel there is the ability to open a chat window that is just for players on stage - like a prompt space .. that would alert all to stage directions etc
AND there is something like the @t command...

stage permissions

as the owner of a stage i can set the following permissions for stages:
public: visible to non-logged in audience members, who can click on the link to enter the stage as audience
non-public: only logged-in players who have permission can see and enter the stage
I can also give permissions to other players:
player: able to enter the stage, access on-stage tools, and operate
edit: same as player, and can edit the stage (assign media & make other changes)

stage: chat styling

This issue proposes that we more distinctly represent various types of dialog in the chat window so that we can use a higher number of variations. To begin with:
image

helen:
i agree that it's good to be able to distinguish between different types of chat input, however i think we need to be quite careful with this & definitely make it optional. the chat window is important but it needs to work with what's going on visually on the stage - which is often quite a lot - & not clash with it or dominate (unless of course that is wanted by a particular performance).
can there be options within the stage set-up, where you can choose whether to have plain text or styled in the chat?

vicki:
oops should have commented about the colours here
i quite like it
the synaeathesists should be consulted!

information on media edit screen

as a user I can see listed in the media edit screen that lists information
the list shows who uploaded the item & when, & details of the file such as dimensions, filesize, file format, filename, & a download link.

stage: static messages

as a logged-in player, i expect to be able to create a static on-stage text message, in real time, that is visible to all players and audience, and persists on stage until a player removes it.

this could be used before a show to give information about the performance for anyone who comes early, after a show to give credits, or even during a show for scene breaks or other "announcements".

Stage: entrance state

As a player or audience member, I expect that when I enter a stage at any time during a performance, I will see and hear the same as what others already in the stage before me are seeing and hearing - the same as if I had entered a theatre or cinema during a performance.

stage edit screen

As a logged in player, I want to have a single interface for creating and editing a stage that includes all the options available for setting up and customising my stage. I expect features including the ability to delete or clone the stage, edit the stage name and url, select different colours for the stage background and interface, give players permission to perform on and edit the stage, and make the stage public or non-public.

GDPR regulations

as an admin the creation of a new user has capacity built into it to ensure compliance with current GDPR regulations on data collection and security

avatars: clearly show which avatar you are holding

As a player, I need to be able to quickly and easily see which avatar i am holding. I expect to be able to see an icon in a tool palette that shows me which avatar I am holding, and a way to see which avatars are held by other players - e.g. an avatar icon is greyed out when held by another player.

stage: audio tools

As a logged-in player on a stage, i expect to be able to access an audio tool palette that shows an alphabeticised list of audio files that have been assigned to the stage, and tools that allow me to:

  • select one or more tracks
  • play, pause and stop one or more tracks
  • mix two or more tracks together
  • cross-fade between two tracks
  • adjust the volume of each track individually
  • adjust the volume of all tracks together
  • see the length of a track, and how far through it is
  • start or stop the track at a specific timecode

stage: clickable links in chat / text

as a logged-in player or audience member, i expect to be able to paste a link into the chat window and that others on the stage can click on it and have it open in a new window.

links posted by logged-in players as "thoughts" or "shouts" should also be clickable in the chat window, the same as when posted as ordinary speech or audience text.

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.