Wren came to us for support on their existing 3D planner that had a number of rendering issues; We sat down with them and quickly realised the existing solution wasn't scalable to their requirements or actually solved all of the test layouts and plans they routinely used when selling their products.
We worked with them extensively in the beginning solving their primary issue of wall construction; This briefly comprised of being given a room plan as an initial subtraction of the world space and then the addition of smaller walls to define the room shape; The remaining space would then have to be converted into a 3D model with a floor, walls, ceiling, skirting and coving. Not to mention removing holes for windows and doors and generating the mesh data for the subsequent surfaces involved. We also dynamically generated window and door meshes to fill the spaces adding even more realism to the designs.
From there we implemented animations, lighting, shadows and post rendering effects and optimised the entire load pipline to reduce the loading time of the application from minutes to under a few seconds using Unity's co-routine system and clever streamlining of non related objects to avoid wait time
Finally we tackled the complex logic involved in running cornice, plinths and pelmets around, above and below kitchen units to give that finished look. This system borrowed lots of ideas used in the wall mesh generation system.
- Build a 3D visualisation tool from the ground up
- Implement a 2D Constructive Solid Geometry system to create real-time 3D meshes from 2D plans
- Introduce advanced shader and rendering effects to create life like visualisations
- Reduce overhead and increase the speed at which the visualisation loaded
- Improve input and the user-control system
The biggest challenge throughout the project was settling on a CSG system that was both complicated enough while being lenient with thresholds; Due to the use of floating point precision at various levels inside and outside the system had to make assumptions about the proximity of walls and adjoining structures to provide the intended output
In order to maintain accuracy we developed a bespoke regression system that build and rendered hundreds of designs and compared them against existing known good plans; We used this to quickly spot defects between builds and had lots of test plans that's sole purpose was to test the extremities of the CSG thesholds we'd implemented
The final result was absolutely amazing; so amazing in fact the client opted to remove the planner from public view and only allow access in their show rooms;