Fuzzinator is a success story made with a pure intention of making a fuzzy logic controller easy to use and to experiment, in time when it was a complicated process to understand. The application was made using a user centric design approach. Now, Fuzzinator has over 108.2K views and 7.3K downloads, as it’s also referenced in numerous publications such as :
- Caponetti, L., & Castellano, G. (2017). Basics of Fuzzy Logic. In Fuzzy Logic for Image Processing (pp. 39-52). Springer, Cham.
- Cingolani, P., & Alcalá-Fdez, J. (2013). jFuzzyLogic: a java library to design fuzzy logic controllers according to the standard for fuzzy control programming. International Journal of Computational Intelligence Systems, 6(sup1), 61-75.
- Ayyaz, S., & Qamar, U. Automatic Topic Spotting in Biomedical Literature of diseases using Fuzzy Logic
- Beltrán, E. J. Expertik: Una experiencia con inteligencia artificial y computación móvil.
- Raul, N., Vaidya, C., Kolhe, P., & Nehita, K. Intelligent Detection of Phishing E-banking Website Using Fuzzy Datamining.
Fuzzinator has also various alterations such as JFuzzinator which was rewritten in java.
Fuzzinator tries to approach fuzzy logic through a process pipeline which was a discussed with numerous professors in the field and various students using fuzzy logic method in their studies. Finally, Fuzzinator identified 3 persisting functions that kept recurring in the interviews :
- Defining the membership functions which is used to compute the fuzzified output.
- Defining the rules which will be used to fuzzify the input.
- Showing the rules and the firing value that was produced by the rules and membership functions, and how they contributed to the final value.
Based on the above inputs, we built a low fidelity prototype in which we sketched the interface and made short interviews with students and professors and measured the ease of use and mental load. Another high fidelity prototype was followed in which we developed a GUI application using C#.
One other Fuzzinator strengh was the user centric design of the toolkit and API, which was made for the developer to follow the same pipeline and processes as in the GUI. This allowed the developers to visualize and use their previous experience with the GUI to write their code via the programming library. This also made it easy and transferable to other languages such as Java.