4min read

Polidea Labs #2: Two Weeks in Virtual Reality

The main goal of Polidea Labs initiative is to serve as a learning opportunity and facilitate the process of gaining new experience. In the second Polidea Labs experiment we touch upon one of the hottest tech trends out there—Virtual Reality. Experimenting with VR doesn’t really need an explanation. Let’s just come back to Manuel Clément’s talk on VR at this year’s edition of MCE or the Google I/O 2017 keynote—unsurprisingly, also connected with VR. We simply had to experience it hands-on! The following post will give you an idea of how to conduct a super simple experiment while using the most popular tools out there. Just to have some fun and get started with VR!

2 developers, 3 tools

We are both developers—this time united in VR experiment but usually working separately on Android and iOS. At the very beginning we simply had three VR devices in front of us: (DayDream, Oculus, Cardboard) and 2 weeks to go. Sky was the limit! Then, the idea emerged—we wanted to build our office in virtual reality and spend some time there.

Let’s get started…

What do you do when you want to spend 2 weeks in your virtual office? Well, you do some research first. After getting to know the subject a bit better, we have decided to use Unity—a game engine promising to be “everything you need to succeed in games and VR/AR”. It is fairly popular and as it turned out later on, simple and beginner-friendly.

Unity website offers a lot of supporting materials like video tutorials (you can find them here). After our experiments, we can definitely say that it is enough to get into virtual reality with ease and pleasure. Here our virtual journey began—as always—with some adventures along the way.

Creating our virtual office

We started with designing our virtual office. Sounds easy, right? Unfortunately, Unity has different scales for various game objects (such as plane cube or cylinder). That means scale x of a cube doesn’t equal scale x of a plane or scale of a cylinder. Our first disappointment was quickly followed by a simple solution. We created our own scale for all the types and used it to match the objects.

Since we didn’t have any designers in our team, we had to manage it all by ourselves. We used a cube for a countertop with a material imitating wooden one. Four cylinders were used as desk’s legs. After that, we were able to create a prefab out of our model. We had to use complete components from assets store to create chairs and other elements of the office equipment.

After creating a simple office imitation, we wanted to move around it so we started adding some objects. The FPS library proved to be very helpful. We just put FPS controller from imported assets to our scene and everything was done. First week was already behind us.

Let’s get real

Second week started with checking our VR devices:




Yet again, we were positively surprised by Unity. We simply needed to check VR support options and add them. Moreover, we learned that FPS Library supports almost all of the controllers so you can easily get simple solutions for free.

You can watch it here:

To sum it up, it seems that activating VR devices is limited to ticking one checkbox and choosing the device that will be in use. Awesome, right? As for mobile devices, the biggest challenge seems to be connected with drivers and controllers (for iOS they need to be MFI ones) since different controllers have various mappings of joystick axis and buttons.

What did we find out in Virtual Reality?

Our VR trip took 2 weeks and this time we learned a lot, experienced a lot and definitely had fun along the way. Nevertheless, it was more of an adventure than real developer’s job (we needed just few lines of code :)) It should be explored by designers though!

What worked best?

Unity—although we are fully aware that we didn’t dive deep into the possibilities of the tool. For us it was intuitive and simple to use. Highly recommended for beginners!

What could have been better?

Video quality in VR devices—both on mobile and in Oculus. Even though the 960x1080 per eye in Oculus seem to be sufficient, you can easily see the gaps between pixels. The same problem appears on high-density Retina displays on mobile devices.

Frame rate—which left us a bit disappointed. We did notice a lot of dropped frames, specially with fast head movements. As it turned out, dropped frames and lags are indicated as a one of the “Virtual Reality Sickness” reasons.

“Virtual Reality Sickness”—many of our test users complained about it. Due to human’s body sensors’ conflict, moving in VR world causes similar symptoms to vehicle motion sickness. This is why in production code we should probably use “teleporting” instead of “walking” technique. You can read more about it in here.

Our 2 weeks in virtual reality were definitely a great experience! We encourage you to try Unity yourself. It’s a very powerful tool and it’s free for personal use! You can also download a simplified Unity model of Polidea’s office from our GitHub repository here.

See you there!


KonradSenior Software Engineer
PawełSenior Software Engineer


Sign in and expect sharp insights, recommendations, ebooks and fascinating project stories delivered to your inbox

The controller of the personal data that you are about to provide in the above form will be Polidea sp. z o.o. with its registered office in Warsaw at ul. Przeskok 2, 00-032 Warsaw, KRS number: 0000330954, tel.: 0048 795 536 436, email: (“Polidea”). We will process your personal data based on our legitimate interest and/or your consent. Providing your personal data is not obligatory, but necessary for Polidea to respond to you in relation to your question and/or request. If you gave us consent to call you on the telephone, you may revoke the consent at any time by contacting Polidea via telephone or email. You can find detailed information about the processing of your personal data in relation to the above contact form, including your rights relating to the processing, HERE.

Data controller:

The controller of your personal data is Polidea sp. z o.o. with its registered office in Warsaw at ul. Przeskok 2, 00-032 Warsaw, KRS number: 0000330954, tel.: [0048795536436], email: [] (“Polidea”)

Purpose and legal bases for processing:


Used abbreviations:

GDPR – Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016
on the protection of natural persons with regard to the processing of personal data and on the free movement
of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)

ARES – Polish Act on Rendering Electronic Services dated 18 July 2002

TL – Polish Telecommunications Law dated 16 July 2004

1)        sending to the given email address a newsletter including information on Polidea’s new projects, products, services, organised events and/or general insights from the mobile app business world |art. 6.1 a) GDPR, art. 10.2 ARES and art. 172.1 TL (upon your consent)

Personal data:name, email address

2)       statistical, analytical and reporting purposes |art. 6. 1 f) GDPR (based on legitimate interests pursued by Polidea, consisting in analysing the way our services are used and adjusting them to our clients’ needs, as well as developing new services)

Personal data:name, email address

Withdrawal of consent:

You may withdraw your consent to process your personal data at any time.

Withdrawal of the consent is possible solely in the scope of processing performed based on the consent. Polidea is authorised to process your personal data after you withdraw your consent if it has another legal basis for the processing, for the purposes covered by that legal basis.

Categories of recipients:

Your personal data may be shared with:

1)       authorised employees and/or contractors of Polidea

2)       persons or entities providing particular services to Polidea (accounting, legal, IT, marketing and advertising services) – in the scope required for those persons or entities to provide those services to Polidea


Retention period:

1)       For the purpose of sending newsletter to the given email address – for as long as the relevant consent is not withdrawn

2)       For statistical, analytical and reporting purposes – for as long as the relevant consent is not withdrawn

Your rights:


Used abbreviation:

GDPR – Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016
on the protection of natural persons with regard to the processing of personal data and on the free movement
of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)

According to GDPR, you have the following rights relating to the processing of your personal data, exercised by contacting Polidea via [e-mail, phone].

1)       to access to your personal data (art. 15 GDPR) by requesting sharing and/or sending a copy of all your personal data processed by Polidea

2)       to request rectification of inaccurate personal data
(art. 16 GDPR) by indicating the data requiring rectification

3)       to request erasure of your persona data (art. 17 GDPR); Polidea has the rights to refuse erasing the personal data in specific circumstances provided by law

4)       to request restriction of processing of your personal data (art. 18 GDPR) by indicating the data which should be restricted

5)       to move your personal data (art. 20 GDPR) by requesting preparation and transfer by Polidea of the personal data that you provided to Polidea to you or another controller in a structured, commonly used machine-readable format

6)       to object to processing your personal data conducted based on art. 6.1 e) or f) GDPR, on grounds relating to your particular situation (art. 21 GDPR)

7)       to lodge a complaint with a supervisory authority,
in particular in the EU member state of your habitual residence, place of work or place of the alleged infringement if you consider that the processing
of personal data relating to you infringes the GDPR
(art. 77.1 GDPR)

No obligation to provide data:

Providing your personal data is not obligatory, but necessary for Polidea to provide you the newsletter service

Refusal to provide the above data will result in inability to receive the newsletter service.


In the process of providing the newsletter service, we make decisions in an automated way, including profiling, based on the data you provide.


“Profiling” means automated processing of personal data consisting of the use of your personal data to evaluate certain personal aspects relating to you, in particular to analyze or predict aspects concerning your personal preferences and interests.


The automated decisions are taken based on the analysis of clicked and viewed content. They affect the targeting of specific newsletter content to selected users registered to receive the newsletter service, based on the anticipated interests of the recipient.