|  | <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | 
|  | <head> | 
|  | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | 
|  | <title>Interview: NetBeans Platform Helps Advance Biomechanics Research</title> | 
|  | <link rel="stylesheet" type="text/css" HREF="../../../netbeans.css"> | 
|  | </head> | 
|  | <body> | 
|  | <H1>Interview: NetBeans Platform Helps Advance Biomechanics Research</H1> | 
|  | <p><img src="../../../images_www/articles/interviews/bio-mechanics/ayman-3.png" alt="" align="right"> | 
|  | Ayman Habib (pictured, right) is a software engineer working for the <a href="http://nmbl.stanford.edu/">Neuromuscular Biomechanics Lab</a> (led by Prof. Scott Delp) and a staff member of the <a href="http://simbios.stanford.edu/">National Center for Biomedical Computation at Stanford University</a>.</p> | 
|  |  | 
|  | <p>His main job in the lab is writing and supporting the code used by | 
|  | researchers and students, to perform modeling and simulation of the | 
|  | musculoskeletal system, known collectively as <a href="https://simtk.org/home/opensim">OpenSim</a>, | 
|  | and also disseminating the software to make it available to students | 
|  | and researchers elsewhere. Ayman is the lead developer of the OpenSim | 
|  | User Interface; in addition he supports the user community, and | 
|  | participates in the design and development of a (C++) API to increase | 
|  | the utility of the software. He has been programming for more than 20 | 
|  | years and has a Ph.D. in Computer Science from Rice University.</p> | 
|  |  | 
|  | <p><strong>In a nutshell, what is OpenSim?</strong></p> | 
|  |  | 
|  | <p>OpenSim is a set of tools that enable users to develop models of | 
|  | musculoskeletal structures, build and refine simulations that utilize | 
|  | these models and analyze the results of these simulations to gain | 
|  | insight into muscle function and other aspects of the musculoskeletal | 
|  | system. The models built using OpenSim range in complexity from simple | 
|  | models used for educational purposes to subject specific models of | 
|  | humans with movement disorders. OpenSim has also been used to model | 
|  | animals, robots and orthotics. </p> | 
|  |  | 
|  | <p>The OpenSim application is the | 
|  | Graphical User Interface that sits on top of the modeling and | 
|  | simulation tools to make them accessible to a wide spectrum of users.</p> | 
|  |  | 
|  | <p><img src="../../../images_www/articles/interviews/bio-mechanics/ayman-1-smaller.png" alt=""> </p> | 
|  |  | 
|  | <p><strong>How long has it existed, how did it initially come about, how has it been funded and developed?</strong> </p> | 
|  |  | 
|  | <p>It started by an initiative from the NIH (<a href="http://www.nih.gov/">National Institute of Health</a>) | 
|  | to launch a set of National Centers for Biomedical Computation. | 
|  | Stanford won the national competition to host the center supporting | 
|  | Physics Based Simulation of Biological Structures (<a href="http://simbios.stanford.edu/">Simbios</a>) | 
|  | and secured the grant in 2004. NIH continues to fund the center. OpenSim is one of the projects supported by this center.</p> | 
|  |  | 
|  | <p><strong>It seems to be very widely used. Can you say something about what kind of | 
|  | users it has, how many, and what users have found to be of particular | 
|  | interest in the application, as well as compared to its competing | 
|  | products?</strong> </p> | 
|  |  | 
|  | <p>OpenSim caters to a variety of users from | 
|  | students (as a teaching tool in biomedical/mechanical engineering | 
|  | departments and in some medical schools), to researchers performing | 
|  | cutting edge research in movement science, rehabilitation, and design | 
|  | of orthotics. It is also used by some clinicians in gait labs studying | 
|  | gait-abnormalities. </p> | 
|  |  | 
|  | <p>The first public release of OpenSim was in Aug. 07, since then we have added more than 4500 new users and growing strong.  </p> | 
|  | <p>Users like the intuitive Graphical User Interface:</p> | 
|  | <p><img src="../../../images_www/articles/interviews/bio-mechanics/ayman-2-smaller.png" alt=""> </p> | 
|  | <p>They | 
|  | also like the extensibility of the system, so that they can add their | 
|  | own modeling objects & analyses and also availability of the latest | 
|  | algorithms used to produce some of the most accurate simulations | 
|  | around. </p> | 
|  | <p>The main competing products in this area are | 
|  | proprietary and commercial so users can’t have access to the algorithms | 
|  | used in order to validate them and can’t plug in their own to | 
|  | experiment with new ideas/algorithms. Many competing products come from | 
|  | makers of motion capture systems, so they have different priorities.</p> | 
|  |  | 
|  | <p><strong>What are some of the main technical challenges that OpenSim has had to deal with?</strong></p> | 
|  |  | 
|  | <p>One of the main technical challenges to OpenSim is the wide | 
|  | spectrum of users from high school kids learning the basics to involved | 
|  | researchers who would want to have access to and be able to modify core | 
|  | algorithms to fit their needs. </p> | 
|  | <p>That's where a modular | 
|  | architecture as the NetBeans Platform comes in handy, as you can | 
|  | envision multiple products building on a shared set of modules | 
|  | targeting users at different levels. Because the OpenSim API layer and | 
|  | supporting libraries have been evolving over the last couple of years, | 
|  | we have not had the chance to leverage the NetBeans Platform as much as | 
|  | I'd like, but we’re moving in this direction and so the vision is | 
|  | starting to materialize. </p> | 
|  |  | 
|  | <p><strong>Looking under the hood, what | 
|  | are the main libraries/frameworks/languages/etc used by OpenSim, i.e., | 
|  | what are its technical specifics?</strong> </p> | 
|  |  | 
|  | <p>The OpenSim application is built on top of a stack of C++ libraries developed under the SimTK project (<a href="http://netbeans.dzone.com/simtk.org">htttp://simtk.org</a>) to perform neural/musculoskeletal modeling, multibody dynamics, and numerical methods. We use <a href="http://www.swig.org/">SWIG</a> for wrapping to call these libraries from Java. OpenSim also uses <a href="http://www.vtk.org/">VTK</a> for 3D visualization, <a href="http://www.jfree.org/jfreechart/">JFreechart</a> for plotting and is built on top of the <a href="http://platform.netbeans.org/">NetBeans Platform</a>.  </p> | 
|  |  | 
|  | <p><strong>When and how was the decision made to use the NetBeans Platform?</strong></p> | 
|  |  | 
|  | <p> When I started writing the GUI for OpenSim in 2005, the | 
|  | NetBeans Platform was not available as a solid platform for writing | 
|  | Java applications as it is today, and I looked around for existing Java | 
|  | & Cross-platform C++ frameworks but didn’t find something that fits | 
|  | our needs (I didn’t want to use Eclipse since I wanted to stay with | 
|  | Swing rather than use SWT for easier integration with other tools), so | 
|  | I started to write my own framework, and I got something going quickly, | 
|  | but the progress was slow as there was so much code that I had to write | 
|  | and document to enable modular/collaborative development which has | 
|  | always been the vision for OpenSim. </p><p>Then a colleague came on | 
|  | board around the time when NetBeans 5.0 became available and started | 
|  | using it as an IDE for development. That’s when we took a serious look | 
|  | into the NetBeans Platform, and then the switch was an easy decision, | 
|  | since I found so many issues that I had been thinking about being built | 
|  | into the platform (e.g., modules/plugins, windows management and | 
|  | docking, Matisse to begin with). </p><p>The switch over took less than | 
|  | a couple of months and it’s been reassuring to see our needs being met | 
|  | by the NetBeans Platform since then. (<a href="http://wiki.simtk.org/opensim/NetbeansUI">Here</a> is our NetBeans Platform related Wiki.)</p><p><strong>How has it been to learn to use the NetBeans Platform and do you have any tips and tricks to share about the NetBeans Platform?</strong> | 
|  | </p><p>Starting up was not hard as there were many tutorials and code | 
|  | examples to begin with. I have also used the user forum a few times and | 
|  | it continues to be a great resource for me. The book “Rich Client | 
|  | Programming: Plugging into the NetBeans Platform” has also been helpful | 
|  | as a backup plan for things I couldn’t find elsewhere. </p><p>One tip that I found useful (especially because we do not expose the Plugin | 
|  | Manager as of yet) is that we can distribute modules as NBM files and that | 
|  | they get installed automatically if the users put those NBM files in | 
|  | a directory (update/download/) below our “cluster” directory. I have used this | 
|  | a few times to deliver special purpose modules and was impressed by how | 
|  | smoothly that went. </p> | 
|  | <p><strong>Anything else you'd like to say?</strong> | 
|  |  | 
|  | </p><p>Well, keep up the good work, it’s been a great ride so far and | 
|  | I’m excited about the opportunities that are opening up for us and for | 
|  | the biomechanics community at large through the use of the NetBeans | 
|  | Platform. I'd also want to acknowledge the collaborative effort behind | 
|  | OpenSim, including the great body of work provided by the simtk staff | 
|  | and many current and former members of the NMBL lab at Stanford along | 
|  | with our funding sources at the NIH (Roadmap for Medical Research, | 
|  | Grant U54 GM072970). Thanks. </p> | 
|  |  | 
|  | </body> | 
|  | </html> |