The Story Behind Creating an Interactive Theatre Production for the EV100 Celebrations
1. HOW TO UNITE
ART WITH JAVA,
JS AND GRAPHS
The story behind Estonian
Republic 100 anniversary
theatrical performance
2. EV 100
CONCEPTION
• 22 theatres
• Own interpretation of Estonian History
• Russian Theatre got the topic about the
future
• Hundreds of children described their
vision of future
3. TENDENCIES
• Some possible future scenarios
• IT, Multicultural, Ecological, Cosmical
etc.
• Future is not predefined
• It depends on the choices we make
4. NON-LINEAR PLOT
• Potential future scenarios were divided
into short stories
• United by the story of the main
characters
• Events take place in the year 2118
• Characters fall into the different versions
of the future Estonia
5. YES, THIS IS A
MOCKUP
• The idea for the stage set is a
construction toy
• Can take any shape and function in the
hands of children
• It’s also shaped like a graph
6. ALL THAT
COMPLEXITY
REQUIRED A GRAPH
• Utopia often leads to dystopia
• The road to Hell is paved with good
intentions
• We have a lot of storylines
• It’s very important not to repeat the
scenes that were already chosen and
played
8. A LOT OF
CHALLENGES
• Stage lighting
• Complex controllers systems that drive
hundreds of LEDs
• Costumes for each version of the future
• Voting system driving the storyline, built
upon a graph model
9. ENTERING THE
PERFORMANCE
We are in the
multicultural line
of the story
All languages
and genders are
mixed together
Everything is
accepted
11. MULTICULTURAL
UTOPIA
• In the multicultural future everything is
fun
• Semenovs have a family night
• Their daughter brings her boyfriend to
meet the parents. He wears arabic
clothes and a ballet tutu
12. MULTICULTURAL
UTOPIA
• Afterwards, everybody go to a party
• At the end of the scene, audience voting
is opened
• Will the future of Estonia be like this?
• And if the audience says yes ...
14. MULTICULTURAL
DYSTOPIA
• Special forces close the party
• They sort people
• Part of them are welcomed
• Another part take their party clothes off
• Their destiny is decided by an execution
machine
15. ABOUT THE
TECHNICAL
SOLUTION
• The system should collect votes, show ongoing
results and make decisions based on the final result
• The system should select storylines depending on
voting results, open new votes or switch storyline
• The system should communicate with the public
using natural language
• The system should have an option to be controlled by
the assistant director behind the scene and should
display full statistics about ongoing states and votes
• The system is called EMA (“mother” in Estonian) and
essentially is another actor
16. MOBILE CLIENT
• 600 people should be able to vote within a minute
• People should be able to vote from their phones
• Nobody is going to download an app
• Web application
• Two languages supported
20. LET’S START WITH
A GRAPH
• Data need to be stored somewhere
• Relational Databases won’t fit
• The obvious technology choice was
Neo4j
• We modelled the scenarios as a graph
on Neo4j
• Neo4j gives us flexibility and absence of
a fixed schema
21. SERVER PART
• Python vs Java?
• Java was chosen
• Spring Boot
• Integration with Neo4j
• Speed
• Hard to break
23. NON-TRIVIAL PART OF THE TASK
• Two control centers
• Dynamic audio
• EMA should talk with the audience
• Duration of each audio file is different
• Synchronization is important
24. TWO
CONTROL
CENTERS
Server – stores the state,
provides statistics, handles
user registration, collectes
votes, makes sure that
each person can give only
one vote
<<Super>> - turns voting
on and off, shows the
ongongin progress and
results, switches states
25. SUPER CURTAIN
EMA PART
• Implemented in VueJS
• 110 pieces of audio
• Audio playback and command calls are
chained on top of each other
• We did not depend on the fact that
audio files are of various lengths
• Universal solution
26. ISSUES WITH MOBILE
CLIENT
• Tons of phone models
• OS versions
• Browser types and options
• VueJS created problems
• Was rewritten on VanillaJS
29. FINAL RELEASE
• 146 mb JAR file
• More than 5000 lines of code
• Some funny stories during the first
performances
• President attended the premiere