As the developer of SweetHome3D, Emmanuel Puybaret never imagined his open-source Java project would become as popular as it did, but times have evolved and Java in browsers became redundant, leaving him with a huge community of users and no technology to rely on. In this interview, he describes the evolutionary steps that came next, and the crucial lesson for all Java developers.
Please describe the background to starting Sweet Home 3D.
My name is Emmanuel Puybaret. My education was in aeronautics and computer science, many years back. I started working as a developer during the ’90s. After a few years, I decided to start a company of my own, because I had a few ideas for small software I wanted to develop.
I started eTeks 21 years ago and since then, I’ve been developing three open-source software. Besides that, I was a teacher. My specialization was in Java language, particularly. I had the chance to choose that language, which was quite trendy at the time, so I could find more work and training to do and I ended up writing two books about Java.
If I speak about the books, it’s because the main story at the moment is Sweet Home 3D, which is the last open-source software I developed. It started as a case study in the book that I wrote in 2005, which I used to explain the technology.
This small software helped people to design their homes. I thought it was a nice idea because it was visual and there were different kinds of Java components to show on the screen that could be interesting to explain.
The book was about Swing, which is a part of the Java technology that lets people manage the user interface of a program, i.e. screens, drawings, and anything they want to show the user.
It took me about a year to write the book and it got reasonable success, but the application beside it drew a lot more attention, so I continued to develop and add more features to it.
As it is open-source, it interested some people in the Linux world, where there was no application of that kind. More people got interested and asked for more features that I felt were worth the investment.
Years later, I work more and more for this application and don’t spend my time working outside as often as I did before. It’s not so easy sometimes, but I’m really happy with it. I can work with all the people who occasionally help me with communication, designing new objects, helping users in the forum, improving the software, and translating it to 28 languages so far.
Sweet Home 3D is downloaded 10,000 times a day. It is used in schools and in various other cases, some of which are documented in the Sweet Home 3D blog. The police use it to simulate crime scenes. Of course, the majority of our users use it to design their homes, and I hope they get a nice result in the end.
How did you move from having a small open-source software into a self-sustaining, monetized business?
In open-source, many people try to earn a living by selling services. Sometimes, the service you propose is a little complicated and you need some help in adapting it to your own needs. These kinds of services need a lot of resources if you want to be able to provide them 24/7.
As I run a very small company, I wasn’t sure about how big it would become. The GNU GPL license under which Sweet Home 3D is distributed obligates people to distribute the modifications they make in the software under the same license. Those who wish to keep modifications exclusive can do that under a special license.
That was my attempt to earn money online and to win some work around the software, but it wasn’t enough to earn my living, so I tried to add some advertising during the installation process and people didn’t like it at all. I ended up removing it soon after.
Finally, I decided to sell the software on some app stores like the Mac App Store and Microsoft Store. Those who got the software there enjoyed a special version with more items and images that they can use to furnish their home when they design it.
There are enough sales now for me to not only make a living from it but also to address some service requests from my users. I now have a partner who is helping me to develop a new service that will help some companies to get Sweet Home 3D embedded on their website. We’ve had a lot of requests for it from different directions.
A wonderful use case could be a collaboration between real estate agents, home designers, and furniture retailers. Using virtualization technology, they can show properties to their clients while enabling them to try out different styles and items to see how they fit with one another as well as with their existing furniture. This would help customers visualize what their house would look like and make the entire process a lot more exciting.
We didn’t want to rewrite everything, so we are auto translating some parts of the program, but it’s still an enormous amount of work because they are quite different languages with different UI technologies. We’ve been doing this process and it’s not completely done yet, but it’s starting to work pretty well.
Having gone through that process, what would be your words of advice for other Java developers?
This solution is not always so easily achievable because you have to translate the user interface. HTML5 is not the same as Swing components so you have to transform and rewrite all of that.
The other thing is there are still many non-commercial Java desktop applications that are used internally within organizations for different purposes. But that’s not so popular among users, so in that sense, Sweet Home 3D is quite unique.
Anyway, most people don’t care about the language it’s programmed in, even if for programmers, it’s quite important.
Specifically to my application, the 3D part is another challenge because there are always some people who don’t have the latest drivers or might have some other software that prevents it from functioning and it doesn’t work properly for them.
When I started Sweet Home 3D, I never imagined that 3D issues would represent such a large portion of our support inquiries. Fortunately, since Sweet Home 3D is a free, open-source solution, many people use it and some of them are sharing the solutions that worked for them so other people can use them too when they encounter the same issues.
This 3D part is programmed with Java 3D, which works quite well but is only used by a small community of programmers and I’m not sure it’s the best way to do 3D at the moment. That being said, it works, so that’s what counts in the end.
It sounds like your community is an integral part of the business. Can you explain a little more about your business model?
My company is very small. My office is in my living room. I don’t even have a separate room because I prefer to work that way.
The community is one of my top priorities because even though I never met these people, they are my friends. I have some longtime users which I’m happy to have beside me in the forum and receive their requests.
As for the translators, they come from different countries because a good translation is done by someone who is native of the language they translate to.
Some people contact me just for some quick help and generally, they are very kind. In some way, it’s like having colleagues, but it’s different because they’re the users of a piece of software that I developed.
I keep this community alive by hosting interviews with Sweet Home 3D users, showcasing the original ways in which they use the platform. That makes the community thrive because people are eager to tell their stories.
But even though we have 10,000 downloads per day, many people don’t communicate with us at all. We have a few hundred users in the forum who have been with us for years now, and new ones join us each year. It’s nice to have all those people beside me to help me see how they use it and improve upon their feedback.
Which trends or technologies do you find to be particularly interesting, these days?
It does have some very nice features and I believe the debugging process is very convenient for programmers. It’s very pleasing to test things directly in the browser without reprogramming and compiling every little test. It might not be the latest technology out there, but it has evolved very well.
So we’ve got a web program which works for every browser and operating system, that can do some very nice things using CSS and WebGL which works much better than Java 3D.
What are your future plans?
As I mentioned, we plan to launch a new service that lets people embed Sweet Home 3D on their own websites using Rest-API. We hope that many businesses will find it useful and effective for their needs.