Friday 18 January 2008

iDMC 3D: a demo C++ application which uses the idmclib

I've written from scratch a new application, tentativly called iDMC-3D, a demo application based on the idmclib, largely inspired by iDMC, which lets you visualize trajectories of continuous-time dynamical systems in a 3D space. You can download the win32 binary package here, and package sources with compiling instructions here. It doesn't require Java or something else, so windows users can just unzip on their desktop and launch the binary 'idmc.exe'.

The application is essentially GUI and some logic, and uses the powerful, small and fast FOX library for cross-platform GUI building and OpenGL handling.

This application is to be intended as just a demo: is likely to be full of bugs, but working correctly with shipped models in most common situations. Moreover, it isn't officially supported by anyone, even if I appreciate feedback, comments and suggestions. Note that this is my first FOX application, as well as my first C++ program after a couple of years, so please be gentle in reviewing the sources:-)

Lets see how it works with a couple of screenshots...


This is how it looks when started on my linux box:

After opening a model (here the Rossler model), a new subordinate window pops up:

Now we can compute a trajectory:

Feed in sensible starting values, parameters, time span (in time units), transient and step size to be used in numerical integration:
After clicking 'Ok', you can watch the result:
You can interactively drag with the mouse pointer to rotate, right-click for the above shown menu, mouse wheel for zooming.
On the left side, you can choose which variables to show. Here the model has just 3 variables, named 'x','y' and 'z', so not many options. But you can always include the time axis in the plot:


That's all. Have fun!