Software

I really love working on software. This page contains a list of the things that I’ve written over the years, some open source and some not, as well as some of the things I’ve contributed to. One day, when I’m grown-up, I’d really like to return to Writing Really Nice Software.

First the list, not 100% complete, of software I made:

  • envedit is a user-friendly Windows Environment Editor, for modifying those pesky environment variables. BSD open source.
  • cv_platform is a C++ framework I designed at Stone Three in 2000 that enabled simultaneous capture and real-time video processing from a number of cameras (at that time on Linux). It has been used in a number of projects and products. Proprietary.
  • DeVIDE is the open-source and cross-platform Delft Visualisation and Image processing Development Environment. I’ve been working on this in some form or another since about 2001, and it actually gets used by quite a number of people I don’t even know. The latest release was in February of 2012. BSD open source.
  • vtkdevide, vtktudoss and itktudoss – low-level C++ algorithmics used mostly by DeVIDE, including volume renderers, data loaders, 3D UI widgets and image processing codes. BSD open source.
  • FrothMaster – Whilst working at Crusader Systems in ’99, now CSense, I designed the full software stack  (design of an embedded Linux distribution to fit in 4MB of flash, also image processing modules) and part of the hardware for this IP65 embedded industrial image processing box. We won a SABS Design Institute award for this. Proprietary.
  • hdstandby is some low-level Windows code that I slapped together to set the hardware standby timeout on ATA hard drives. On some setups, this built-in timeout still causes spindowns even if the Windows power settings have been configured otherwise. This little utility MIGHT help in this regard. It might blow up your computer. Go here to chat about this utility. Marty Vona has written a patch that will also disable APM on the drive, just like hdparm -B 255. Open source.
  • ical to vcal converter is a webapp with which people convert their google calendar exports to palm desktop compatible files. Used by a surprising number of people judging by the comments (and hits) on the blog post. Open source.
  • im2avi is an application for making AVI films/movies from series of images, written in C++ and FLTK. Not supported anymore.
  • KMX – somewhere in 2004 very late at night and on weekends, I architected and implemented the first version of KMX, Treparel’s flagship client-server system for the analysis and visualization of high-dimensional data. Many person years of development have gone into it since and now it is a thing of beauty that you too can own! Proprietary.
  • Linux kernel watchdog drivers – In 1999 and 2000 I coded kernel 2.2.x drivers for three different hardware watchdogs for the embebded platforms I was designing for Crusader Systems (now CSense), and they let me put these online. Open source.
  • nvPY is my ugly but cross-platform Notational Velocity-inspired simplenote-syncing note-taking tool. If you’re a nerd with a note-taking fetish, you’ll love this. BSD open source.
  • NyARToolkit Multiple Marker Tracking – I added multiple marker tracking support to the NyARToolkit augmented reality marker tracking software library. Open source.
  • pam_pwdfile is a Pluggable Authentication Module that you can use to authenticate users for any service with flat text username:password files. Open source.
  • The Paper CD Cover generator is a webapp with which you can generate nifty PDFs that can be printed on an A4 and then printed to form a CD cover.
  • TimeRank is a next-generation personalized time-management system. I am the main architect, and designed this Django-backbone.js-jQuery-jQuery-UI web-app together with company co-founder Gerwin de Haan. Proprietary.
  • vtkFlRenderWindowInteractor is a C++ class for combining FLTK and VTK. This was integrated with ITK quite some years ago. Open source.

Then the list of software that I’ve contributed to:

  • doc++ – Donkey years ago (I estimate around ’98 or ’99) I fixed global  overloaded function parsing in this C++ document generation tool.
  • ITK – I worked mostly on the Python wrapping layer of Insight segmentation and Registration Toolkit, introducing  exceptions, observers and the ITK-VTK connection. The wrapping layer has since been completely revamped in WrapITK by Gaetan Lehman and Zachary Pincus.
  • JED – I used to be the Debian Developer (around 2000) responsible for this emacs-like text editor and also contributed a number of patches, for example implementing font anti-aliasing on XFree86, improving bibtex support, and whatnot.
  • Linux kernel – low-level fixes I made to the 2.4.4 kernel for the VT82C686A south bridge in 2001, as well as for the ov7620 camera sensor chip in ’99, are in the kernel source.
  • VTK – When I was still working on my Ph.D., I had plenty of time to commit regularly to the Visualization ToolKit source repository. I worked on aspects of the Python wrapping, and a number of small changes here and there. For example, that Finalize() call in all vtk*RenderWindow  classes is MINE. :)
  • XFree86 – Somewhere in 2003, I designed and implemented low-level S3 suspend/resume support for the ATI Radeon in XFree86, the dominant open source X Window System at the time. My code was integrated with mainline XFree86.

BTW, I make available (sometimes slightly modified) Python-enabled Windows builds of VTK and ITK:

… but you should rather just get the DeVIDE Runtime Environment, it’s much better and more up to date.

6 Comments

  • Is there a binary distribution of gdcm python wrappers. I want it in order to work with InVesalius 3D Viewer.
    Thank you

    • Just install DeVIDE – http://graphics.tudelft.nl/Projects/DeVIDE

      1. You can use it directly to visualize any DICOM data.
      2. If you *really* want to use InVesalius (I’d like to know what it does that DeVIDE does not of course :) you can use the GDCM that ships as part of the DeVIDE installation, see the “gdcm” subdirectory of the install directory.

  • Hi Charl,

    I am having difficulties to isolate a spevific vertebra in order to create a 3D model thereof for a STL export. I have followed your video on youtube going through the basic process, but I can’t seem to get the part where you isolated the right side of the pelvis..(similar to what I want to do with one vertebra).

    It would be great if you can please guide me here!

    Thanks!
    Cornel de Jongh

  • Dear Charl,

    I have listened your advice and installed DeVIDE instead of 3D Doctor. I wish you could make more tutorials about it (actually i would beg fot it<3 )
    Also we're in trouble with double threshold vtk error and don't know how overcome this problem.

    By the way I'm a fan of Delft and you. Keep going like you do (please)

    Beliz K.
    Turkey/İstanbul

  • You comment in a post about using Palm Desktop in your laptop. How can I copy data from my Desktop version 4.1.4 into a MS Outlook 2000 version SR-1 (9.0.0.3821)? Many thanks!

    • I stopped using Palm Desktop, Outlook and even Windows years ago. I’m sorry, but I don’t know the answer. :)

Join the Discussion

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>