OK, I've found a fatal bug in Neuromantic - these don't come up very often, and it's only been in existence for the last couple of releases.

When working with a reconstruction that is planar (i.e. all segments have the same Z coordinate), changing the mode to "Colour By Depth" will, up to V1.5.3 (since whenever I added it, which is only V1.5.1 or later), cause a div by zero error in the 2D rendering algorithms and completely crash out the application. Yes, I hang my head in shame for not forseeing a potential div by zero error - you'll find me in the naughty corner.

I shall be posting a newer release that fixes this tomorrow, as I really can't allow such bugs in the program. As well as this important bugfix, it will also have significantly improved sectioning of volumetric data.

I've also been further working towards supporting multiple stacks simultaneously, and have now gotten the semi-auto tracing functioning with this. Therefore, in future releases (not until after Christmas, though) you'll be able to load and register multiple image stacks, then semi-automatically trace a branch between the stacks due to the cunning hierarchical patchwork strategy.

Labels: , ,


Neuromantic V1.5.3 and beyond

OK, in the new release, Neuromantic V1.5.3, you can now drag the compartments around in the 3D view in the plane parallel to the current camera angle. This will help correct gross Z errors which are a little more fiddly to do in the 2D view, as well as allow increased accuracy when using the 3D overlay visualisation.

In terms of general updates, I've been doing a little more work on the ability to load in and work with multiple stacks - it's getting very close to being complete now, as I've just got the automatic routing to work (a few bugs yet), meaning that you'll be able to semi-automatically trace across multiple stacks in one go. Debugging that is about the last thing I need to do before I add in the GUI functionality that actually lets you load in/register stacks and reconstruct from multiple stacks.

At the moment, each stack will have a gross X/Y/Z offset, and each individual image can also have a smaller X/Y offset to help align the stack more effectively.

I'll also need to sort out some sort of project file, such that you it will store the offset of each stack/image, meaning that you can just open that and it will load everything in at the right position with your current reconstruction. Furthermore, I'll need to sort out some proper memory management, so that not all stack images are preloaded (as they currently are). The stack classes have already been updated to allow particular slices to be unloaded and then reloaded when accessed, but some higher level control of this will be necessary.


Information on the next update

Right, I've now successfully implemented the ability to drag segments around in the 3D view - this should come in very handy for correcting Z errors and editing segment positions based on overlaid image data.

The other main thing I've been doing is trying to get 3D textures to work in OpenGL and find out whether they'd be a better choice for the rendering. So far, I'm really not too impressed - it just doesn't look as good as the normal textured version, and there's also much stricter limits on size (max side of 512 pixels, rather than 4096 for normal textures). Also, OpenGL demands only power of 2 sizes in both X,Y and Z for the 3D texture, leading to yet more memory wastage.

I'm still working on it, though, but at the moment I'm thinking of staying with the current set up (albeit with a bit of neatening up and added cunningness)

Labels: , , ,