Inspiration

After the nth time of changing my floor plan due to a small discrepancy between my imagination and the real furniture, I became fed up with all the potential complexities that one may run into while decorating their new house. How come two colours that are named the same look different on different brands of furniture? How should I decorate this small corner that is not rectangular in shape? Why is a carpet so expensive?

There needs to be a fast, affordable, and beautiful solution to all these problems…

------ by Lisa

What it does

Interio gives users all the normal features of a 3D Room Design app. It allows you to find inspiration by browsing furniture from pre-designed spaces, links you directly to online purchase pages for furniture you have selected, and lets you visualize your furniture in any 3D room.

We also have what our competitors don’t have:

  • Personalized rooms: one can upload a 3D scan of any room (no need to worry if it’s not rectangular!)
  • Immersive 3D Viewing Experience: you can change angles, move freely within the space that you have placed your furniture
  • Price matching: we scrape the web for you for coupon codes and sales offered to the furniture in your shopping cart

How we built it

  1. The main system and the user inference of our software are built using Unity3D, which is a cross-platform game engine.
  2. All 3D objects of available furniture can be found online. We pulled them out and converted them into a format recognized by Unity3D.
  3. With the help of Unity's build-in functions and C# coding, we successfully implemented the features of allowing a user to upload any 3D scan of their rooms, choose a pre-design plan, and pick associated furniture.
  4. We created buttons with click events that call a REST API service which scrapes the internet for coupons of the furniture brand being used in the room design. The API services were built with Docker container and Sanic framework and it was hosted by Alibaba cloud server.

Challenges we ran into

We have run into a couple of technical challenges:

  1. Implementing a feature cross-platform and cross-language The goal was to use C# coding from Unity3D to get responses from API service that was written in Python and supported by Docker container and Sanic framework. It was challenging for us to build an API service that is hosted by cloud, convert scripted data into a format that is easily transferable through the internet, and actually print the responses within Unity3D UI.
  2. Familiarizing ourselves with Unity and C# Our team didn’t have a strong background in Unity and C#, and being inexperienced in our main tech stacks caused us some extra trouble when we ran into various issues. We were confused about why the canvas of this scene was locked and incorrectly sized, why the object we just imported suddenly vanished, why the figures and text on our UI were misplaced when we opened it again, and on and on…

Accomplishments that we're proud of

  1. We are so happy about how we got familiar with Unity quickly and brought our application to the place it is now.
  2. With limited help from the web and our past course notes, we were able to strangle our way through calling the API from Unity
  3. At the stressful times where 300+ bugs were awaiting to be addressed, we are calmed by our aesthetic UI! It was carefully designed with a consistent colour theme that follows user-friendly design principles.

What we learned

In the process of turning our idea into reality, we learned that so much work is needed behind a seemingly simple feature. It was frustrating at times when we got stuck on a small problem where we could not see where it came from at all. The only things that got us through were perseverance, the continuous trials, tests, and StackOverflow posts. It is important to keep in mind that the point of coming to Hack the North is to work with a group of talented, interesting people, learn new stuff, and have fun! The result will exceed our expectations as long as we push ourselves along the way.

What's next for Interio

We have high inspirations for the future of Interio. Some extra features include:

  • Make Interio the go-to communication platform between interior designers and customers by allowing the customer to connect with an interior designer and let the designer blueprint their future homes.
  • Give our customers the option to order customized furniture directly from the manufacturers with the lowest prices optional
  • Polish up the 3D planning game scene with advanced scaling/viewing options so that anyone can design a 3D environment for any purpose using Interio

Built With

Share this project:

Updates