Microsoft Research Project Mayhem - An Overview

Back in March this year, Microsoft Research at the TechFest, demonstrated "Mayhem," an open source scripting application with a near-zero learning curve. The goal of Mayhem is to allows users to interconnect services and devices within and beyond the Windows ecosystem.With Mayhem, you can:Use your cell phone to control your PowerPoint presentation. Receive an email […]

Back in March this year, Microsoft Research at the TechFest, demonstrated "Mayhem," an open source scripting application with a near-zero learning curve. The goal of Mayhem is to allows users to interconnect services and devices within and beyond the Windows ecosystem.

With Mayhem, you can:

  • Use your cell phone to control your PowerPoint presentation.
  • Receive an email reminder to winterize your house when the temperature drops below freezing.
  • Automatically update your Facebook status to "I'm rich!" whenever Microsoft stock hits $50 a share.
  • Add an auto-save feature to a program that doesn't have it.
  • Pause a video automatically when you leave the room.

Today, company posted a couple of video introducing Mayhem -- the first video below provides an overview of Project Mayhem:

Microsoft Research Mayhem

Want to create some Mayhem? In this video, Eli walks through creating a reaction with Mayhem to alter the volume of your computer. This will hard set the volume.

In the video we built a reaction that increments the volume level on the computer. We are going to expand from there to make a reaction that enables you to set the volume level to a specified volume.

MayhemVolumeStart.zip file contains the class library project all set up with the NuGet package references and the reaction that increments the volume.

The first step we are going to take is to add the additional references we need to be configurable. The first reference is MayhemWpf from the same NuGet feed MayhemCore is from. (http://makemayhem.com/nuget). Add a reference to the following assemblies:

  • PresentationCore
  • PresentationFramework
  • System.Runtime.Serialization
  • System.Xaml
  • WindowsBase.