Well, February has come and gone but we are still hard at work on our big release! David and I are presently working together with one of our users to include laser resonators and amplification into the Optica EM mix. The results are very exciting: In addition to being able to model traditional stable resonator cavities, we are predicting the beam output characteristics for unstable resonators!
In other news, my work on a better GUI interface for GUI customization is starting to show fruition and before too long, I can start making video tutorials that demonstrate some of these new GUI customization features. The hallmark of this customization interface is that rather than hiding the Optica language from the user, Optica's language is embraced! This is critical since every user has different needs and the best way to create customized interactive models is through Optica's language. At this point, I am guessing that there are quite a few confused faces about this. I mean: "Can a GUI interface be both interactive AND language based?" The answer is yes!!! Why? Because Optica now has three levels of operation: (1) Language, (2) GUI interactive interface, (3) GUI customization-interface. First, a bit of our history:
At the lowest level is the Optica language. This language for describing optics is the hallmark of Optica and was carefully developed over the past 25 years! In fact, when I started to sell Optica in 1995, the first Optica release could only trace one ray-surface intercept per second! Rather than worry about its processing speed, I spent most of my effort into working out its language before getting Optica to trace rays efficiently. This was because I correctly made the assumption that efficient ray-tracing was less important than efficient model definitions. Since Mathematica was principally a symbolic processing system at the time, it was perfect for making up new languages. Today, with parallel computing and C-compilers, Optica's ray-trace speed is only limited by your budget, but Optica's diverse and powerful language is really what makes it so flexible to use!
Many of Optica's current GUI interface capabilities has actually been around since about 2008 when Mathematica 6 was initially released that enabled such features to exist. This interface allows users with no experience to pick up an Optica model and immediately start to use it for optical design and optimization. At this time, we also developed an Optica GUI authoring tool (based in JAVA) that is still a part of all Optica packages today. (You will find this authoring interface when you click on the Mathematica Help menu, open the Start Optica side tab, and then select "Optica GUI.")
Today, I have been developing a rich extension to the Optica's ManipulateSystem GUI that enables continual customization of the GUI on the fly (3). This allows you to interactivity place new optics in your GUI model as well as add new modeling functions and optimization features to an existing GUI interface without starting over.