After a long silence, work is starting towards the next revision of OpenIllusionist. We’ve currently got development on a minor update of the 1.x release to optimise the sensor system on the cards, plus the long-awaited 1.x developer docs which should be released by the end of the month. More excitingly, we’re also starting development on a distributed-processing incarnation of the OpenIllusionist which may well form the start of the 2.x branch of development. The current designs are intended to allow scalability in two directions: geographic tiling, where Illusionists placed in different locations which are to both run parts of the same VAE (for example with large areas or augmenting opposite sides of a wall with the same, linked Illusion) and also load-based distribution, which will allow an instance of the Illusionist to pass specific high-load tasks out to a networked clientIllusionist for processing. This will allow much more processor intensive operations to be performed without impacting the frame rate or responsiveness of the augmented interface.
In other news, we have three end-user projects built upon the OpenIllusionist currently in various stages of development. We’re not in a position to discuss too much about them at this stage but it is interesting to note that none of them are exactly VAEs in the sense that our previous installations have been, though all are variations upon the theme.
No progress on the OpenIllusionist front to report here… however Justen has (finally) handed in his thesis and so is about to start devoting a little more time to the documentation of the project. Priorities are:-
Commenting the codebase
Drawing up a development roadmap
Providing tutorial support to get people off the ground
Once this is out of the way, we can begin to push the development work forwards again. We’re still looking for example application ideas to produce, so if you have any please let us know on the forum.
Both Justen and myself are suffering from rather excessive workloads at the moment, but there have been some changes to both the website and the OpenIllusionist library. You’ve probably noticed that our news and documentation have now been moved to a Wiki (DokuWiki) to hopefully allow us to produce and update documentation more efficiently. All of the news, history and existing documentation have been moved over and there should be more detailed, library-specific information appearing over the next few months.
As was discussed in March and then mentioned on the forum, OpenIllusionist v1.4.0 is available, although currently only via subversion until we can sort out a file release.
The FrameGrabber libraries have been updated to improve their ability to connect properly to colour cameras. OpenIllusionist v1.4.0 now uses the updated headers and libraries so if you wish to compile an application using it you must also make sure you have the latest DLLs (no release for these yet either so you must build them from source).
OpenIllusionist v1.4.0 onwards now sports a brand new Module system (replacing the unpleasant and not very flexible ExtraImageProcessing section). This system allows for the background processing of images buffered from the camera. Each module (
oiModule) is a thread which reports to the controller (
oiModuleController). There is currently one built-in module (
oiFiducialModule) and there will be more to come, but the main advantage with this new system is that a new module can be easily added to a custom application in much the same way as agents are.
The messaging system needed to be updated to allow modules to post and receive messages. This required a reworking of how the messaging system behaved. The system now supports asynchronous posting of messages from agents, modules or even the engine and is currently undergoing testing.
Because of the changes to the messaging system and the removal of the need for
oiMarkerthe fiducial module was updated to perform tracking instead. It now posts a message when a fiducial appears, moves or disappears and so has essentially become event based.
Finally, there are plans to implement an overlay system which the modules can use as an alternative, or in addition to, the messaging system. Each module that uses overlays would contain a map the size of the world, similar to the map that the walls use, which could be accessed from the
AgentFeedback function. If an agent has specified that it can see a particular overlay then the feedback function will process the map and provide information via the agent sensors. Therefore, not only will the agents be able to “see” walls and other agents but also something detected by an image processing module. An example could be a finger detection module that uses an overlay map to provide a plot of where it thinks there are finger tips.
Another apparently quiet month – the only major changes to the Illusionist core is a little optimisation to the OpenGL to camera mapping (ditching the rather unsightly
GL_TO_PEL constant and also speeding up render times slightly). We’ve spent the time trying to catch up on our other obligations so we can dedicate a chunk of time to the next major development cycle. Plans for OpenIllusionist v1.4.0 hinge principally around providing some sound functionality – it’s something that’s been missing from the framework for too long. Also on the horizon is a re-factoring of the Extra Image Processing (XIP) functionality. XIP is the thread used to process the global image from the camera for all non real-time operations (as opposed to the capture thread which gives quick and simple processing and the individual agents which can process localised areas of the screen). Currently XIP is used only for fiducial detection, but we’re planning to add finger detection capabilities too. More significantly, we plan to make XIP as extensible as the current agent modules, so if you want some wierd and wonderful global processing step you can just slot it in without tinkering with the guts of the Illusionist.
In other news, we’re tentatively hoping to get work on another public installation started in the next couple of weeks, though it’s by no means guaranteed that we’ll be able to go ahead at this stage. We’d also quite like to hear some suggestions for a second example Illusion, to be provided like Fishtank as both source and a downloadable binary. So if there’s something you’d really like to do with an augmented wall, tabletop or floor then sign up to the forum and suggest it… You may be able to convince us to build your dream toy next.
OpenIllusionist v1.3.0 is now available
Now that Sourceforge have added Subversion functionality we have moved the latest versions of the modules to it and will be using it in future instead of CVS.
The latest version of OpenIllusionist is available from module “
openillusionist_1.x/trunk” and the subversion url is therefore: https://svn.sourceforge.net/svnroot/openillusionist/openillusionist_1.x/trunk.
A packaged version of the OpenIllusionist 1.3.0 source code is available as a 7-zip file.
The new version has been modified to hopefully make things easier to get going. The Getting Started has been updated accordingly
The FishtankIllusion demo was temporarily down but is now available again
OpenIllusionist now uses the FrameGrabber module in a DLL instead. This means that developers do not need to compile the FrameGrabber libraries since we provide the DLLs. But if you wish to compile them yourself then it is available from subversion under the module name “
framegrabber_ds_1.x/trunk“, however there will be very little, if any, documentation on how to do this.
A new gallery system for the website is up and running. I’ve put up a few photos from the Connect gallery opening!
There is now also a forum for OpenIllusionist where you can discuss the library and applications.
A rather busy couple of months ending in the launch of the Connect gallery at the Royal Museum in Edinburgh. See the home page for more information!