Virtual reality is an artificial environment that is created with software
and presented to the user in such a way that the user suspends belief and
accepts it as a real environment. On a computer, virtual reality is primarily
experienced through two of the five senses: sight and sound.
WHAT IS VIRTUAL REALITY ?
DAVID EM became the first artist to produce navigable
virtual worlds at NASA's Jet Propulsion Laboratory (JPL)
from 1977 to 1984. In 1979, Eric Howlett developed the
Large Expanse, Extra Perspective (LEEP) optical system.
The original LEEP system was redesigned for NASA's
Ames Research Center in 1985 for their first virtual
reality installation, the VIEW (Virtual Interactive
Environment Workstation) by Scott Fisher . The LEEP
system provides the basis for most of the modern virtual
reality headsets . In 1988, the Cyberspace Project at
Autodesk was the first to implement VR on a low-cost
personal computer .
Eric Gullichsen in 1990 found Sense8 Corporation and developed the WorldToolKit
virtual reality SDK (Software Development Kit)
In 1991, Sega announced the Sega VR headset for the Mega Drive home console.
In 1991 Antonio Medina, a MIT graduate and NASA scientist, designed a virtual reality
system to "drive" Mars rovers from Earth in apparent real time despite the substantial
delay of Mars-Earth-Mars signals.
In 1992, Nicole Stenger created Angels, the first real-time interactive immersive movie
where the interaction was facilitated with a dataglove and high-resolution goggles.
That same year, Louis Rosenberg created the virtual fixtures system at the U.S. Air
Force's Armstrong Labs
Simulation-based virtual reality
Avatar image-based virtual reality
Projector-based virtual reality
Image-based virtual reality
Desktop-based virtual reality
A head-mounted display (HMD) more fully immerses the user in
a virtual world.
CONCERNS AND CHALLENGES
As useful as VR can be for humanity, there are a considerable number of ethical challenges
faced by developers, researchers, and marketers in terms of creating, deploying and using
Facial Recognition and Anonymity
Mental and Social Side Effects
Manipulation and Crime
CODING AND METHOD
UNITY is one of the most renowned apps in this field for creating a virtual reality
application. For creating a virtual reality game with a ball moving :
Download the UNITY app and follow the steps :
In the Project view, in the Assets folder, create a new folder to hold materials for
different game objects of the app, rename it to Materials, and double-click to
open the folder.
In the menu, go to Assets > Create > Material and rename the material to floor-
In the Inspector view, under Main Maps, click the Albedo color field to open a
color picker and change the color of your choice.
Repeat steps for creating different objects
The game objects of this app are floor, ball, and four walls and we’ll
use stock Unity plane, sphere, and cubes to build them.
In the menu, go to GameObject > 3D Object > Plane.
In the Hierarchy view, rename it to floor.
In the Inspector view, under Transform, verify the position is set to
origin, i.e., (0,0,0). If not, reset it to (0,0,0).
Under Transform, set the scale to (2,1,2) to enlarge the floor. The plane
object is flat and does not have any volume. Therefore, by default, the Y
value is set to one.
In the menu, go to GameObject > 3D Object > Sphere.
In the Hierarchy view, rename it to player-ball.
From the Materials folder, drag and drop ball-color on the sphere.
In the Inspector view, under Transform, ensure the position is set to
(0,0,0), and set the Y value to 0.5 to let the ball rest on the floor, i.e.,
In the Inspector view, under Transform, reset the position to
(0,0,0), and set the scale to (0.5,2,20.5) to stretch the wall so
that it fits the floor edges neatly.
In the Hierarchy view, right-click the cube, and do the
In the Hierarchy view, select third-wall, and in the Inspector
view, under Transform, set the rotation to (0,90,0). Repeat the
step for fourth-wall.
In the Hierarchy view, select first-wall, and in the Inspector
view, under Transform, enter the following values to
reposition the wall to surround the floor from all directions.
Repeat this step for the rest of the walls.
first-wall to (-10,0,0)
second-wall to (10,0,0)
third-wall to (0,0,10)
fourth-wall to (0,0,-10)
Add movement to the player ball.
In the Hierarchy view, select player-ball.
In the Inspector view, do the following:
a. Click Add Component > Physics > Rigidbody.
b. Click Add Component > New Script, set the name to
PlayerController, and click Create and Add.
c. Click the gear icon next to the PlayerController script and
click Edit Script to open it in the code editor.
Enter the code as script to give the ball movement
public class PlayerController : MonoBehaviour
// Appears in the Inspector view from where you can set the speed
public float speed;
// Rigidbody variable to hold the player ball's rigidbody instance
private Rigidbody rb;
// Called before the first frame update
// Assigns the player ball's rigidbody instance to the variable
rb = GetComponent<Rigidbody>();
// Called once per frame
private void Update()
// The float variables, moveHorizontal and moveVertical,
holds the value of the virtual axes, X and Z.
// It records input from the keyboard.
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
// Vector3 variable, movement, holds 3D positions of the
player ball in form of X, Y, and Z axes in the space.
Vector3 movement = new Vector3(moveHorizontal, 0.0f,
// Adds force to the player ball to move around.
rb.AddForce(movement * speed * Time.deltaTime);
A. Expand Wall Material, in Size, enter 2, and in Element 0 and Element 1,
drag and drop after-collision and wall-color, respectively.
B. Click the gear icon next to Display Text and select message. Display Text
is the same field that we have declared in the ColorController.cs script I
C. In the Hierarchy view, select second-wall.
In Inspector view, click Add Components > Scripts, select ColorController
from the list, and repeat step 6.
Repeat step 7 and step 8 for the remaining walls.
Click the Play button from the top to preview your app. Press the arrow keys
on your keyboard to roll the ball around.
Step 7. Build and run your app.
Depending on the target platform you’ve selected in build settings, Unity builds either .apk file for
Android or .exe file for Windows. Since we have not used the Oculus Integration package, the app
may not run with Oculus Touch controllers.
Save your scene.
Go to File > Build and Run.
Double-click the file to run the app on your computer. Use your keyboard or Unity-compatible
joysticks for input.
IN SUCH A WAY A SIMPLE VIRTUAL REALITY CONCEPT CAN BE CREATED.
WHAT IS AUGMENTED REALITY ?
Augmented reality (AR) is an experience where designers enhance parts of users’ physical world with
(AR) is one of the biggest technology trends right now, and it’s only going to get bigger as AR ready smartphones
and other devices become more accessible around the world.
AR let us see the real-life environment right in front of us—trees swaying in the park, dogs chasing balls, kids
playing soccer—with a digital augmentation overlaid on it.
the most famous example of AR technology is the mobile app Pokemon Go, which was released in 2016 and
quickly became an inescapable sensation.
Augmented reality was first achieved, to some extent, by a cinematographer called
Morton Heilig in 1957. He invented the Sensorama which delivered visuals, sounds,
vibration and smell to the viewer.
Then in 1968, Ivan Sutherland the American computer scientist and early Internet
influence, invented the head-mounted display as a kind of window into a virtual
In 1975, Myron Krueger, an American computer artist developed the first “virtual
reality” interface in the form of “Videoplace”
Steve Mann, a computational photography researcher, gave the world wearable
computing in 1980.
Thomas P Caudell of Boeing coined the phrase “augmented reality” in 1990.
The first properly functioning AR system was probably the one developed at USAF
Armstrong’s Research Lab by Louis Rosenberg in 1992.
Intelligent display technology: With the development of intelligent display technology, augmented reality
becomes a possibility, which is pushed to a new height by the various kinds of display devices generated based
on intelligent display technology.
3D registration technology : As one of the most critical technologies in the augmented reality system, 3d
registration technology enables virtual images to be superimposed accurately in the real environment.
Intelligent interaction technology : Intelligent interactive technology is closely related to intelligent display
technology, 3d registration technology, ergonomics, cognitive psychology and other disciplines.
CONCERNS AND CHALLENGES
As useful as AR can be for humanity, there are a considerable number of ethical challenges faced by developers,
researchers, and marketers in terms of creating, deploying and using AR technology.
Facial Recognition and Anonymity
Mental and Social Side Effects
Manipulation and Crime
CODE AND METHOD
In Augmented reality , UNITY can be used to create an
augmented reality application . We can follow the
given steps to create an application (in your android
device as well) :
We now need to install the packages required to allow for
AR foundation in our scene.
So to do that you will see at the top of the screen you can
click on window -> package manager like this.
You should now get a screen where you can install packages
something like this.
Give it a chance to load all the packages, because they won’t
show initially when you open this window.
Once loaded you should have something that looks like this.
Setting up plane detection
One of the most basic and amazing features of unity ar
foundation is to use plane detection and object placement.
With this principle alone you could create so many
augmented reality projects. To setup plane detection we
need to add a plane manager.
Click on ar session origin.
Then go ahead and add a component called ar plane
We now need to go and add a plane prefab. You can easily
do this by going over to your hierarchy. Then right click and
go down to XR -> AR Default Plane . Drag that AR Default
Plane from your scene to your assets folder.
Placing an object in augmented reality
Now let us look at how we can place a basic cube object in our
augmented reality scene.
To start off we need to create a script called PlaceObject. So right
click in your assets folder and create a c# script and name it
public class PlaceObject : MonoBehaviour
// Start is called before the first frame update
public GameObject objectToPlace;
private ARRaycastManager _arRaycast;
private Vector2 touchPosition;
static List<ARRaycastHit> hits = new List<ARRaycastHit>();
_arRaycast = GetComponent<ARRaycastManager>();
bool detectTouch(out Vector2 touchPosition)
if (Input.touchCount > 0)
touchPosition = Input.GetTouch(0).position;
touchPosition = new Vector2(0,0);
// Update is called once per frame
if (!detectTouch(out Vector2 touchPosition)) return;
var hitPose = hits.pose;
To explain how this works. We will be taking input from our mobile
augmented reality app.
If we have more than 0 touch points we will detect a touch and get the hit
pos from the raycast we are projecting to our detected AR plain.
We then track that position and instantiate a objectToPlace in our app.
We can assign any object to our objectToPlace but let us use a basic cube.
Save your script and add it to the AR Session Origin by dragging it on the AR
Session Origin so you have this.
How to build augmented reality app
We need to change our target platform to either IOS or
android. To do this go to file -> build settings.
Choose either android or IOS, I am choosing android
because I have an android phone.Click build and run.
Make sure you phone is plugged in.
If you have done everything correctly
you should end up with something like
34. ⩥ How are AR & VR similar ?
AR uses a real-world setting while VR is completely virtual. AR users can control their presence in the real
world; VR users are controlled by the system. VR requires a headset device, but AR can be accessed with a
smartphone. AR enhances both the virtual and real world while VR only enhances a fictional reality.
⩥ Can AR & VR be used together ?
Yes! Together, augmented reality, robotics, and virtual reality can be the 'Three Amigos. ' VR and AR can offer an
immersive medium to operate robots. With the help of low-latency networks, people can utilize robots remotely
using intuitive AR and VR controls.
⩥ Requirements for learning AR & VR :
To become an AR/VR developer, you must be able to work with video game engines such as Unity or Unreal.
These are two platforms that allow you to recreate environments in 3D. Besides, AR/VR developers must be able
⩥ Software / Applications used for AR & VR :
AR – UNITY , Vuforia , ARToolkit , GoogleARCore , MAXST , AppleARKit , Wikitude.
VR -- Unity , Amazon Sumerian , Google VR for everyone , Unreal Engine 4 (UE4) , CRYENGINE , Blender , 3ds
Max , SketchUp Studio.
COMMON QUESTIONS ASKED :