As I predicted, Interface3 has already surpassed Interface2.
A few of the powerful features of I3 follow:
- Full project loading & saving capabilities
- Plugin state loading & saving capabilities
- Copy & paste functionality with generative modules (creates duplicates of modules, including all plugin and configuration data; extremely useful for setting up a large number of generative modules)
- Ability to remove modules
- Flexible GUI overlays
- This means that standard Windows controls can be used for the interface's secondary panels such as loading and saving menus, preferences, etc.
- Saves a huge amount of development time
On top of all that, I3 is downright sleek. It looks good yet simple. It performs operations very, very fast. So far, it's easy to develop and still powerful.
Looks like I've finally struck the interface balance.
In a mere two days, I've managed to design the visuals and implement basic functionality for Interface3. Perhaps this indicates that, at long last, I have crafted a balanced interface - one that looks good but isn't high-maintenance. Already I3 has full rendering capabilities, bar post-processing. With the features of I3 expanding rapidly, I3 could well overtake I2 in functionality by the end of the week.
Here's a screenshot of the early GUI.
Much of the interface will probably remain unchanged since I like this design. The simplicity of the interface adds to the feeling of speed and ease-of-use. As in Interface2, a tile-button scheme allows the user to easily load plugins into module slots. The plugin selection window (not shown) in I3 improves on that of I2, which could only display four plugin thumbnails at a time. I3 can display twenty-five. I've also doubled the number of generative tiles in the interface for extra power.
Perhaps the most remarkable thing about this screenshot is the "renderer" tile. Indeed, no previous interfaces have treated the renderer as a module, but I think it's time to make a shift. There's simply no reason not to treat a renderer like a plugin since the same basic principles of configuration, execution, and interchangeability all apply to renderers just as they do to core and generative plugins. Furthermore, this will solve the problem of having to find space in the main interface for all the rendering configuration options.
If the first two days of Interface3's existence provide any indication of how things will pan out in the long run with this new interface, mGen has a lot to look forward to.
Since I dedicated most of October's work to coding lightweight fractal, L-system, grammar, and genetic engines (all in one month!), I will once more return my focus to the interface during the month of November.
Interface2 (I2) has served mGen well for quite a while now. Unfortunately, I2 has hindered improvement of the core framework due to its glossiness. Though the interface looks great, it simply takes too much time to add new features that keep with the sleek, highly-polished feel of the rest of the interface.
As I discussed in a previous post, the next generation interface will aim to strike a balance between maintainability, which the early-generation interfaces boasted, and aesthetic appeal, for which I2 no doubt raised the bar to extraordinary heights. Interface3 (I3) will blend the best elements of both interfaces.
Development has already started, but screenshots won't come online until the GUI starts looking nice again. I'm excited about all the opportunities that I3 will bring back to mGen. By the end of the week I hope to see the framework recover loading and saving functionality, as well as plugin state saving and, in general, a lot more configurability.