About 3d boolean

Good afternoon!

We have decided to create our garden house configurator. It could be very similar to “Florians Hutten”.

We started with the preparation of 3d assets.

At the very beginning, I had a question: How to properly prepare the wall assets so that doors and windows can be placed in them? How did the boolean operation work in your configurator?

Thank you!

Hello @MarisPutns.

Our Viewer is based on Babylon.js, so you can still achieve the desired functionality by leveraging the CSG (Constructive Solid Geometry) capabilities of Babylon.js. You would need our 3D viewer in combination with Custom JavaScript for this to work.

What is CSG in Babylon.js?
CSG stands for Constructive Solid Geometry, which is a technique used in 3D computer graphics to combine and subtract multiple geometric shapes to create more complex shapes. In the context of Babylon.js, CSG allows you to perform boolean operations like union, subtraction, and intersection on 3D meshes.

How to Use CSG in Babylon.js for Boolean Operations:
To implement boolean operations using Babylon.js’ CSG, you’ll need to follow these general steps:

  1. Prepare the Meshes: First, make sure you have your 3D wall and door/window assets ready as separate meshes in Babylon.js.
  2. Perform Boolean Operations: Use the imported CSG library to perform the boolean operations. For instance, if you want to create an opening for a door in a wall, you would subtract the door’s CSG representation from the wall’s CSG representation.

Here is a very very simple demo on how to use CSG in Babylon.js

A completely other (very simple) approach where you don’t have to subtract anything from the wall mesh would be:
If the positions and the number of windows and doors per wall mesh is fix, you could model a mesh for each wall of the garden house in its maximum extent. That is, where all the windows and doors are already in the right place. Then, depending on the options selected by the user in the configurator user interface, the windows and doors in the wall element can either be shown or hidden. If no window or door is shown in the respective wall element, then the a closed wall element mesh should be shown.

I hope my answer helped. If you have any more questions on how to properly prepare the wall assets or need further assistance, feel free to ask.

Best Regards,