My girlfriend Kacha and I have been dating for over four years. We have talked frequently about getting married, and Kacha had given me a few ideas about what she wanted in a proposal:
- Make it personal
- Surprise her
- Capture it for posterity
She only gave me one rule to follow:
Do not propose in public in front of many people, i.e. no stadium, Disneyland, etc. proposals.
For reasons that will become apparent later in the story, it is important to mention that I often teased Kacha that I might just propose with a pizza box if I could not think of anything better. This form of proposal actually seems to be fairly common, so no offense to others who proposed that way, but I was just joking because I knew I could think of something that Kacha would enjoy more.
Inspiration struck a few months ago when I won a Windows Mixed Reality ( read: virtual reality) headset at a hackathon:
We won the @Microsoft category at #creatingreality hackathon! Whoop! pic.twitter.com/7TnA3jZNOu
— Neil McDonnell (@nltmcd) March 16, 2018
A tweet from one of my teammates announcing our victory. That’s me fourth from the left in the picture.
While working on that hackathon project I learned the basics of how to create a VR experience using the Unity game engine, so I came up with the idea that I would surprise Kacha by creating a VR experience for her as part of my proposal.
In addition to following Kacha’s main rule of not proposing in public in front of lots of people, I thought incorporating a VR experience would be a fun idea because she would be able to replay it and enjoy it as many times as she wanted.
So over several weeks I worked in secret, mostly late at night after Kacha was asleep, teaching myself how to use Unity to create the VR experience I had in mind.
Then, on April 15, 2018, I asked Kacha if she wanted to try a new VR game I found. I told her it was kind of a low-quality indie game but that I thought she might enjoy it. After she put on the headset, I started recording video of her on my phone.
In VR, Kacha found herself in an auditorium. On the stage, an orchestra started to play one of Kacha’s favorite orchestral pieces: the first movement of Scheherazade by Rimsky-Korsakov. Actually it was just this Creative Commons video recording of the Kaohsiung American School orchestra playing because I did not feel confident animating an entire orchestra in 3D.
Every member of the audience in the auditorium was the same low-polygon old man gently swaying to the music. I had duplicated the character to save some time. 😉
About a minute into the orchestra’s playing, the music was suddenly interrupted by my voice saying “stop the music!”. A screen came down in front of the orchestra, and a video of me started to play.
In the video of me that played, I told Kacha that I knew she didn’t want me to propose in front of a lot of people, and with that the members of the audience disappeared. 💨
During the video, I told Kacha how much I love her and that I want to spend the rest of my life with her. ❤️
At the end of my video, I said “As promised in our past discussions, here’s a pizza box.” Then a pizza box appeared in front of her.
I told you the pizza box joke would be important.
My video then froze and the pizza box opened to reveal text reading “Remove VR headset now!”.
Kacha took off the headset to see me in front of her on one knee holding a ring. I asked her to marry me, and she said yes! 🎉
Afterwards, Kacha told me she loved the proposal. She said she was incredibly surprised and appreciated how much work I put into creating the VR experience for her. And she said she was happy to see the reference to our pizza box joke. 🍕
I learned a lot about Unity while working on this project, and despite a few technical challenges that I will blog about separately, working with Unity and the Windows Mixed Reality Toolkit was an enjoyable experience.