Install your own (eco-designed) Sweet Home 3D Online server

In this post, I will explain the requirements to be able to install your own Sweet Home 3D Online server. I will also talk about performance, eco-design, white branding and commercial licensing issues.

Sweet Home 3D

Sweet Home 3D is an Open-Source plan editor for home design and floor planning. It comes with a real-time 3D viewer and allows the users to generate realistic 3D photographs (ray tracing) and virtual visit videos.

  • It has a strong community.
  • It gets more that 10.000 daily downloads.
  • It has 15 years of experience in home design, floor planning and other industries.

Sweet Home 3D Online – an efficient and eco-designed tool

Sweet Home 3D Online is the web version of the Sweet Home 3D software. Note that is is compatible with the desktop version (you can read/write files with both versions).

The SweetHome3D Online Web Interface

A free demo installation is available here: http://www.sweethome3d.com/SweetHome3DOnlineManager.jsp.

It can be embedded in web sites (including for being used on mobile devices), as long as you conform to the GPL licensing constraints. Plus, you can relatively easily install your own server to store your user’s data (home files).

Sweet Home 3D Online has been developed by Emmanuel Puybaret, Renaud Pawlak and Louis Grignon, based on a Java-to-JavaScript transiplation thanks to JSweet developed by Cincheo (Renaud Pawlak and Louis Grignon). (for technical details, see JSweet transpiles Sweet Home 3D open source project to help creating a web version).

Sweet Home 3D Online has been carefully eco-designed, to minimise resource consumption and ensure sustainability. Here are the main characteristics of Sweet Home 3D Online design:

  • Frameworkless. We use “VanillaJS” and developed a minimalistic UI toolkit that embeds only the necessary components.
  • Backward compatibility with older browsers (and older mobile devices). Note that this feature is very important when eco-designing, because one of the main factor of environmental impact is the hardware upgrading (for instance having to change your old laptop or smartphone because the software does not run on it anymore).
  • Manual dependency management make sure that indirect dependencies are well-known and as light as possible.
  • No abstraction layers nor “polyfills”: JSweet does not embed any additional runtime (see https://renato.athaydes.com/posts/comparing-jvm-alternatives-to-js.html).

As a consequence, Sweet Home 3D Online has been tested and works for almost all versions and types of browsers that support WebGL, without any additional layers or polyfills.

Server performances and requirements

Sweet Home 3D online has been available for free for more than a year now and has shown good performance.

Under Linux, with the following configuration:

  • Server 64 bit, processor 4 cores / 8 threads, Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz,  32 Go RAM, 2 disks 480Go SSD Soft Raid

The server has shown the following capabilities for an average load of 20%:

  • Simultaneous users (peak): 205
  • Transactional writes (home modification) (peak): 5 per second
  • Transactional writes (home modification) (average): 1.2 million per week

We expect the server to be able to handle 5 to 10 times more requests or users.

Installation

For building and installing, steps are to checkout the source code from the SweetHome3D code repository, build it with Ant (you need to build both the SweetHome3D and SweetHome3DJS projects), and install the generated WAR file on Tomcat.

Here are the main software requirements:

  • A linux server. It should work with Windows Servers, but it has not been really tested.
  • A Java stack for compilation and running. JDK 1.8 is the best choice.
  • A Tomcat 8.x server.
  • An Apache server with the right modules (typically for https).

White branding and commercial licensing

By default, the GPL (Open Source) license allows you to modify and redistribute the application, even for commercial use. However:

  • You cannot distribute with your own brand only and need to refer to the Sweet Home 3D brand (no white branding),
  • You need to make the source code available (downloadable) for the community (all modifications, add-ons, modules, must be redistributed with an Open Source license too).

eTeks and Cinchéo have settled a white branding offer of Sweet Home 3D Online (https://www.sweethome3d.online/), which you can purchase and allows you tune SweetHome3D for your own requirements, including for your own branding.

With the white branding licence, you will be able to get your own Sweet Home 3D server up and running, with the rights to modify it and brand it for you own uses… And own your modifications!

In short:

  • Brand your server with your own brand.
  • Plan uploads and editing through web and mobile
  • Own your data (home files).
  • Own your code, (your don’t need to redistribute it with Open Source).

And, of course, with minor developments, it can can be embedded in any Web site (compatible with Mobile devices), which means that you can use it to enhance Web sites with 3D, or create new SaaS applications. 

Conclusions

In this post, I have discussed Sweet Home 3D Online server, and how it can be installed on your own server for collaborative editing of home files. I also talk about how you can purchase a white branding license – contact Renaud Pawlak (info at cincheo.com) or Emanuel Puybaret (info at eteks.com).

Please note that, you will need an IT expertise to setup your server and take care of basic administration tasks (such as doing backups, upgrades, make sure that the disk space is sufficient, tune the access rights, and so on). 
We can assist you during the installation, administration, white branding/configuration process. Finally, we can help/advise for developing new features such as plugins or connectors to other software.