Current Status

Initially the spreadsheet could not perform any image processing beyond loading images because it was unable to resolve cell references. Even a formula as simple as =A1 would stop the interpreter. This was due to a fundamental flaw in the InterpreterObject which eventually had to be replaced. With this new interpreter functions such as ROTATE, INVERT, and TRANSLATE could be chained together. Richard improved the interface with save and load options for the spreadsheet and a file selection short-cut to load images into cells.

A second more divergent extension has also been carried out to the input side of the internal model. The CompilerObject was replaced with an updated version able to correctly parse any formula. Functions had originally been hard-coded into both the compiler and the interpreter but the new version used a number of separate FunctionObjects to perform arithmetic and textual processing, image processing functions have yet to be made. This separation of function code from the main spreadsheet allows easy extension of functionality, perhaps even the creation of new data types.

Further extensions can included work to the output side of the internal model so images can be produced using the new FunctionObjects. The ImageCacheObect which was so important in the original design may be removed in favour of an advanced ImageObjects which can coordinate the cache themselves, this would simplify the structure of the internal model. Within the InterpreterObject dependency of the HIPS package should be reduced by abstracting all image manipulations. Then the spreadsheet could use any image manipulation package which provided the appropriate functionality.