About

Just like IKEA AR, we want to let users design their own room. Instead of drawing the design diagram on a 2D paper, we hope that users may know the reality of what the room looks like, and how it feels to live in such environment.

Unity

Environment

The main develop tool is Unity, with some other helpful tools such as Autodesk, Meshlab. For preprocessing, ASUS ZenFone AR with its AR apps help us a lot.

Workflow

First, use ASUS ZenFone AR(RTAB-MAP) to scan the room and transform in into 3D model.
Second, use Unity to develop an interior design system which can add/edit some furnitures.
Last, output the designed room to a 360 degree picture(panorama).

Implement Details

Room Reconstruction

Reconstruct the room by ASUS ZenFone AR (RTAB-MAP), and make some pre-processing before we transform it into 3D model

Learn more

File System

A system that can browse your asset folder, add your furniture.

Learn more

Editor Panels

A panel used to edit objects in the scene, such as change the position, rotation, scale, or texture...

Learn more

Circular Panels

A panel that assists users when editing their room, such as cut, paste, save...

Learn more

Object Interaction

How the users can interact with the objects in the scene. Grab, teleport...

Learn more

Room Reconstruction

We try to use ZenFone AR equipped with deep information detection to scan the real world scene and construct it as 3D object file.
First, we make use of zenfoneAR and app RTAB-Map to scan scene, obtaining obj file.
Second, because of deficiency of deep information detection techniques, our 3D scene obj file would have some broken "hole".
To solve the problem, we repair the scene by using AutoDesk Recap to fill the hole with bilinear method

File System

The file system is the core of the whole system. The asset info will be get from the asset database. According to the file address it will show the file and its thumbnail in the current directory at the project panel. When a prefab is selected, the prefab’s info is sent to the inspector which shows and modifies the parameters of object’s transform and other information of the object. The scene manager gets the scene info from the file system to deal with scene loading issue. Also, scene saving manager is charged of scene saving issue when the save button is pressed. Since Unity doesn’t support runtime scene saving, the scene saving manager will wrap all object in the current scene hierarchy structure into a scene object. The scene object is a self-written data structure which stores the information of the object and relative relationship between objects. The whole information will be converted into binary files and will be reconstructed in editor mode by our editor script.

Editor Panel

In the editor panel, we implement an user interface that is similar to the unity editor which is easy to catch up for new users.
The editor panel include three main features.
Project Panel
Browse the asset folder of your project.
Inspector Panel
The attribute of the object(Position, rotation, scale...)
Texture Panel
Change the texture of the object.

Circular Panel

Provide some common editor features as follows Copy, Paste, Cut, Save, Restore, ScreenShot, Delete.
Users could using the tool kits by simply sliding and pressing the touch pad on the countroller.

Object Interaction

Editing by gesture
Support gesture control, user could more easily edit the 3D scene and make more precise modification by specific gesture.
Common object editing operation such as translating, rotating, scaling is provided.
Grab and Relocate
Grab any object in the scene and move to a desire place by controller.
Highlight and outline
When user point to an object, the object will be marked red to show users which object they are pointing at.
After user select an object, the object's outline will be highlighted and would not be cover by any other object in the scene to show user the location of current editing object.