Projects we are, or have been, involved in:

  • I am working with XCAM – a leading designer and manufacturer of advanced CCD camera systems – and the Paul Scherrer Institute in Switzerland, on their super-resolution RIXS technology.  RIXS (Resonant Inelastic X-ray Scattering (RIXS) is an x-ray spectroscopy technique used to investigate the electronic structure of molecules and materials.  Work originally developed by XCAM in 2006 was further developed by the Paul Scherrer Institute in conjunction with Centre for Electronic Imaging at the Open University.  This has led to the development of super-resolution algorithms that can improve the positional resolution of individual x-ray events beyond the limits of individual pixels, and thus provide more detailed spectra.  XCAM is now offering this licensed technology combined with their single photon detection hardware. My work involved taking the original algorithms, which were written in MatLab, and converting them to high performance, multi-threaded C++ so as to make them suitable for on-line, real-time use.  The performance of the code exceeded the design goals by a factor of 50.  The code was written in conjunction with a test suite containing both unit tests and regression tests against the original code.  The code will be installed at a number of synchrotrons round the world.
  • I did a short project for XCAM – a leading designer and manufacturer of advanced CCD camera systems – on their camera electronics for the UKube-1 satellite – the UK space agency’s first cube satellite.  I had to quickly understand the electronics design and programming of the on-board FPGA and write code to exercise it from a host computer – all within a few days.
  • I’ve been working on a project involving high speed rendering of 3D datasets using DirectX/11.  I have been involved in implementing the GPU shader code, C++ for interactive visualization etc., and C# for the high level control interface.  I have also written compute shaders for image processing.
  • I was engaged by the developers of a highly innovative imaging sensor to review their analysis and algorithms from end to end – really a “photons to insights” project.  The precise characteristics of the sensor and its noise performance were analysed in great detail.  While I did not ‘solve the problem’ during the short period for which I was engaged, I identified a number of areas requiring further work by the client’s staff.
  • Involved in a long-term project for Leica Microsystems, the global company specialising in microscopes and imaging equipment for medical, scientific and industrial use. Providing expertise to assist with the design and implementation of a new high-performance image processing and analysis architecture.  Involved in design, analysis, coding and testing.  An earlier project for Leica Microsystems involved the analysis of the memory architecture for a software application and its interaction with the different versions of Windows.
  • I developed a specialised software component for XCAM, a leading manufacturer of sophisticated x-ray CCD camera systems (
  • Developed a real-time (20 frames/s) image stabilization system for a photoemission electron microscope (PEEM) at the Surface/Interface:Microscopy (SIM) beam line ( of the Swiss Light Source at the Paul Scherrer Institute in Switzerland. The software is used for real-time compensation of sample vibrations in the microscope. It performs the following frame-by-frame in real time: background normalization, registration, resampling and interpolation, averaging, scaling and display. It promises improved spatial resolution and signal/noise ratio.
  • Originated the technology of deep-field microscopy at Synoptics, following requests from the Natural History Museum of London; authored first version of the Syncroscopy Auto-Montage product and was continuously involved in its development.
  • Originated open-loop, wide-field microscopy at Synoptics; developed the core technology of the Syncroscopy Montage Explorer product and was continuously involved in its development.
  • Designed and mostly implemented the Synoptics software toolkit IO and its subsequent .Net version ImageObjects.  Toolkit provided re-useable software components for image display, capture, processing (including transforms, morphology, statistics, geometrical, connectivity analysis).
  • Designed and mostly implemented the image acquisition and preprocessing architecture for IO and subsequently ImageObjects.  Architecture proved successful over a wide range of cameras and other hardware and requirements for preprocessing.
  • Designed and implemented automated camera testing system.
  • Designed and implemented automated testing system for Syngene gel documentation systems.
  • Principal architect and designer of the programmable image processor Imagine, one of the first Synoptics products.  A description of this work formed the thesis for my Ph.D.
  • Contributed to open-source implementations of an efficient 2D Delaunay triangulation algorithm in both C# and C++: