I’m new to the forum, I’m here to introduce a new project, ask a question related to a possible bug in SimpleITK, and beg for some support
- The VoxLogicA project
At the ISTI-CNR in Pisa (Italy) we have been working a lot on spatial logics and spatial model checking in the last 6 years, and at some point we realised that the concept was really apt to be used for medical image analysis. Then we designed and wrote a new tool using SimpleITK (in fsharp). The tool accepts a (usually extremely short) declarative program and computes a concurrent execution plan which, besides “parallelizing a lot” and automatically, never computes things twice (so that it’s really declarative, do things as many times as you prefer, write code the way you understand it, write complex functions in few lines of code, things like this). The tool – still a research prototype, but with ambitions – runs the plan using SimpleITK, which results in really really fast execution.
For instance, a 10-lines-of-text logical specification automatically delineates glioblastoma for radiotherapy on BRATS cases in like 10 seconds, with very good accuracy (paper to be presented at the TACAS 2019 conference in Prague in April, preprint on arxiv: https://arxiv.org/abs/1811.05677).
Here is the tool, with binary releases for linux, osx and windows
- QUESTION / BUG
I found that under heavy concurrent load, in roughly 2% of executions, it can happen that images saved by voxlogica are “mixed” from 2 different images that have been computed. Investigating more, I came to the conclusion that allocation and deallocation of images in SimpleITK/dotnet (CSharp if you please) is NOT THREAD SAFE. This is certainly a bug. I compiled the .dll and .so files (see below) myself, they contain the string “SimpleITK_CSharp C# anycpu wrapper 1.2.0.dev36-g8801b, compiled with Mono 4.6.2, using ITK 4.13.0”. Is the bug known already? Was it addressed?
- Begging some support for .NET core on multiple platforms
I had to compile the .simpleitk so and .dll files for C#/.net myself on osx, windows and linux. This is my major concern for deployment of VoxLogicA at the moment, since this is a difficult operation that I have to repeat and I don’t have a proper setup (I only have a linux laptop, compiled for other operating systems on colleagues laptops, this is not stable…). Ideally I need a nuget package which is maintained for each operating system and kept up to date by the ITK maintainers. I can certainly contribute by maintaining the linux package if you need that, but I really need the thing to be on nuget, official from the ITK team, and updated for new versions / bugfixes. Do you think this is possible?
- if you are interested in VoxLogicA we are open to any type of collaboration!
Thanks for reading so far, and have a good day