AR Furniture
Published: 2020-05-24 12:34:17

An application that superimposes 3-D objects in the real world. Mainly furniture items like a table, chair, couch, etc along with their description, allowing the user to select the right piece of furniture for their home.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/g4w1vrihico3g1y6huco.jpeg)

#Methodology

##AR Core

ARCore is Google’s platform for building augmented reality experiences. Using different APIs, ARCore enables your phone to sense its environment, understand the world, and interact with information. Some of the APIs are available across Android and iOS to enable shared AR experiences.

**ARCore uses five key capabilities to integrate virtual content with the real world as seen through your phone's camera:**

**1.** **Motion tracking** allows the phone to understand and track its position relative to the world.
**2.** **Environmental understanding** allows the phone to detect the size and location of all types of surfaces: horizontal, vertical, and angled surfaces like the ground, a coffee table, or walls.
**3.** **Light estimation** allows the phone to estimate the environment's current lighting conditions.



![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/cswzw8bs073sqj01atn9.jpeg)


**4.** **User interaction** ARCore uses hit testing to take an (x,y) coordinates corresponding to the phone's screen (provided by a tap or whatever other interaction you want your app to support) and projects a ray into the camera's view of the world, returning any planes or feature points that the ray intersects, along with the pose of that intersection in world space. This allows users to select or otherwise interact with objects in the environment.
**5.** **Sharing** ARCore Cloud Anchor API lets you create collaborative or multiplayer apps for Android and iOS devices

##SketchUp

It is an intuitive 3D modeling application that lets you create and edit 2D and 3D models with a patented “Push and Pull” method. The Push and Pull tool allows designers to extrude any flat surface into 3D shapes. All you have to do is click an object and then start pulling it until you like what you see.
It is used for a wide range of 3D modeling projects like architectural, interior design, landscape architecture, and video game design, to name a few of its uses.

##Sceneform

Sceneform makes it straightforward to render realistic 3D scenes in AR and non-AR apps. ARCore in itself isn’t an SDK, rather it is an engine that helps SDKs to render the objects. “Hence, in order to make use of this functionality, Google released Sceneform SDK to enable developers to build Android AR apps without having to learn OpenGL”. Sceneform comes with many nifty features such as:

**1.** An automatic compatibility check for ARCore enabled phones.
**2.** Checking for camera permissions.
**3.** A scene graph API to abstract all the complexities.
**4.** A plugin for manipulating 3D assets.


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/uzikbjlz6sdtb05c1x0x.jpeg)


#Working

A Use Case Diagram of our Application

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ja6kxwgdpp7auw9ne5gq.png)

#Conclusion

We have observed that there are various applications present in the market which allows user to buy furniture online. Some people could not rely on it as the image did not give them the idea of how the furniture will fit in their home or will the color combination go good with the current room setting.  
Our app will solve these problems up to an extent and help users make better choices while shopping for furniture online


P.S. [I] (https://github.com/sameermalik20aug) built this application with the help of my friend [veerain] (https://github.com/vgveerain)