<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mike Borodin</title>
    <description>The latest articles on DEV Community by Mike Borodin (@mikeborodin).</description>
    <link>https://dev.to/mikeborodin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F87761%2F5cb0ea06-3cc1-49cc-960e-96066307b571.jpg</url>
      <title>DEV Community: Mike Borodin</title>
      <link>https://dev.to/mikeborodin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mikeborodin"/>
    <language>en</language>
    <item>
      <title>Take AR Cloud to the Next Level</title>
      <dc:creator>Mike Borodin</dc:creator>
      <pubDate>Wed, 24 Jul 2019 14:55:49 +0000</pubDate>
      <link>https://dev.to/mikeborodin/take-ar-cloud-to-the-next-level-915</link>
      <guid>https://dev.to/mikeborodin/take-ar-cloud-to-the-next-level-915</guid>
      <description>&lt;p&gt;There’s a lot of resources on the web speculating about many technologies and AR should  not be an exception. This article is mostly about the potential  of Augmented Reality and particulary AR Cloud rather than it’s use cases. I will briefly touch the current state of AR as of y July 2019 and then move to AR Cloud principles followed by some key points that could take us to the next level of spatial computing. It’s intended for beginners, enthusiasts and really everyone interested in AR.&lt;/p&gt;

&lt;h1&gt;
  
  
  How do we use AR currently?
&lt;/h1&gt;

&lt;p&gt;Current Augmented reality implementations on mobile is represented mainly  by ARKit (latest version 3) and  ARCore (latest version 1.10) along with many other &lt;a href="https://thinkmobiles.com/blog/best-ar-sdk-review/" rel="noopener noreferrer"&gt;frameworks&lt;/a&gt;. These bring AR to millions of existing users and it’s a big advantage. &lt;br&gt;
On the other hand, headsets have their own operating systems designed specially for new AR use cases (Hololens 2, Magic Leap, NReal and others). &lt;br&gt;
Most of these tools have common concept of the Anchor. AR content is placed relatively to these  anchors. &lt;br&gt;
Although it’s not well-known there’s Augmented Reality Markup Language (ARML), created in 2012 ( basically by Wikitude ) as a standart for all “AR Browsers”. Here’s how it defined an Anchor:&lt;/p&gt;

&lt;p&gt;⚓ = location of the physical object in the real world. &lt;/p&gt;

&lt;p&gt;ARCore 1.2 had introduced a feature called Cloud Anchors on May 8, 2018.&lt;br&gt;
It enables developers to build shared AR experiences across iOS and Android, by allowing anchors created on one device to be transformed into cloud anchors and shared with users on other devices. But we’re not close to real AR Cloud yet.&lt;/p&gt;

&lt;h1&gt;
  
  
  AR Cloud
&lt;/h1&gt;

&lt;p&gt;Many people define AR Cloud as a “world’s soft copy”, “planet-scale 3D model” or “single biggest most important infrastructure”. If I were to choose top 3 requirements of AR Cloud I’d say:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Users can access &lt;em&gt;global Point Cloud&lt;/em&gt; (Anchors) / Content Cloud (our virtual information, e.g. 3d models)  at any location on the planet. It’s persistent and shared (at least Point Cloud part)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users use on-device algorithm to solve virtual camera in real-time with given camera stream, device’s sensors  and a fragment of Point Cloud&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users continuously update and improve Point Cloud to keep it relevant&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third party developers could build their own apps on top of the existing AR Cloud ( just like we create our own web apps on top of HTTP protocol).  &lt;/p&gt;

&lt;p&gt;Of course, before we create AR Cloud there are many technical as well as logical questions: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are default devices for accessing AR Cloud?
( Glasses? )&lt;/li&gt;
&lt;li&gt;What will be the most common content format?
( “Experiences”? )&lt;/li&gt;
&lt;li&gt;Who will govern / manage it all? 
( And will anybody? )&lt;/li&gt;
&lt;li&gt;What is the general architecture of this network?
( Centralized, Decentralized, Hybrid? )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In case you are interested - there’s already a community that puts resources to tackle these problems called &lt;a href="https://openarcloud.org" rel="noopener noreferrer"&gt;https://openarcloud.org&lt;/a&gt;. Personally I found it very interesting to read.&lt;/p&gt;

&lt;h1&gt;
  
  
  Technologies that will take AR to the next level
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fs793iuceo4wffcvx1v4g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fs793iuceo4wffcvx1v4g.png" alt="5G Speed"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5G
&lt;/h3&gt;

&lt;p&gt;More likely, you’ll get 100MB per second of everyday speeds, whereas 4G currently only offers 10MB per second in everyday speeds. Simple math: having 10 times faster network  we can load 10 times more data with the same impact on UX. It’s very helpful because we’ll be using heavy objects a lot for AR (3d content). In US 5G is already particularly available and &lt;br&gt;
as LifeWire.com says “most countries will have access to 5G networks by 2020”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fukgeeu3813evporo6cml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fukgeeu3813evporo6cml.png" alt="G3 Satellites"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GPS III
&lt;/h3&gt;

&lt;p&gt;New generation of more accurate satellites.&lt;br&gt;
“The first satellite in the series was projected to launch in 2014, but significant delays pushed the launch to December 2018. The tenth and final GPS Block IIIA launch is projected in Q2 2023.” - Wikipedia&lt;br&gt;
What does it mean for end users?&lt;br&gt;&lt;br&gt;
We’ll get 1 to 3 meters precision while currently we have 3 to 10 meters under good conditions. Independently of GPS3 there’s approach called double-frequency GNSS  that allows more precision by using data from multiple sources. It’s already implemented in Xiaomi Mi 8 - Explorer Edition.&lt;br&gt;
Independently of everything above Google is building so called &lt;em&gt;VPS&lt;/em&gt; (Visual Positioning System) which is gonna be used for event better navigation by mixing GPS data with Street View. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fh0et9vrbwdou74zuknuv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fh0et9vrbwdou74zuknuv.png" alt="Mesh"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  DAPPS
&lt;/h3&gt;

&lt;p&gt;OpenArCloud.org page says: “We favor organizing it in as decentralized way as possible”. Not just because it’s a hype but because having it centralized raises many security and political questions. Currently we have Etherium as a single go-to solution when it comes to Dapps, but to the time when we have GPS3 (2023) the DAPPS surely will evolve.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;If you are interested leave a comment below or you can visit this link &lt;a href="https://www.openarcloud.org/workinggroups/overview" rel="noopener noreferrer"&gt;https://www.openarcloud.org/workinggroups/overview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclaimer: this is just my thoughts and in the rapidly changing world we live anything could happen so maybe soon we will be using AR Cloud.&lt;/p&gt;

</description>
      <category>ar</category>
      <category>cloud</category>
      <category>dapps</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Evolution of Augmented Reality as Seen by a Mobile Dev📱</title>
      <dc:creator>Mike Borodin</dc:creator>
      <pubDate>Sun, 30 Dec 2018 14:12:29 +0000</pubDate>
      <link>https://dev.to/mikeborodin/evolution-of-augmented-reality-as-seen-by-a-mobile-dev-11nf</link>
      <guid>https://dev.to/mikeborodin/evolution-of-augmented-reality-as-seen-by-a-mobile-dev-11nf</guid>
      <description>&lt;p&gt;&lt;em&gt;The amazingness of something new...&lt;br&gt;
I think everyone had this kind of feeling at some point. &lt;br&gt;
When I started to learn programming about 6 years ago I started with the front-end stuff - just plain HTML and CSS. The first thing I created was a crazy web page full of rounded images and :hover opacity effects. Today when I read it it sounds quite dumb but that time it felt really awesome. In few years, the same feeling and a combination of random decisions led me to where I’m now.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here I’m going to share a few words about the evolution of Augmented Reality as I observed it over the last years. This post is intended for beginners.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjow7j8nps68rbe85a6zu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjow7j8nps68rbe85a6zu.png"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="http://www.smartinsights.com" rel="noopener noreferrer"&gt;www.smartinsights.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Hype Cycle.&lt;/p&gt;

&lt;p&gt;The hype cycle is a graphical representation of the life cycle stages a technology goes through from conception to maturity and widespread adoption.&lt;br&gt;
Here we see that AR is currently shown at  the bottom in the Trough of Disillusionment&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Interest wanes as experiments and implementations fail to deliver. Producers of the technology shake out or fail. Investment continues only if the surviving providers improve their products to the satisfaction of early adopters.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Really, a popular app called Pokemon Go has blown up our minds on July 6, 2016 but for me, personally,  it failed in long term.&lt;br&gt;
For me it was interesting to look at how world accepts AR, because, at that moment, I have been already trying to do something in this ARea. &lt;/p&gt;

&lt;h3&gt;
  
  
  👓 OpenCV
&lt;/h3&gt;

&lt;p&gt;The first time I've seen opencv AR in action  was a simple python script that was overlaying an image on a book cover.&lt;br&gt;
After some research I decided to make the same thing  on Android, so I setup NDK and rewrote everything in C++.&lt;br&gt;
OpenCV is very powerful yet general tool, it gives you onDrawFrame() method and it's up to you to process each single frame.&lt;br&gt;
So I tried to apply different algorithms like SURF, SIFT, ORB, KAZE, AKAZE and others to help me find a match between a target image and a frame bitmap.&lt;br&gt;
And of course you have to write OpenGL code to make a single polygon show up on screen 🙃.&lt;br&gt;
For some reason the same library on Android and on PC had different performance. It was much slower on a mobile device. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdocs.opencv.org%2F3.1.0%2Fframe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdocs.opencv.org%2F3.1.0%2Fframe.png"&gt;&lt;/a&gt;&lt;br&gt;
Source: opencv.org&lt;/p&gt;

&lt;h3&gt;
  
  
  💪 The Competition of AR frameworks
&lt;/h3&gt;

&lt;p&gt;After struggling with  OpenCV for some time I discovered mobile AR SDKs such as Vuforia, ARToolkit, Wikitude, etc. &lt;br&gt;
There are many articles comparing all these SDKs, so I'm not going to go into details with it.&lt;/p&gt;

&lt;p&gt;I tried Vuforia first, it was drastically better in tracking and performance, but it also had some limitations, it didn’t work without Internet connection and didn’t allow creating &lt;em&gt;ImageTargets&lt;/em&gt; at runtime. And again, you had to render everything in pure OpenGL.&lt;br&gt;
So I looked for alternatives and tried EasyAR first and then switched to Kudan. It was much more developer friendly than Vuforia and offered a simple rendering engine that suited my needs. I considered Wikitude which has a lot of features, but it didn’t offer a good pricing plan for an independent developer at that time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvuforialibrarycontent.vuforia.com%2FImages%2Fsuccess_deploy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvuforialibrarycontent.vuforia.com%2FImages%2Fsuccess_deploy.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Source: vuforia.com&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚽ ARKit &amp;amp; ARCore:  Bigger Players
&lt;/h3&gt;

&lt;p&gt;It was iOS first, they managed to roll out ARKit, Apple’s AR platform. &lt;br&gt;
Later ARCore was introduced.&lt;br&gt;
They both offer plane detection, lighting and some 2d image tracking.&lt;br&gt;
They both have a high level content rendering frameworks, SceneKit and SceneForm.&lt;br&gt;
( And that's great cause you don't need to draw everything manually in opengl).&lt;br&gt;
Another cool feature is GLTF support.&lt;br&gt;
ArCore still falls behind ARKit in some aspects. (image tracking for example)&lt;br&gt;
ArCore still  supports not a big number of devices, while ArKit runs on pretty much every recent mobile device from Apple.&lt;/p&gt;

&lt;p&gt;What is happening to all those other companies that have their own mobile AR SDKs? I think the only way here is not to compete but to integrate.  I saw few of them (Vuforia and Wikitude) using ArKit / ArCore if it’s supported by the device and their own implementations if isn’t. This is how they can bring their features while not losing the game. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6vclc9hk0lbl1445ubwm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6vclc9hk0lbl1445ubwm.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="http://www.imore.com" rel="noopener noreferrer"&gt;www.imore.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So wrapping up,  now we as developers have the most powerful AR tools and it's  easier than ever  to get started and bring your ideas to life.&lt;/p&gt;

&lt;p&gt;Thanks for reading! 😉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2spen56k1e9qyfaw8a3j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2spen56k1e9qyfaw8a3j.png"&gt;&lt;/a&gt;&lt;br&gt;
Source: developers.google.com&lt;/p&gt;

&lt;p&gt;Feel free to share:&lt;/p&gt;

&lt;p&gt;How you come to AR development?&lt;br&gt;
What do you think of future of this technology?&lt;br&gt;
Did you like reading such kind of post?&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>ar</category>
      <category>android</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
