Dream of Wings is my Thesis project. It is an VR bird-like flying experience controlled by body motion:
- By opening your arms, you can fly freely as if they are your own wings in an endless dream world.
- By leaning your body differently, you can easily change the direction of flight.
- Simplified aerodynamics is also applied so that you can take off, glide and fall down, ensuring a natural and believable bird-like flying experience.
Below is my thesis presentation:
A Non-VR version to show how it works:
I often dream about flying with my own body, and technology showed me the way to make it real.
- Inspired by The Treachery of Sanctuary by Chris Milk, I really like the idea of turning hands into wings with help of motion capture, and wanted push it a bit more so it feels like flying.
- Games including Flappy Bird showed me direction about how to make realistic flying. I think adding physics model especially aerodynamics would make the feeling much more fun than simply sky-walking in XYZ.
- The Beginner’s Guide is also one of my inspiration in terms of how to design dream-like and imaginative worlds.
2. Tools and platforms
I used Unity as development platform, and chose Kinect for weightless motion capture. The captured data is passed to Unity for data processing. The graphics is rendered in Unity for VR.
Kinect v2 VR Examples is used for Kinect data transmission, Nature Starter Kit 2 is used in environment building.
3. Aerodynamics and gesture design
In order to create a realistic and bird-like feeling, I decided to apply basic aerodynamics in the project. After researching online and asking experts, I successfully built a simplified aerodynamics model which considers the player as a rigid body with two wings.
A mapping function was designed to map the body movement to the angles of wings. Seeing glitches in data input, the data was smoothed between two frames.
In order to maximize the feeling of flying, aerodynamics parameters were adjusted based on data input, and body tilting gestures were added to further control the orientation.
4. Development process
Test in p5.js: use mouse to simulate wings.
Test in Unity: use mouse to simulate wings + aerodynamics.
Kinect + Unity communication test:
Float up version:
Bird fly version (final):
In the end, the project achieved most of the design goals. In ITP Spring Show 2017, most people said that they really felt like flying, and people from seniors to children could all enjoy it without much effort.
Interestingly, this man said he had dreams about flying like swimming, so he tried to fly as he swim. It actually worked for him as well:
The Treachery of Sanctuary by Chris Milk:
Kinect v2 VR Examples by RF Solutions:
Nature Starter Kit 2 by Shapes:
Birdly by Somniacs