# nornir-ir-tools path to success
## Objectives
- Functional, sustainable Python version of nornir-ir-refine-grid in the Docker image
- Works with the existing nornir Python port
- Changes and improvements can be made
- A broader set of biologists can use and contribute to nornir tools
## Steps
1. Get the existing nornir Python codebase running and tests executing (mostly done)
2. Obtain the nornir-ir-refine-grid source code from subversion, current Windows binary, collect associated documentation (done)
3. Replicate the ir-refine-grid C++ cli interface with the ITK-Wasm interface. This will support native development and the generation of pure python bindings.
5. Incrementally add the existing nornir ir-refine grid classes, get them to compile with a modern compiler and against modern ITK.
6. Get the Python test that runs the legacy Windows binary to pass with the new native binary.
7. Replace the FFTW implementation (portability issues) with a VNL FFT implementation.
8. Replace the VNL FFTW with the faster pocketfft, which has SIMD acceleration.
9. Simplify and improve performance .mosaic processing for use in Python
10. Add optional support for VkFFT and cuFFT via Python for GPU acceleration when available
11. Replace file-based .mosaic updates with in-memory Python data structure conversion in the nornir Python implementation