Alexandre LHUILLIER - Software projects, stories & opinions
Home Blog Projects Miscellaneous About

Version Française

Home Design 3D


Trivia: a few days after this video has been shot, the whole UI for the 3D printing part of the app had been redone.


Home Design 3D is one of the most lucrative applications for Koalabs and Anuman Interactive, available for both mobile and desktop platforms.

Home Design 3D is a widely available software that allows you to design your own house or appartment, with very few limitations: you can design walls in any direction you desire, place furniture wherever you like, and you are then able to visit the place you designed in a 3D view, and simulate a day-night cycle or a seasons cycle if you wish.
It was programmed using C++ and Qt with OpenGL as the rendering backend.

At some point in 2014 / 2015, a partnership was made with Fabzat, a company based near Bordeaux that provides a service for being able to order a 3D-printed model from inside an application, and have it delivered to the user’s home.
This is when I joined the project.

Home Design 3D was the first application Fabzat would support that would allow the user to be completely free in the shape they design, hence there were a lot of challenges to support this feature.

Adding 3D printing capabilities

Already available for several years when I joined the project, Home Design 3D was not at all thought with 3D printing in mind: the ground is a simple plane with no thickness at all, a lot of triangles in the walls and the furniture were absent to optimize memory storage and rendering, especially on the first devices the application was available on, and the design of the furniture contained a lot of thin parts, that looked realistic but could easily break when printed in a small scale in 3D.
All of this is both incompatible with the software of 3D printers, which are very strict on the shapes behind closed, and the reality of having a 3D-printed model home-delivered, where even with a good quality packaging, you may end up receiving broken parts.

Step 1: Adapting house architecture

There were some tasks to do before being able to assemble a printable house, even if it was only with floor and walls:

Step 2: Adapting the furniture

For each piece of furniture, Fabzat helped create a "printable" version of it, which looked chubbier when previewing the model inside the application but looked surprisingly good when printed.

To avoid hitting the 100MB limit on iOS (when hit, by default, the App Store requires you to download it through Wifi rather than mobile data), since there were around 1200 objects at the time (~30MB once processed), with the help of other members of the Home Design team, we made the app download the printable-versions of the furniture on the fly, only when needed.

Step 3: Putting it all together

Then my job was to create a big algorithm than would:

Step 4: Making it pretty

To make the feature usable for the user, I had to make a UI that: