VRHackatonBrussels2016, 15, 16 and 17 January 2016

#VRHackathonBXL on Twitter, identi.ca, Live Cast, TwitterStreamGraphs, Collecta, flickr

Own objectives

  1. interact better with the rest of the community
  2. improve VR skills

Output

Name
Bobsleigh
Url
http://vrlab-brussels.info/VRHackathon/
Logo
Description
Multiplayer multiplaform webVR collaborative experience done during VRHackatonBrussels2016 with DIY IoT environment controlled
Details
(Co) Best in webVR category earning the co-created VRLab Brussels its first prize obviously to be used by workshop participants! See also the Video preview.
CallToAction
Grab friends and slide down crazy slopes!
DateStarted
January 2016
DateEnded
January 2016

Attended activities

Weekend Timeline Description

Actual roller cost of emotion and productivity (could itself be a webGL visualization).

  • failed personal pitch on Friday evening
  • gather around Bobsleigh for it's realistic scope idea yet pushing limits
  • discussion and argument around the main tech stack
  • gathering of assets
  • organizing the team, setting goals for the next day (Saturday), distributing some obvious tasks for specialities
  • <12pm self set deadline for MVP with networked game mechanics, pushed back until 7pm!
    • horribly frustration obviously yet ... had to give a hoped for deadline
      • instead gave a status update every couple of hours
  • constant pain of having only one server
    • no testing/prod server so perpetual connection race between self and other team mates
      • terrible waste of time or rather getting on our nerves in retrospect
  • Saturday early night "f*ck that networking code" let's play with an Arduino for the first time instead
  • Sunday early morning quick code commenting and refactoring
  • ~12am feature freeze, finally starting to merge with HUGE difficulties
  • no asset (no audio, no mesh, no texture) merged until Sunday 12:30am
    • sh*tting their pants team mates
  • 1:25pm Sunday bringing it all back ready for judges with a roughly smoothed out processed



How I felt during the weekend with in red the stress and in blue the excitement.

Key points by hour :

  • 1 : first hour, joining a team
  • 3 : getting pumped up with all the potential
  • 14 : Saturday morning, starting to work with a self set deadline of 12am
  • 18 : deadline passed, no working prototype, stress rising, fun lowering
  • 25 : right before dinner, still no prototype...
  • 26 : 5min before dinner working multilayer aspect of the prototype! relaxing deeply and enjoying food with others
  • 32 : no more fun, just more and more networking with testing races from team mates
  • 33 : screw this, changing my mind by playing with an Arduino to make an IoT object to shape the environment of the demo
  • 34 : it worked! pumped up again and ready to dive back to the main code base, i.e. networking and game play
  • 35 : can't think straight, code breaking, have to go and rest
  • 39 : back to code, taking the time to briefly refactor to start clean and fresh
  • 42 : panic, the code works but the 3D and audio assets are not integrated
  • 43 : judges arriving soon BUT freaking finally the assets are in!
  • 44 : few messed up demos but overall smoothing the process
  • 45 : no more judges, just enjoying visitors getting the point
  • 47 : announcing winners... and losers
  • 48 : wow wait what, did we just (co) win in our category!
  • 49 : thinking how this could unfold after the hackathon, finally being able to chat with a bit everybody outside the team
  • 51 : total blast of a weekend.

Source data as xls and pdf.

Collection method : unreliable memory

Alternative method : Pebble Time... I honestly don't think that's more reliable but I might check via MisFit.

  • double checked, actually provide more coarse data but objective i.e. the sleeping time seems shifted by few hours. Apparently I planned to sleep earlier and arrive earlier but didn't, I went to sleep later and started later too.

Back to the Menu

Code

cf Freeze.tar for an untouched view of the code base and its assets as it was shown to the judges at 1:30pm.

  • client side (webVR)
  • server side (Node)
  • environment control
    • IoT onboard (Arduino/C)
    • client side (Node/Python)

Back to the Menu

Feedback

Sorted by estimated frequency

  • "That's it? The track is too sort!"
  • "I'm not a cube."
  • "Where is the track?"
  • "I don't see the red/green cube."

Ideas to go further

The following are mostly personal ideas. Note that prioritization must follow user Feedback.

For required time see guesstimates on Slack.

  • split testing/live servers
    • having only 1 was a massive headache during the event
  • nodemon support for the testing server
  • load the missing 3D assets
  • load the missing audio assets
    • activate them at the right moment
  • make the bobsleight lookAt() the next segmentEnd
  • make longer track (see track editor to facilitate that)
  • refactor (duh)
  • waiting line as spectators
  • circuit run as camera after/before session
  • online 2D/3D/webVR editor
    • smooth transitions between one mode and the other
  • serverless / p2p (a la webTorrent)
    • with still initial seed server
    • ideal for lower latency to scale
    • possibly webRTC
  • keyword by URL as meeting point

Back to the Menu

Review options

Those were the earliest ideas I had when I subscribed to the hackathons few months earlier.

The week before the event I made another list http://vatelier.net/Main/HackathonJanuary2016

Back to the Menu

Overall remarks and conclusions

  • bring all resources together : VRLab http://vrlab-brussels.info , vAtelier http://vatelier.net/Main/HackathonJanuary2016 , code, etc
  • lessons learned : you can't have just 1 version if you test network code else team mate will constantly fuck up your own tests!
  • first thing to do is manage that else you WILL pull out most of the hair left on your head
  • heterogeneous team
  • honest task time estimation
  • early, no earlierr (still earlier) integration tests for assets
  • helps to iterate then make sure asset producers can give their best feeling reinsured that their hard work WILL be showcased in the final demo
  • periodic synchronization of team member : e.g. during the 3hrs I did this
  • after a round up of all team members then decide what has to be done next and by whom
  • respect private time
  • but ALSO respect communication
  • it's not because one has a skill, even a rare one, even on in high demand, that it HAS to be used during the event
  • title: make a bobsleigh social experience in 48hrs
  • streamline the demo process
  • you just can't predict, the nicest things will also be unexpected e.g. personnally finally doing an Arduino based (mini) project
  • allocating time for a task done before is easy
  • allocating time for a task never done before is... impossible
  • still it has to be done in order to planify, eventually have a plan-B

Some VR Bobsleigh with your friends tomorrow?

Currently the project is being documented. Members of the team are still wonder which way to lean but hopefully you will soon be able to grab your friend, grandma or colleague by the shoulder and have fun!

Hardcore nerd with a Google Cardboard or Occulus DK2? (or even Vive, who knows! ;) You can still try to hit the link http://vrlab-brussels.info/VRHackathon/ , the server should be running. If you are synchronized with a friend it could just work ;)

Here is the process :

  1. player 1, head of the bobsleigh connects first
  2. player 1 will see on his top left a red cube indicating that he is alone
  3. player 2 connects
  4. the cubes now becomes green
  5. player 1 look at it for 5 seconds as it keeps changing color
  6. the slide starts
  7. each player has to lean with the curve synchronously to go faster
  8. after about 20sec when you see a thank you note the ride is over
  9. disconnect both players
  10. rinse, repeat!

Back to the Menu

Other reviews or coverage

To do

  1. improve Template
  2. add map data (:ola-point lat= lon= text='':)