Code

An overview of stuff I work on (or have worked on).

Flexx

Flexx is a pure Python toolkit for creating graphical user interfaces (GUI’s), that uses web technology for its rendering. You can use Flexx to create desktop applications, web applications, and (if designed well) export an app to a standalone HTML document. It also works in the Jupyter notebook.

Being pure Python and cross platform, it should work anywhere where there’s Python and a browser.

Flexx has a modular design, consisting of a few subpackages, which can also be used by themselves, such as a Python to JavaScript transpiler and an powerful event system.

Pyzo

Pyzo is a cross-platform Python IDE focused on interactivity and introspection, which makes it very suitable for scientific computing.

We have developed Pyzo to have a simplistic design while still providing a powerful programming environment; all the good stuff, without the clutter.

Pyzo plays nice with conda by detecting conda environments and helping the user to install miniconda if no environment is available.

Imageio

Imageio aims to support reading and writing a wide range of image data, including animated images, volumetric data, and scientific formats. It is designed to be powerful, yet simple in usage and installation. It is also easy to extend new formats to imageio.

Imageio is a mature library and plugins keep getting improved/added. It's used as a basis in e.g. scikit-image and Visvis.

Visvis

Visvis is a pure Python library for visualization of 1D to 4D data in an object oriented way. Essentially, visvis is an object oriented layer of Python on top of OpenGl, thereby combining the power of OpenGl with the usability of Python.

Visvis is mature, though a bit idiosyncratic. I am not actively developing it anymore except fixing bugs and implementing small features.

The Vispy project was originally intended to replace a number of visualization projects, including Visvis. But to date Vispy has not converged to a broadly usable state yet.

Stentseg

Stentseg is a library to perform segmentation of stent grafts in CT data. Mostly developed during my PhD, but in a rather good state. I managed to make it Pure Python by moving a critical part (a specific variant of the MPC algorithm) to scikit-image.

PyElastix

PyElastix is a project that has spun out of the PIRT project. It provides a Pythonic interface to the awesome Elastix image registration toolkit. I created this (pure Python) library to enable people to do image registration in a simple way, while making it easy to maintain.

PIRT

The Python Image Registration Toolkit is a project to make powerful image registration algorihms easily accessible. It wraps Elastix and also includes custom algorithms, including a diffeomorphic version of the Demons algorithm. Originally written in Cython, but now that it uses Numba it is pure Python (i.e. much easier to install).

Developed mostly during my PhD and still rather in a research state.

SSDF

The simple structured data format is sort of like yaml and json, but adopts some Python principles to make it very easy to read. It knows seven base datatypes: Null, int, float, string, nd arrays, list, dict. The latter two are container types that thus allow storage of hierarchical data.

The idea was a format that is readable for both humans and computers. Suitable for configuration files as well as large datasets. Easy enough so it can be implemented in many dynamic languages. There is an implementation in Pyton and Matlab.

Got a bit messy at some point though. I probly need to rethink it and clean it up.

Yoton

Yoton is a Python package that provides a simple interface to communicate between two or more processes. It allows to connect multiple nodes in any arbitrary topology and expose pub-sub, state and request-reply protocols.

It is used in Pyzo for the communication between kernel and IDE. It is maintained as a subpackage of Pyzo.