Tuesday, November 6, 2012

Stanford AVP-STVP visit day 1

I'm part of the Aalto Ventures Program group visiting Stanford University this week. Aalto is a partner of Stanford Technology Ventures Program, and we try to learn how they support the exceptional startup ecosystem of the Silicon Valley. The not so modest goal of AVP is to apply STVP methods to make Helsinki the entrepreneurial hub of the nordic and baltic countries - Finland alone is maybe too small.

Here's an interesting nugget of information: in 2009, venture capital (VC) backed companies produced 11% of the jobs in the U.S. and their revenue exceeds 20% of the GDP (Source: National Venture Capital Association).

Other notes from the first day of the visit:

  • STVP guiding principles (written on the walls): Every problem is an opportunity. The bigger the problem, the bigger the opportunity. Entrepreneurs do much more than imaginable with much less than seems possible.
  • People here recommend Tina Seelig's new book inGenius: A Crash Course on Creativity. Haven't read it yet. Seelig's MOOC (Massively Open Online Course) on creativity has 39k participants. Should check that one too.
  • ecorner.stanford.edu  has a lot of talks by company founders, broken down into a couple of minutes clips so that they are easier to use in teaching. "oh I want to have an example of scaling for the students, let's see". These were recommended to me, have to check out if/when I have time: Guy Kawasaki, Vinod Khosla, Jack Dorsey, Bill Gross, Carol Bartz, Marissa Mayer, Mark Pincus, Nick Earl, Erin Turner. Speakers are prepared to not only advertise their current company, but use it as a dataset using which to illustrate eternal stories. No TED talks, not too much polish. "What were you not told of beforehand?". Sometimes no slide decks, but just audience questions. Sometimes also important to protect young students from exploitation - not necessarily appopriate for a visiting speaker to invest in students.
  • Steve Blank now has an online course at Udacity: How to Build a Startup. However, as Blank himself says, the online version lacks the feedback and rigor of the real Lean Launchpad course, which why Blank has also developed the Startup Weekend Next
  • Must check ree.fi, REE stands for Roundtable in Entrepreneurship Education, and the latest REE conference was held recently in Finland. I hate that I didn't hear about it.
  • Important to instill the entrepreneurial mindset from the start, and to provide practical examples of why to learn difficult things such as math. Couldn't agree more. Couldn't make myself motivated to learn much of the linear algebra or calculus that was taught during the first two years. I had no idea of where to apply it, although I've found every bit of what I managed to learn useful in my later computer vision and audio signal processing work.
  • It might help Stanford students into the entrepreneurial mindset that on there's e.g., Google's first server and a replica of Hewlett's and Packard's garage on display. I don't know what would be the equivalent at Aalto. I just remember that there were old Nokia phones on display when I started my electrical engineering studies in the 90's. Should we put even more emphasis, e.g., in the game projects to produce high quality making-of materials so that we can accumulate and display the lessons learned for future students?
  • Interesting: E&I Living Learning program equips dorms with maker spaces. Would definitely be useful at Otaniemi too.
  • meetup.com is heavily used in Stanford and the Valley to organize groups to develop one's ideas and networks.
  • Interesting form of conference: people pitch what they want to discuss (share, learn...), after which the space is divided into sections with topics. One may leave/move anytime to promote cross-pollination of ideas.
  • Recruitment/interviewing in the Valley: Tell me about your top three blunders and what you learned from making the mistakes?

Saturday, September 29, 2012

The joy of learning

Note to self: Watching my 11 months old daughter bubbling over with (drunk from the) joy of learning to stand without support ensures me that I'm on the right path when researching sports education technology and exergames. These are the experiences that I want to create and share. One might wonder if it's possible to experience something so strongly at an older age, but I must say that learning to backflip on a trampoline was pretty exhilarating a couple of weeks ago. 

Friday, September 28, 2012

About them piggies

Just tested Bad Piggies with my family. I have to say it's pretty good. 

Bad Piggies seems to be based on Amazing Alex, but adding two crucial elements: 1) a character to sympathesize with (the vocal reactions to the environment are priceless, similar to Porrasturvat / Stair Dismount) and 2) some realtime gameplay in "play mode". It's amazing how much the characters make me care compared to purely mechanical building games like Amazing Alex. Maybe it's just the mere exposure effect. Much like every parent of a three-year-old in Finland, I practically live in the Angry Birds transmedia world with the plush toys and playgrounds.

The bottom line is that getting three stars was never this satisfying in the birds empire - there's now clearly defined goals and the feedback has been amped up as well with manic partying to polka music. Having clear goals and feedback are preconditions of flow, and in hindsight it's easy to say that this is how it should've been from the start. In practice it's of course not easy to pull off. It's interesting to observe the progression from the first Angry Birds (just 1-3 stars, how to get all three left as guesswork), to Angry Birds Space (1-3 stars with a three-chord harmonic cadence so that having just two stars leaves you waiting for the resolution) and finally to Bad Piggies (a goal for each star, and the number of stars emphasized by both music and the facial expressions and body language of the piggy, ranging from "meh" to carnevalistic).

Just writing these thoughts down as a reminder of the smallest details making a huge difference.

Thursday, September 20, 2012

Pitching and presenting games

Today we have the game project course kickoff at Media lab. Here's the handouts of a talk I prepared based on my own experiences, Samuli Syvähuoko's Game Developer Magazine article and Daniel Kahneman's book Thinking Fast and Slow. 

Here's also the links from the slides for your convenience:

TED talks about cognitive biases and manipulation, by excellent speakers

Lessig’s style of presenting

Syvähuoko’s Game developer magazine article

Steve Jobs presentation techniques

Sell Your Ideas the Steve Jobs way:

Steve Jobs demos the Machintosh

The original pitch of the Muppet Show

Kahneman’s book

Voice123, pretty good and affordable voiceovers.

An article about one sentence summaries

Monday, September 3, 2012

Back at work

I just returned from 6 weeks of parental leave (isäkuukausi). Now working on a funding application for our trampoline training games and systems. Why? Because trampolines are cool and they practically give people superpowers, something I've tried to do earlier on screen in Kick Ass Kung-Fu and Kung-Fu Live.

Trampolines really seem to get people moving and the added jump height and reduced impact makes gymnastics training accessible to new target groups. The prices have dropped and there seems to be a trampoline in every backyard in the Finnish suburbs. Furthermore, a computer vision based trampoline system can improve safety by monitoring that there's only a single player bouncing at a time, something that indoor activity parks like Hoplop and Huimala require but don't have enough personnel to enforce. In this study, 74% of trampoline injuries were from situations where there was more than two people on the trampoline.

We aim to develop games and feedback tools to help in learning motor skills, and investigate the user experience, e.g., effect on skill acquisition and perceived competence. The importance of feedback in learning is well known, but the possibilities of novel technologies such as depth cameras (Kinect) are still relatively unexplored. So far, we have made a feasibility study, creating two simple Kinect games played on a trampoline. We have found that there's no fundamental obstacles for such systems - the safety net and elastic bed of the trampoline don't interfere too much with the tracking, the latency is not disturbing except for very low jumps (high jumping frequency), and it is possible for the user to watch a screen or screens while jumping.  Demo video:

In our research, we try to explore the following mechanisms: 
  • Increasing body awareness with audiovisual feedback. Beginners often have no clue what their body is doing when they end up in unusual positions (hand stand, flipping in the air...). Displaying video and relevant measurements on a screen, either concurrently or with appropriate delay, can help in realizing what needs to be improved. The challenge is to keep the information visualization simple and focused and to find the best ways to control the system without interfering with training, e.g., using gestures or voice commands. See my previous post for examples of feedback systems.
  • Manipulating the learning curve to help the user stay in the flow channel. For example, in gymnastics, the learning curve may actually be in the form of a staircase with high steps - you learn a skill, after which there may be little or no perceived progress until learning the next new skill, which may seem far. A good coach comes up with appropriate intermediate challenges and supporting exercises to keep the student motivated. Using a computer system, we can do the same but using quantitative measurements. For example, the first trampolining skill to learn is to jump high while staying in the middle of the trampoline. Using a Kinect, we can measure where the student lands and give a prize for executing 10 consecutive jumps that reach higher than 1 meter while staying inside a circle with radius of 50cm. As a more advanced example, after learning a single flip on a trampoline, a virtual on-screen obstacle can be added over which the student tries to do the flip higher and higher until reaching a height suitable for attempting a double flip.
  • Manipulating perceived competence through the player's on-screen representation (avatar). The importance of perceived competence in staying motivated in sports training is well established in the literature. There's some recent studies showing that augmented feedback can improve perceived competence. We hypothesize that perceived competence can be increased by finding an optimal balance of developing real and virtual skills and attributes of the player. Some form of character development/upgrading is used in many games. In a physically interactive fighting game, the player may earn both real martial arts skills and abilities (kicking technique, flexibility, strength) and virtual ones (various armors to improve resistance to damage, improved jump height or kick strength to leap over or destroy obstacles, flaming hands that cause more damage, the ability to fly, posing to trigger spells...). Because the player identifies with the avatar, perceived competence is probably affected by the avatar's abilities. There's some anecdotal evidence to support the hypothesis, but we need to run comparative studies using different game versions and a standardized perceived competence questionnaire.
  • Improving training safety by gamifying low risk exercises - in case of trampolining this would mean avoiding somersaults and flips to prevent neck injuries, and instead focus on basic jumping, landings (seat, front, back) and twisting around the vertical axis. The basic jumping games in the video above seem to motivate jumping by giving concrete goals and feedback, but we still need to come up with more examples and confirm the effects using suitable metrics, such as the Game Engagement Questionnaire.
Edit 4.9.: formatting, added the bullet about training safety 

Friday, May 25, 2012

Kinect Cartwheel Training

Finally, something concrete to be released. I've created my own Kinect Unity plugin and some utilities, and this prototype will act as a starting point for Leo Holsti, a circus artist / programmer who will join our group in June. A big thanks to Aki Martikainen for the comments on the visuals!

We will be investigating what kind of new digital sports and sports training environments we can create to make more people interested in sports and provide new kinds of challenges and fun. In addition to Kinect(s), we'll probably use floor projections, ropes, trampolines, trampoline projections, auditory feedback etc. The project continues my older work on motor skill training, visualization and computer vision. As shown in the video below, I was exploring how to make the learning cycle (perform, evaluate, improve) faster with computer generated feedback.

Lessons learned from the cartwheel training prototype:

  • Clear numerical feedback indeed seems to motivate training, but as always, gamification can lead to exploitation. The simple flatness scoring can be gamed to some extend by keeping one's feet tucked in and not straight. The straightness of feet should be included in the score, but at the moment it's difficult to implement because the OpenNI/NITE tracking breaks when both feet are off the ground. The flatness scoring works without the tracker because it's computed directly from the user pixels (fortunately, the OpenNI/NITE user blob extraction doesn't break during a cartwheel.) I hope I have time to implement my own tracker or find some other tracker with an easy to use pipeline for defining the range of tracked moves. Totally unlimited tracking/motion capture using a single depth sensor is still a difficult problem even offline, let alone in real time.
  • Floor graphics and shadows are more clear than separate windows/views and can be perceived while also watching one's movement. We are of course tuned to sense our surroundings based on shadow and lighting. Projecting graphics on the floor in the real world would probably be even better than the virtual floor graphics, but they would make downloading and trying out the software much more tedious. I tried having a bird's eye camera as a separate window, but it felt confusing, especially since the user mesh is actually just a thin layer lacking the back of the body.
  • I also tried making the experience more gamelike by having walls between which you must roll with the cartwheel, however the lack of tactile feedback and stereo vision made it almost impossible to estimate one's precise position in relation to the walls.
One thing I'm not sure about yet is whether the user should explicitly start recording/analysis with a gesture or if the system should automatically recognize the start of the movement, or if there even should be separate recording and visualization modes. Depends on the case. Automatic recognition and mode change is handy but only if it is really robust. It also limiting to have separate modes for each move. For freeform training of gymnastics and tricking, the system should perhaps constantly capture all sorts of metrics, recognize the moves and what metrics are relevant to each move, and display the info for the latest chain of moves when the user stops to look at the screen(s). When the user is moving, most of the screen should probably be dedicated to the live camera view, although it seems that one can simultaneously move and look at the screen only in some movements. However, auditory feedback is probably an entirely different story.

You can download the PC prototype (CartwheelTrainer.zip) from my Google Drive. If you don't have Kinect stuff installed, also run the OpenNI, NITE, sensor and SensorKinect installers (.msi) from the same folder. I admit it's quite a hassle, but I don't have the time to learn to make a proper installer right now.

Edit 5th June 2012: embedded the video mirrors video as well.

Thursday, May 24, 2012

Preparing to launch

Testing... The past weeks have been really busy. I've recruited three persons, screened the Game Design M.A. student applicants, given talks and interviews, and been to different seminars and workshops. I've also rebuilt some of my software tools from scratch, because I can't reuse code I've written at Virtual Air Guitar Company, at least if I want to have the option to distribute the sources too. Tomorrow I'll probably be able to show something - I already missed the first month of my "release at least one game/prototype/piece of code every month" plan.