RevSim (Revolution Simulator) is a real-time, pilot-in-the-loop, virtual reality simulator of a Revolution kite. RevSim has been programmed in Unity in C#, compiled for Oculus headsets (Rift, ...), and is available in the Oculus Store with an Oculus key or via sideloading.
A Revolution kite basically consists of two connected triangles that are controlled via four lines by two handles. By symmetrically and/or asymmetrically rotating the handles, you can control the angles of attack and the angles of sideslip of both triangles independently. As a result, you can pin the kite at every position and attitude in the sky.
Table of Contents
1 Manual
1.1 Introduction
1.1.1 25 years later
1.2 Installation
1.3 Operation
2 Objects
2.1 Coordinate system
2.2 Kite
2.2.1 Right sail
2.3 Player
2.3.1 Camera
2.3.2 Handles
2.3.2.1 End caps and help plates
2.4 Ground
2.4.1 Wind Zone
2.5 Sea
2.5.1 Sea bottom
2.6 Display
2.6.1 Help
2.7 Start square
2.8 Palm trees
2.9 Rocks
2.10 Lines
2.11 Sounds
2.11.1 Music
2.11.2 Ocean waves
2.11.3 Ground collision
2.12 Target kite
2.12.1 Target kite right sail
2.13 Target handles
2.13.1 Right target handle
2.13.2 Target handle traverse
2.14 Entitlement and Focus Check
3 Functions
3.1 Aerodynamics
3.2 Data display
3.3 Controller input
3.3.1 Reset
3.3.2 Right controller vibrate
3.4 Entitlement check
3.5 Focus Check
3.5.1 Game pause
3.5.2 Game resume
3.5.3 VRFocusLost
3.5.4 VRFocusFound
3.6 Ground collision
3.6.1 Both controllers vibrate
3.7 Left handle
3.8 Right handle
3.9 Setpoint generator
3.10 Controller
3.11 Lines
3.12 Water drag
3.13 Wind velocity
Objectives and Topics
This work documents the development of "RevSim", a real-time, virtual reality simulation of a four-line Revolution kite. The primary goal is to provide a comprehensive technical manual and functional breakdown of the simulation, detailing how Unity's physics engine and object hierarchy are leveraged to replicate realistic kite flying physics, user input, and environmental interactions within a VR space.
- Technical implementation of aerodynamic forces in Unity.
- Integration of VR controllers for flight handling.
- Simulation of complex line physics using joint components and Bezier curves.
- Development of educational tutorial features and flight guidance systems.
Excerpt from the Book
3.1 Aerodynamics
In the Aerodynamik class we compute the aerodynamic forces generated by the relative velocity of the kite with respect to the air. We add the script to both sails of the kite allowing each sail to independently compute its own forces.
The air speed V_A is responsible for the aerodynamic force on the sail. We assume the aerodynamic force vector RA to act perpendicular to the sail which is not exactly true but produces quite realistic results. The forward property of a three-dimensional vector is Unity’s shorthand notation for writing Vector3(0, 0, 1), which returns a unit vector pointing into the Z-direction of the local sail coordinate system.
The dot product s of the negative air speed vector -V_A and the unit normal vector n becomes proportional to the magnitude (norm) V_A of the airspeed vector and to the sine of the angle of attack α. Physics tells us that the dynamic pressure is not linearly dependent on the airspeed but is proportional to the square of the airspeed (and the air density). While the aerodynamic force RA depends on the surface area S, the dynamic pressure, and the drag (or lift, respectively) coefficient C, we model this interaction by calculating a force magnitude R based on the airspeed and the dot product s. Please note that we model the aerodynamics in a very rudimentary way; nevertheless, the kite behaves quite realistically: The lift force L compensating the weight of the kite is the vertical component of the aerodynamic force vector RA.
Summary of Chapters
1 Manual: Provides an introduction to the RevSim project, its historical context, and basic installation and operating instructions for the VR simulator.
2 Objects: Details the modeling, hierarchical structure, and configuration of all virtual objects, including the kite, player, ground, environment, and user interface components.
3 Functions: Discusses the programming logic implemented in Unity, covering aerodynamics, controller inputs, setpoint generation, and specific behavioral scripts like line rendering and collision physics.
Keywords
Virtual Reality, RevSim, Unity, Flight Simulation, Revolution Kite, Aerodynamics, Physics Engine, C#, VR Controllers, Hinge Joints, Bezier Curves, User Interaction, Simulation Modeling, Software Development, Flight Director
Frequently Asked Questions
What is the primary purpose of this document?
This document serves as a technical manual and development log for RevSim, a VR flight simulator, explaining the underlying code and physics implementation.
What are the core technical themes covered?
The work focuses on Unity-based object modeling, aerodynamic force simulation, VR controller input handling, and the math behind line physics in a virtual environment.
What is the central research or development goal?
The goal is to realistically simulate the flight characteristics of a four-line Revolution kite within an immersive VR setting, including wind effects and user-defined handling.
Which scientific or programming methods are employed?
The author uses Unity's MonoBehaviour scripting, rigid body physics, joint constraints, Bezier curve algorithms for line representation, and trigonometric calculations for flight control.
What topics are discussed in the main section of the book?
The main section details the hierarchy of game objects and the implementation of functional classes, specifically Aerodynamics, Controller Input, and the Setpoint Generator.
Which keywords best describe this work?
The work is characterized by terms like Virtual Reality, Unity, Aerodynamics, Physics Engine, Kite Simulation, and Software Development.
How are the "lines" of the kite simulated?
Due to the difficulty of simulating non-stretchable lines, the author uses "fake" lines created by Line Renderers, with their shape simulated via quadratic Bézier curves.
How is the "water drag" implemented for the kite?
The simulation places child game objects at the kite's vertices; when these vertices submerge below the sea level, an additional force vector is applied to simulate the increased drag of water compared to air.
- Citar trabajo
- Prof. Dr.-Ing. Jörg Buchholz (Autor), 2019, RevSim. A virtual reality simulator of a revolution kite for Oculus headsets, Múnich, GRIN Verlag, https://www.grin.com/document/512684