In my 7th semester I took part in a 3D modelling course, which included participation in project class called Interactive Visualization, a collaboration with the chair of architecture.
The goal of the modelling course was to be able to navigate and do basic things in 3DS Max, the final submission was to model an object in De-Stijl style. I decided on a modern De-Stijl lighthouse, which I then proceeded to design and model myself. You can find the final render of the result below.
The project class required us to team up with architecture students and develop a game or application focused around visualizing architecture. Our team decided that we wanted to build an augmented reality app using Unity’s AR Foundation, making it run on iOS and Android. The architecture student in our team brought up the idea of building an app around IFC (Industry Foundation Classes) files, which is a BIM (Building Information Modeling) data format used by many popular architecture softwares. We wanted to make this information (e.g. materials, sizes, heat capacity, …) available to customers without the need of expensive hardware or software, simply using a modern smartphone with AR capabilities.
The application, creatively named ARchitecture, was created over the span of several months by our team, consisting of two programmers and one architect:
|Dominik Spörle||Programming, UI|
|Alexander Epple||Programming Lead, Rendering|
|Michael Wolfer||3D Art, IFC Data|
The first thing we needed was a tool for the IFC data, luckily there is an application called Tridify, that did most of the work of transforming IFC data into a usable format for us. Although the tool is not perfect, it does make the IFC data available in Unity as components on the respective game objects, which we utilized to query specific information that we wanted to display. While not all data that is available is displayed in the application’s UI, most interesting information for customers is just a tap away.
We also used the material replacement tool combined with custom materials to improve the look of our model, a school consisting of several thousand game objects and hunderds of thousands of polygons. There is also an explosion mode, which dynamically splits walls into its components. This is supposed to allow the customer to easily see what materials are used in their buildings and get a better idea how they are structured.
BIM data is also used to split the buildings into storeys, allowing the customer to view only a few or one single level. This is an especially useful feature, since it makes it possible to look at the room layouts and for example explore ideas how to furnish the actual building.
Overall ARchitecture allows for much better ways of interaction than traditional approaches, such as making models out of cardboard or wood.
AR Foundation & AR Features
In order to make the app available on both iOS and Android devices, while also keeping feature parity, we used Unity’s AR Foundation, which combines ARKit and ARCore in one framework.
The app includes many AR capabilities, such as using the real-life lighting conditions for rendering, movement based on the internal sensors, anchor-based object placement and QR-code detection. The QR-code detection is used to enable accurate placement of the 3D building in a miniature area model made from wood and cardboard. This feature is especially interesting, since we include the area model in rendering for object occlusion and shadow casting, which makes the digital model look & feel quite realistic.
It is also possible to place the building manually on any horizontal surface, which can be detected by AR Foundation and is then visualized using a shader. We also allow the building to be scaled to room size, which enables the user to get up close to the building and somewhat walk around in it. Although it is not currently scaled to real-life size, this would technically be possible as well.
To make the rendering look realistic, while also running at an acceptable framerate on most high-end mobile devices, we used Unity’s Universal Render Pipeline. Our building model uses the full PBR workflow and the application runs rather smooth on most modern smartphones as well as tablets, even though we hardly optimized it.
To allow for realistic rendering, we use several shaders and rendering steps to ensure the building is occluded correctly and casts a shadow on the real-life surfaces. This is done using carefully designed blending and masking steps before and after rendering the actual building. The rendering pipeline is heavily customized and could be optimized further, to enable the application to run smoothly on even more devices.
We also included a subtile outline effect for selected objects, which adds a blue glow surrounding the current selection. Additionally, we allow the user to switch to ghost mode, which is a shading model that most architecture softwares include as well. In ghost mode, the building is rendered in a dark, semi-transparent color while fully disabling shadows and other lighting.
Lastly, we also position the main light according to the location and angle of the sun in the real world, which adds additional realism to the rendered building. The time of day can also be adjusted by the user, allowing to view the model in different lighting conditions and even how it would look at night, where additional lights can are switched on inside of the building.
After completing the project, we created an application trailer which shows most of the implemented features and gives a better idea of how the app works and looks. The video material was recorded on an iPad Pro 3, which has enough power to properly render the model in high fidelity and at a smooth framerate. Since there was not a lot of time to optimize and I personally don’t own an Android device, the experience might be worse on Android smartphones and tablets.
If you have an Android device and want to try out the app yourself, there are two builds available for download below, you can also find the whole application on GitHub. The iOS version is not available for download and you’d have to build it yourself anyway, because Apple.