Java 9 & Java EE 8: They are finally here!
Electric rotating machines managed by NetBeans!

FluxMotor: Predesign for Electric Motors on the NetBeans Platform

Guy Jerome

FluxMotor is an application dedicated to the pre-design of electric machines created at Altair in France.

FluxMotor is created in Java on the NetBeans Platform and looks as follows, with a highly customized Look & Feel, which we developed ourselves, as outlined below.

FluxMotor is a professional tool, so the quality of the results are really important. To address this point, we dedicated time to developing very innovative algorithms. In order to convince people to adopt our product, we wanted to focus on more than just the quality of the results. Indeed, other tools already exist with similar functionality. When we started to think about the project, the question was: “Why would a motorist change their old tool for ours?”

Use Cases and Personas

To get to the desired endpoint, a lot of energy has been invested in defining different use cases and making the software easy to use. A small team of three with architectural, motorist, ergonomic, graphic, marketing, and development skills was put together. For several months, not one line of code was written. Instead, we organized user trials on dynamic mockups and took into account a variety of feedback. 

During this inception phase, and to help make our decisions, we decided to work with Personas. The first Persona was a young US student starting their first job and their mission was to bench the different products to pre-design electric machines. The second Persona was a German manager whose department is in charge of providing electric motor quotations and designs.

Through the eyes of these two Personas, combined with our own expert background, we analyzed the most common usecases of a motorist. Of course, when you start from scratch, the first attempts are generally not good and it is difficult to make choices. Therefore, we produced and tried a lot of mockups to study several scenarios based on the preferences of our two Personas. I am not going to develop the different profiles for both Personas here in detail, but one of the most visible results one could see is that FluxMotor adopts a black flat design by default, which is a modern context very close to mobile applications that all US students know very well.

Accelerating Development with the NetBeans Platform

Once our direction was clear and our graphic chart and workflows were stabilized, we hired more developers to increase the team and we started to produce Java prototypes. To accelerate development, we chose the NetBeans Platform as a natural solution:  it is easy to use and its powerful services enabled us to very quickly put together robust code. Since our software suite consists of a lot of different applications, the notion of modules, provided by the NetBeans Platform, was heavily used.

Of course, the Java product is far from the original mockup proposal. Quick feedback iterations between developers and customers were organized to minimize throw away code and reduce unnecesarilly heavy code investment. The Matisse GUI Builder in NetBeans IDE helped us to generate prototypes closer and closer to the final version specified by our designs. The NetBeans IDE graphic interface is very nice in terms of taking into account feedback and providing new versions at low development cost.

One typical example that our inception didn’t detect was the global theme of the application. Indeed, during the inception phase, we decided on having a black user interface. Scientific studies prove that a black user interface is easier on the eye than a white one, if you spend a long time looking at a screen. Black also gives a higher quality rendering, which results in feelings of trust and comfort for the user.  In addition, this modern trend is very attractive to young and creative people.

Highly Customized Look & Feel

Unfortunately, when we produced the first prototype written in Java, we quickly saw that the traditional L&F would not be adaptable to our needs, as the default appearance was not common for our typical stand-alone applications. And no commercial L&F maps with all our requirements. We decided to develop our own L&F to overload the classic behavior of the NetBeans Platform, with the result shown below.

Initially, though, we still had a cool black L&F. We asked people to test our first prototypes, which integrated our nice and cool black L&F. However, since half of our testers were used to the standard white Windows environment, the black environment was perceived to be really painful.  It became obvious that a white environment had to be developed, to replace our black user interface. For example, we had to define a second chart, for a white L&F, and to modify the code to deal with it.  Thanks to the notion of modularity provided by the NetBeans Platform, this requirement was relatively easy to achieve: all our widgets and components were centralized and adding a new theme was just a very localized job.

Based on our experiences, we discovered that the NetBeans Platform enables us to be really “agile” in our development work. After all, whatever time and energy you put in initially, your first vision will never be final. It is difficult to say at the start of a project what precise features will be part of the software by the time of its first release. Therefore, the use of modules via the NetBeans Platform is key: even if your team is not naturally API knowledgeable, the NetBeans Platform forces the developer to create clean libraries that can be reused elsewhere.  Once our architecture was built, we were able to change things easily. And more importantly, we were very confident due to the “silo spirit” brought about by the modular architecture.

Innovative Ease of Use

Another great innovation in FluxMotor is the care we have given to the comfort of our user. Right from the start, we decided that young people without a lot of motor knowledge should have the ability to get results easily. This constraint has been a continual guideline during the development of FluxMotor. As a result, you can now, at any moment, test your prototype in two clicks. However, at the same time, expert users should also be able to go really deep into the specification of their motor predesign.

How to reconcile these opposite points of view? Our solution is to offer visible and intuitive entry points to customize the default behavior of the software. A typical example of this policy is the winding panel. Winding is a key aspect of motor design. While, of course, the software always automatically gives a correct winding result, now, depending on your skill, a variety of algorithms are proposed, from basic to more complex ones for expert users.


To conclude, FluxMotor is a very modern piece of software that brings a lot of services to the user. And the use of the NetBeans Platform made it all possible in a very short timeframe.

More details can be found here:


Guy Jerome

Guy Jerome works at Altair Engineering on FluxMotor and other products.

comments powered by Disqus